Powershell x64无法在Windows 8.1中启动

时间:2015-02-06 15:12:47

标签: powershell visual-studio-2013 windows-8.1 nuget-package

我需要解决的问题是Visual Studio 2013中的Nuget Package Manager控制台无法启动,因为Windows Powershell会引发错误:

无法启动shell。初始化期间发生故障:'System.Management.Automation.SessionStateScope'的类型初始化程序引发异常。

我尝试重新安装nuget,修复VS2013,更改powershell x86中的执行策略(此处在stackoverflow中给出的常见解决方案),但错误仍然存​​在。

直到我意识到问题出在x64 powershell(C:\ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0)中,因为x86版本没问题。

我在Windows 8.1 x64中使用Visual Studio Ultimate 2013 Update 4 32位

3 个答案:

答案 0 :(得分:1)

我找到了答案,它与.Net

中的遗留安全策略有关

我打开文件 C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config ,并在标签 NetFx40_LegacySecurityPolicy中将属性“enabled”设置为False 和voilá,SysWoW64的PowerShell正在发挥作用。

答案 1 :(得分:0)

在我的情况下,由于未知原因我收到同样的错误,并且由于这个提示我在

中寻找了NetFx40_LegacySecurityPolicy
  

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config

  

C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \配置\ machine.config中

但找不到那个标签......

我确实在

中看到 LegacyCasPolicy enabled =“true”
  

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config

并将其设置为 false ...中提琴,工作就像一个魅力...不知道这是如何设置但无法在任何地方找到解决这个问题的方法,不,我没有任何损坏的系统文件。

答案 2 :(得分:0)

同样的问题不同的关键。

C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \配置\ machine.config中

更改为false

NetFx40_LegacySecurityPolicy enabled="true"