Nuget 给出错误 "ps1 cannot be loaded because running scripts is disabled"

Nuget gives the error "ps1 cannot be loaded because running scripts is disabled"

我有一个新的空 MVC 5 项目,我尝试安装 Nuget 包。 当我在 Nuget 控制台中插入命令 :Update-Package 时,我得到以下 asnwer:

File E:\WebApp\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\uninstall.ps1 cannot be loaded because running scripts is 
disabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.At line:1 char:3
+ & 'E:\WebApp\packages\Microsoft.CodeDom.Providers.Dot ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

然后我开始安装一些新的软件包并再次收到这条消息:

WebApp\packages\Modernizr.2.8.3\tools\install.ps1 无法加载,因为 运行ning 脚本在此系统上被禁用

我看到了一些与此消息相关的帖子,但与 MVC 项目无关。

我的问题是:

为什么我会收到这些消息?

我该怎么做才能解决这个问题?

这个问题,会出现在我的应用程序所在的服务器上吗运行?某些脚本未按预期 运行?

我想您尝试安装的特定软件包需要 运行 Powershell 脚本,并且出于某种原因,您的机器上禁用了 Powershell 执行。 您可以在 "how to enable Powershell" 上搜索 google 以获得完整的指南,但通常情况下,它是这样的:

  • 打开 Powershell 命令 window(只需在按下 windows 开始按钮后搜索 Powershell)
  • 输入 Get-ExecutionPolicy
  • 查看当前限制
  • 输入 Set-ExecutionPolicy remotesigned
  • 启用 PowerShell

此问题不会影响您计划安装应用程序的服务器。

图像文本的翻译会有点:此证书已从其密钥库中撤销

我的 init.ps1 上的证书已过期 - 因此 RemoteSigned 将无法使用。要使该软件包版本正常工作,需要将其设置为 ByPassUnrestricted。就个人而言,我不建议这样做...

-- 编辑 -- 我继续更新软件包,发现他们已经为 v 1.0.2 放弃了新证书。 NuGet 控制台中的以下问题需要修复:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

如果您在从 Visual Studio 程序包管理器控制台安装 NuGet 程序包时遇到这种情况,运行 Visual Studio 作为管理员。

我 运行 在构建项目时遇到类似问题,发现您可能必须在 powershell (x86) 和 powershell (x64) 中将执行策略设置为 remoteSigned(正如其他人所提到的)。我是 运行 x64 版本的管理员,Get-ExecutionPolicy 返回 "remoteSigned" 但 x86 版本尚未更新。如果以上答案不适合您,请尝试一下。

这应该有效

打开你的电源-shell 以管理员身份输入

Get-ExecutionPolicy

预期结果RemoteSigned

Set-ExecutionPolicy remotesigned

享受

打开你的电源-shell作为管理员并输入

Get-ExecutionPolicy

预期结果 RemoteSigned

Set-ExecutionPolicy remotesigned

如果不起作用,请尝试管理员中的电源shell 运行

万一有人在 Google 上发现了这个并且这发生在你身上,我建议你先尝试重新启动 Visual Studio,特别是如果包管理器控制台之前为你工作过的话。在 VS 2019 中,我注意到,如果我在加载时将其留在后台,有时它会抛出该错误。

对我来说,重新启动 Visual Studio 并将其保留在前台,直到包管理器控制台完成初始化解决了问题。请注意,运行 不需要它作为管理员。

在不重启 VS 的情况下使用包管理器控制台时快速修复此错误 and/or 运行 作为管理员是为当前用户删除限制:

Set-ExecutionPolicy remotesigned -scope CurrentUser