Nuget给出了这个错误"无法加载ps1,因为运行脚本被禁用"

时间:2015-09-21 09:47:21

标签: asp.net-mvc powershell nuget

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

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,因为在此系统上禁用了运行脚本

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

我的问题是:

为什么我收到这些消息?

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

此问题可能出现在运行我的应用程序的服务器上?有些脚本无法按预期运行?

7 个答案:

答案 0 :(得分:30)

我想您尝试安装的特定软件包需要运行PowerShell脚本,并且出于某种原因,您的计算机上禁用了PowerShell执行。 你可以搜索google"如何启用powershell"一个完整的指南,但通常它是这样的:

  • 打开一个powershell命令窗口(按下Windows开始按钮后只搜索powershell)
  • 输入" Get-ExecutionPolicy"
  • 查看当前限制
  • 键入" Set-ExecutionPolicy remotesigned"
  • 启用PowerShell

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

答案 1 :(得分:6)

如果您在Visual Studio程序包管理器控制台中遇到此安装NuGet程序包,请以管理员身份运行Visual Studio。

答案 2 :(得分:5)

enter image description here

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

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

- 编辑 - 我继续更新了软件包,发现他们已经为v 1.0.2辞去了新的证书。在NuGet控制台中发出以下问题:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

答案 3 :(得分:1)

万一有人在Google上发现此问题并发生在您身上,我建议您首先尝试重新启动Visual Studio,尤其是如果Package Manager Console之前为您工作过。在VS 2019中,我注意到,如果我在加载时将它放在后台,有时会抛出该错误。

对我来说,重新启动Visual Studio,并将其放在前台,直到Package Manager Console完成初始化为止。请注意,不必以管理员身份运行它。

答案 4 :(得分:0)

我在构建项目时遇到了类似的问题,发现您可能必须在powershell(x86)和powershell(x64)中都将执行策略设置为remoteSigned(正如其他人提到的那样)。我以管理员身份运行x64版本,并且Get-ExecutionPolicy返回“ remoteSigned”,但x86版本尚未更新。如果上述答案对您不起作用,请尝试一下。

答案 5 :(得分:0)

这应该有效

以管理身份打开Power-shell,然后输入

Get-ExecutionPolicy

预期结果RemoteSigned

Set-ExecutionPolicy remotesigned

享受

答案 6 :(得分:0)

在不重启 VS 的情况下使用包管理器控制台和/或以管理员身份运行时,快速修复此错误是删除对当前用户的限制:

Set-ExecutionPolicy remotesigned -scope CurrentUser