我有一个新的空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项目无关。
我的问题是:
为什么我收到这些消息?
我该怎么做才能解决这个问题?
此问题可能出现在运行我的应用程序的服务器上?有些脚本无法按预期运行?
答案 0 :(得分:30)
我想您尝试安装的特定软件包需要运行PowerShell脚本,并且出于某种原因,您的计算机上禁用了PowerShell执行。 你可以搜索google"如何启用powershell"一个完整的指南,但通常它是这样的:
此问题不会影响您计划安装应用程序的服务器。
答案 1 :(得分:6)
如果您在Visual Studio程序包管理器控制台中遇到此安装NuGet程序包,请以管理员身份运行Visual Studio。
答案 2 :(得分:5)
图片文字的翻译有点:此证书已从其密钥库中已撤销。
我的init.ps1上的证书已过期 - 因此RemoteSigned
不会这样做。要使该软件包版本生效,需要将其设置为ByPass
或Unrestricted
。就个人而言,我不建议这样做......
- 编辑 - 我继续更新了软件包,发现他们已经为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