由于“无法初始化PowerShell主机”,无法安装nuget软件包

突然之间,我在升级Nuget包的时候出现这个错误。 我遇到的问题没有任何解决办法。 我正在使用Visual Studio 2013。

'Newtonsoft.Json 6.0.3' already installed. Adding 'Newtonsoft.Json 6.0.3' to Tournaments.Notifications. Successfully added 'Newtonsoft.Json 6.0.3' to Tournaments.Notifications. Executing script file 'F:\My Webs\BasketballTournaments\MainBranch\packages\Newtonsoft.Json.6.0.3\tools\install.ps1'. Failed to initialize the PowerShell host. If your PowerShell execution policy setting is set to AllSigned, open the Package Manager Console to initialize the host first. 

包pipe理器控制台

 Attempting to perform the InitializeDefaultDrives operation on the 'FileSystem' provider failed. 

如果我等待初始化在控制台中完成,我可以添加一些包。

将执行策略设置为RemoteSigned或Unrestricted应该可行。 必须通过PowerShell控制台在pipe理员模式下进行更改。 请注意,将根据PowerShell控制台的位版本进行更改,以便使用32位或64位。 因此,如果您想在Visual Studio(32位版本)中安装需要特定策略的软件包,则应通过PowerShell(x86)更改策略的设置。

PowerShell中的命令(以pipe理员身份)将策略设置为不受限制(如注释中的@Gabriel所述)为:

 start-job { Set-ExecutionPolicy Unrestricted } -RunAs32 | wait-job | Receive-Job 

将策略设置为不受限制后,您需要在安装完成后将策略设置为原始策略。

请记住,在完成PowerShell(x86)中的Set-ExecutionPolicy Unrestricted之后,重新启动Visual Studio。

如果这不起作用,请尝试在PowerShell(x86)中Set-ExecutionPolicy RemoteSigned ,然后重新启动Visual Studio。

默认情况下,出于安全原因,PowerShell脚本执行非常有限。 为了在NuGet中使用,我们需要打开门。

1.一步

打开Windows PowerShell ,以Administrator身份运行

2.一步

NuGet使用32位控制台,所以不会受到64位控制台更改的影响。 运行以下脚本以确保您正在configuration32位控制台。

 start-job { Set-ExecutionPolicy RemoteSigned } -RunAs32 | wait-job | Receive-Job 

3.一步

重新启动Visual Studio

我在“pipe理NuGet包”对话框中遇到了同样的问题,我使用可能有助于他人的解决方法 – 从包pipe理器控制台运行:

如果我使用命令行powershell命令行安装包,一切都很好。

我不愿意改变一个安全设置“只是为了工作”。

没有答案为我工作。

所有的政策都是正确的,但是我在安装软件包的时候出错了

无法初始化PowerShell主机。 如果您的PowerShell执行策略设置设置为AllSigned,请打开软件包pipe理器控制台以首先初始化主机。

解决方法 :我卸载nuget包pipe理器插件并重新安装

以pipe理员身份运行Visual Studio为我工作。

最近这个6.0.4开始发生在我身上,我不认为这是一个很好的解决scheme,但是这是对我的帮助。 closuresVisual Studio

  1. 以pipe理员身份打开Windows PowerShell提示符(非常重要),然后运行以下命令:Set-ExecutionPolicy Bypass
  2. 打开Visual Studio,打开你的解决scheme,并使用Nuget来安装JSON.Net(或任何包括它作为依赖包)。
  3. 一切正常后,我build议使用以下命令将powershell执行策略恢复为限制:Set-ExecutionPolicy Restricted

我在Visual Studio 2015中遇到了这个问题。我再次卸载并重新安装了NuGet Package Manager。 它为我工作。

我更新了Nuget包pipe理器,并为我修复了它。

默认情况下,我的Windows 10 64位仅启用了Powershell版本1.0。 我更改了控制面板/程序/程序和function/打开Windowsfunction。

确保Windows Powershell 2.0引擎已启用。

以非pipe理员模式重新启动VS2015并正确安装所有软件包。

升级到Windows 10后,我遇到了同样的问题。

这对我有效

  1. closuresVisual Studio
  2. 以pipe理员身份运行Powershell
  3. 运行Set-ExecutionPolicy Unrestricted
  4. 以pipe理员身份运行Visual Studio
  5. 清理项目并添加nuget包

如果仍然不起作用,请尝试编辑devenv.exe.config

Visual Studio 2013: C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\12.0

Visual Studio 2015: C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\14.0

添加以下内容

  <dependentAssembly> <assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" /> <publisherPolicy apply="no" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.PowerShell.Commands.Utility" publicKeyToken="31bf3856ad364e35" /> <publisherPolicy apply="no" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.PowerShell.ConsoleHost" publicKeyToken="31bf3856ad364e35" /> <publisherPolicy apply="no" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.PowerShell.Commands.Management" publicKeyToken="31bf3856ad364e35" /> <publisherPolicy apply="no" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.PowerShell.Security" publicKeyToken="31bf3856ad364e35" /> <publisherPolicy apply="no" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.PowerShell.Commands.Diagnostics" publicKeyToken="31bf3856ad364e35" /> <publisherPolicy apply="no" /> </dependentAssembly> 

我所需要做的就是重新启动Visual Studio,打开NuGet Package Manager Console ,然后使用Manage NuGet Packages对话框。

我有vs2013的同样的问题,改变执行政策并没有解决它。 我发现唯一的工作解决scheme是从VS卸载Nuget并再次安装。 步骤在这里: https : //stackoverflow.com/a/32619961/3853238

closures所有的Visual Studio实例,然后重试。 它为我工作:)

在尝试了各种build议的修复之后,最终通过更新Visual Studio中的NuGet Package Manager扩展来解决这个问题。

这在“工具 – >扩展和更新”下完成,然后在“扩展和更新”对话框中更新 – > Visual Studio库。 可能需要重新启动Visual Studio。

如果以上都没有帮助,请参阅是否可以更新Visual Studio。

当我尝试安装Newtonsoft.Json时,我遇到了与Visual Studio 2017社区相同的问题。 ExecutionPolicy更改没有帮助(我尝试使用PowerShell和registry编辑器)。 我也试着卸载并安装NuGet。

运行VS2017安装文件后,它要求更新Visual Studio。 所有的问题在更新后都消失了。

对于我来说,将执行策略设置为Unrestricted不起作用。 我必须通过进入控制面板来修复vs2013安装。 修复安装为我工作。

有同样的问题,这解决了我(Powershell作为pipe理员):

 Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass 

如果您使用VS 2013 Update 5,则应手动为NuGet Packet Manager安装更新2.8.7 。

错误报告有更多的细节。

VS2015:更新了NuGet并工作。

对我来说,诀窍是通过使用下面的链接重新安装NuGet Package Manager:

VS 2013: https : //github.com/NuGet/Home/releases/download/2.8.7/NuGet.Tools.vsix

VS 2015: https : //github.com/NuGet/Home/releases/download/3.1.1/NuGet.Tools.vsix

如果上面的答案为你工作 –

  1. 打开运行 – Windows + R
  2. 打开registry编辑器 – 键入regedit.exe
  3. 打开 – HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ PowerShell
  4. 在右侧窗格中 – 修改“ExecutionPolicy”,并将其“数据数据”保留为空白。
  5. 重新启动你的视觉工作室,现在你的Powershell可以正确初始化。

下载并安装Windows PowerShell的pipe理模板

 Next: Powershell x86 from As Administrator Run: Get-ExecutionPolicy -List , and see if you have RemoteSigned etc.. 1. 5 different scopes Set-ExecutionPolicy "RemoteSigned" -Scope Process -Confirm:$false 2. Machine and User Policy you have to set through the Group Policy Administration Template in 2 areas. 

更新 – 编辑:

 Set ALL of them to "Undefined" and ONLY the LocalMachine to "Restricted" 

这是固定的可能之后,我已经给我的powershell更多的权限,不知道它会搞砸视觉工作室2013年和2015年

此问题并不总是与PowerShell执行策略相关。 对于PowerShell x64和x86,我的机器configuration为“Unrestricted”,但我仍然在Visual Studio 2013中多次出现此错误消息。

当我尝试打开程序包pipe理器控制台时:

Windows PowerShell成功更新了您的执行策略,但该设置被在更具体的范围内定义的策略覆盖。 由于重写,你的shell将保留当前有效的执行策略Unrestricted。 input“Get-ExecutionPolicy -List”查看您的执行策略设置。 有关更多信息,请参阅“Get-Help Set-ExecutionPolicy”。

这不是一个有效的错误消息。

重新启动Visual Studio并不总能解决问题。

以pipe理员身份运行进程永远不会解决问题。

像Declan一样,Package Manager插件的最新更新解决了问题:2.8.60723.765

将执行策略设置为Bypass而不是Unrestricted或RemoteSigned; 本教程给出了更完整的说明 。 另外,如果您在使用PowerShell更改策略时遇到问题,那么作者将向您演示如何在Regedit中对其进行更改。

这里黑暗中有很多刺,所以我会加我自己的。

在我的情况下,我也收到一条消息,说明存在一个丢失的锁文件,并build议在包pipe理器控制台中运行dnu restore 。 我这样做,重新启动VS,现在一切正在工作。

对我有效的是:

  1. 将执行策略设置为Unrestricted。
  2. Find-Module ISEModuleBrowserAddon | Install-Module
  3. Import-Module ISEModuleBrowserAddon
  4. Find-Module ISEScriptAnalyzerAddOn | Install-Module
  5. Import-Module ISEScriptAnalyzerAddOn
  6. Import-Module ScriptBrowser
  7. 在ISE中,您需要Enable-ScriptBrowser

你的ISE中有模块,脚本和分析器。

在Win 10 Pro,x64控制台主机5.0.10586.122中运行

祝你好运!

显然在Windows 10 1511版本中有一个Powershell错误。

这里列出的修补程序没有为我工作。 (或者只是暂时工作)

我通过安装版本1607修复了它(在VS2013和VS2015中)。 它可以在这里下载: Windows 10周年更新 。

Nuget问题: https : //github.com/NuGet/Home/issues/3352

在尝试所有build议的解决scheme后,VS 2015更新2没有任何工作

从解决scheme文件夹中删除包文件夹,并从Visual Studio恢复工作