Error: Can't install nuget package because of “Failed to initialize the PowerShell host”

Error: Can't install nuget package because of “Failed to initialize the PowerShell host”

我在尝试通过 nuget 包实现 PostSharp 时遇到 Can't install nuget package because of “Failed to initialize the PowerShell host” 错误, 当我尝试 compile/run 一个使用 PostSharp 的项目自动打开一个 PostSharp 类型的向导屏幕,它建议我应该通过 Nuget 更新包,然后发生错误。

我的 OS 是 Windows 8.1 x64,问题是我没有安装 PowerShell,我通过从 OS 中删除预安装的软件包来永久删除它(来自 Windows 安装前的图像)因为 PowerShell 是我的经验(直到现在)完全不需要的组件,

然后我不能或者我不知道如何在不重新安装完整 SO 的情况下恢复 PowerShell.exe(及其所有依赖项),合并以从虚拟机中查找和复制所有需要的文件可以是一场噩梦吗?

所以,我无法打开一个假想的 powershell 实例到 运行 这个应该用 nuget 解决问题的命令(如此处解释:http://patrickdesjardins.com/blog/failed-to-initialize-the-powershell-host):

Set-ExecutionPolicy Unrestricted

我还尝试下载并安装 Windows Management Framework 4.0 应该安装 Powershell v2.0 但是这 3 个 msu 包中的一个说不适用于我的 OS,而其他 msu 包说了一些关于无法识别证书或签名者的奇怪信息(对不起,我不知道错误消息的翻译英语)。

如何解决 NuGet 的 PostSharp 问题?也许根本不需要安装 powershell?

不想这么说,但你运气不好。使用 nuget 需要 Powershell,如果您损坏了 Windows,您将不得不重新安装。

智者之言。除了在向导中取消选中它们之外,永远不要破坏 Windows 为软件包安装的内部结构。最终你会需要一些需要那个组件的软件,当它发生时你会咒骂。我也是从经验的角度说的,所以不要太苛刻了……哈哈。

令我惊讶和受益的是,我以一种简单的方式解决了它,只需将这些目录的内容从访客 OS 复制到我的主机 OS 到 "recover" PowerShell 功能或更好说了VisualStudio中的NuGet功能。

C:\Windows\System32\WindowsPowerShell\v1.0
C:\Windows\SysWOW64\WindowsPowerShell\v1.0

就这么简单,复制并粘贴内容,现在我可以 update/download Postsharp 没有任何错误,它正确地下载了包。