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

时间:2014-04-29 01:26:49

标签: powershell visual-studio-2013 nuget powershell-v2.0 nuget-package

突然间,我在升级Nuget包时遇到此错误。我遇到过的修复工作都没有。我正在使用Visual Studio 2013。

  

'Newtonsoft.Json 6.0.3'已经安装。

     

将“Newtonsoft.Json 6.0.3”添加到Tournaments.Notifications。

     

成功将'Newtonsoft.Json 6.0.3'添加到Tournaments.Notifications。

     

执行脚本文件'F:\ My Webs \ BasketballTournaments \ MainBranch \ packages \ Newtonsoft.Json.6.0.3 \ tools \ install.ps1'。

     

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

程序包管理器控制台

  

尝试在'FileSystem'提供程序上执行InitializeDefaultDrives操作失败。

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

33 个答案:

答案 0 :(得分:190)

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

PowerShell中的命令(作为管理员)将策略设置为不受限制(如评论中@Gabriel所述):

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

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

答案 1 :(得分:55)

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

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

答案 2 :(得分:50)

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

<强> 1。步骤

打开int _campingDaysAdj = 30 - campingDays; if(_campingDaysAdj > 0 && pagesPerDay > 0) { int months = page / ((30 - campingDays) * pagesPerDay); int years = months / 12; int remainingMonths = months % 12; Console.WriteLine("{0} years {1} months", years, remainingMonths); } else { //throw an exception or an error message etc. } ,以Windows PowerShell

运行

<强> 2。步骤

NuGet正在使用32位控制台,因此它不会受到64位控制台更改的影响。运行以下脚本以确保配置32位控制台。

Administrator

第3。步骤

重新启动start-job { Set-ExecutionPolicy RemoteSigned } -RunAs32 | wait-job | Receive-Job

答案 3 :(得分:25)

我在Manage NuGet Packages对话框中遇到了同样的问题,我使用了一个可以帮助其他人的解决方法 - 从包管理器控制台运行:

如果我使用命令行powershell命令行开关install-package,一切都很好。

我不喜欢更改安全设置&#34;只是为了使其正常工作&#34;。

答案 4 :(得分:24)

没有答案对我有用。

所有政策都是正确的但我在安装软件包时遇到错误

  

无法初始化PowerShell主机。如果你的PowerShell执行   策略设置设置为AllSigned,打开包管理器控制台   首先初始化主机。

解决方案:我已卸载 nuget包管理器插件,重新安装

答案 5 :(得分:16)

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

答案 6 :(得分:7)

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

答案 7 :(得分:7)

我的Visual Studio 2015遇到了这个问题。 我再次卸载并重新安装了NuGet Package Manager。 它对我有用。

答案 8 :(得分:6)

最近我开始使用6.0.4,我不认为这是一个非常好的解决方案,但这对我有帮助。 关闭Visual Studio

  1. 以管理员身份打开Windows PowerShell提示符(非常重要)并运行以下命令:Set-ExecutionPolicy Bypass
  2. 打开Visual Studio,打开解决方案并使用Nuget安装JSON.Net(或任何包含它作为依赖项的包)。
  3. 一切正常后,我建议使用以下命令将powershell执行策略设置回限制: Set-ExecutionPolicy Restricted

答案 9 :(得分:5)

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

这对我有用

  1. 关闭Visual Studio
  2. 以管理员身份运行Powershell
  3. 运行Set-ExecutionPolicy Unrestricted
  4. 以管理员身份运行Visual Studio
  5. 清理项目并添加nuget包
  6. 如果仍然无效,请尝试编辑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>
    

答案 10 :(得分:4)

答案 11 :(得分:4)

默认情况下,我的Windows 10 64位仅启用了Powershell 1.0版。我更改了控制面板/程序/程序和功能/关闭Windows功能。

确保已启用Windows Powershell 2.0引擎。

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

答案 12 :(得分:4)

我遇到了与vs2013相同的问题,并且更改执行策略没有修复它。 我发现唯一可行的解​​决方案是从VS卸载Nuget并再次安装它。步骤如下:https://stackoverflow.com/a/32619961/3853238

答案 13 :(得分:3)

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

答案 14 :(得分:2)

如果上述方法都不起作用,请查看是否可以更新Visual Studio。

当我尝试安装Newtonsoft.Json时,我在Visual Studio 2017社区遇到了同样的问题。 @using MoviePrepper.ViewModels @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *,MoviePrepper @model Project <tbody> <tr *ngFor="let item of myProjectsList" (click)="selectCurrentItem(item,$event)" [class.info]="item==selectedItem"> <td par="item" cdfor="ProjectID"></td> <td par="item" cdfor="ProjectName"></td> <td> <button type="button" (click)="deleteProject(item, $event)">X</button> <button type="button" (click)="changeMode('edit', item, $event)">?</button> </td> </tr> </tbody> 更改没有帮助(我尝试使用PowerShell和注册表编辑器)。我还尝试卸载并安装NuGet。

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

答案 15 :(得分:2)

尝试了各种建议的修复后,最终通过在Visual Studio中更新NuGet Package Manager扩展来解决它。

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

答案 16 :(得分:2)

我的诀窍是使用以下链接重新安装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

答案 17 :(得分:2)

VS2015:更新了NuGet并且工作了。

答案 18 :(得分:2)

如果以上答案适合你 -

  1. 打开运行 - windows + R
  2. 打开注册表编辑器 - 键入regedit.exe
  3. 打开 - HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ PowerShell
  4. 在右侧窗格中 - 修改&#34; ExecutionPolicy&#34;并保持其价值数据&#34;空白。
  5. 重新启动Visual Studio,现在您的Powershell可以正常初始化。

答案 19 :(得分:2)

如果您使用VS 2013 Update 5,则应为NuGet数据包管理器手动安装update 2.8.7

bug report有更多详情。

答案 20 :(得分:1)

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

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

答案 21 :(得分:1)

尝试所有建议的解决方案后,VS 2015更新2没有任何效果

  

从解决方案文件夹中删除包文件夹并从visual studio恢复它为我工作

答案 22 :(得分:1)

我有类似的问题。 我通过在“打开或关闭Windows功能”中打开“Windows PowerShell 2.0”功能来修复它。 请注意,此功能默认情况下处于启用状态,我几天前手动将其关闭。

我正在使用Windows 10 Pro 64bit,同样的问题出现在Visual Studio 2015和2017(32位和64位应用程序)

答案 23 :(得分:1)

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

答案 24 :(得分:0)

将执行策略设置为Bypass而不是Unrestricted或RemoteSigned; this tutorial gives fuller instructions。此外,如果您在使用PowerShell更改策略时遇到问题,那么作者将向您展示如何在Regedit中更改它。

答案 25 :(得分:0)

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

就我而言,我还收到一条消息,指出缺少锁定文件,并建议在程序包管理器控制台中运行dnu restore。我这样做了,重新启动了VS,现在一切正常。

答案 26 :(得分:0)

此问题并不总是与PowerShell执行策略相关。我的机器被配置为&#34; Unrestricted&#34;对于PowerShell x64和x86,但我仍然在Visual Studio 2013中不时收到此错误消息。

当我尝试打开软件包管理器控制台时:

  

Windows PowerShell已成功更新您的执行策略,但是   设置被更具体范围内定义的策略覆盖。   由于覆盖,您的shell将保持其当前有效   无限制执行政策。输入&#34; Get-ExecutionPolicy -List&#34;至   查看您的执行策略设置。有关详细信息,请参阅   &#34; Get-Help Set-ExecutionPolicy&#34;。

这不是有效的错误消息。

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

以管理员身份运行流程永远无法解决问题。

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

答案 27 :(得分:0)

对我有用的是:

  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
  8. 您的ISE中有模块,脚本和分析器。

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

    祝你好运!

答案 28 :(得分:0)

显然在 Windows 10 版本 1511 中存在Powershell错误。

此处列出的修复程序均不适合我。 (或只是暂时工作)

我通过安装 1607 版本修复了它(在VS2013和VS2015中)。可以在此处下载:Windows 10 Anniversary Update

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

答案 29 :(得分:0)

下载并安装Administrative Templates for Windows PowerShell

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

答案 30 :(得分:0)

我的问题解决了,因为此时 .Net Core不支持EF 6.2.0

从Core和EF成功安装更改项目。

答案 31 :(得分:0)

您需要打开PM控制台(工具&gt; Nuget包管理器&gt;包管理器控制台),它会提示您是否要将nuget manager作为不受信任运行,请键入&#39; A&#39;然后单击“输入”以解决问题。

答案 32 :(得分:0)

我在powershell上运行此命令(以管理员身份运行),它解决了我的问题。

reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell /v ExecutionPolicy /f