2

我正在尝试在 Visual Studio 2012 Update 3 中启动包管理器控制台,并在打开窗口时看到以下输出:

包管理器控制台主机版本 2.6.40627.9000

键入“get-help NuGet”以查看所有可用的 NuGet 命令。

术语“Set-Location”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。

我从来没有得到提示,这对我来说意味着控制台未能正确初始化。这确实在某个时候起作用,比如两周前,但我无法推断出是什么变化导致它停止工作。即使我在安全模式下启动,我也会看到错误。我还安装了 Visual Studio 2010,我看到了同样的错误,这表明 Visual Studio 不是罪魁祸首。

包管理器控制台尝试运行失败的脚本是什么?Set-Location是一个内置的 PowerShell cmdlet,这就是为什么这个错误让我感到困惑。我不确定如何开始对此进行故障排除。我卸载并重新安装了包管理器扩展,但问题仍然存在。

我在尝试对 Web API 项目的包安装失败进行故障排除时发现了这个问题。当我尝试创建一个新的 Web API 项目时,我看到如下错误:

EntityFramework.5.0.0:初始化 PowerShell 主机失败。如果您的 PowerShell 执行策略设置设置为 AllSigned,请先打开包管理器控制台以初始化主机。

这里有一些可能会有所帮助的附加信息。我正在运行带有 .NET 4.5.50709 和 PowerShell v2 的 Windows 7。在解决此问题时,我的执行策略设置为不受限制。

C:\> $psversiontable.psversion

Major  Minor  Build  Revision
-----  -----  -----  --------
2      0      -1     -1
4

2 回答 2

3

我能够通过 Windows Management Framework 3 for Windows 7 SP 1 更新 ( Windows6.1-KB2506143-x64.msu ) 安装 PowerShell 3 来解决此错误。目前尚不清楚是否需要 PowerShell 3 或升级操作修复了导致此问题的任何配置问题。

于 2013-07-08T21:39:59.043 回答
0

我知道这是一个旧线程,但是在我选择的模块安装脚本中嵌入了一个 cmdlet 删除脚本后,我才弹出了这个问题。幸运的是,我有一台使用类似模块的服务器,并且能够在管理员 Powershell 窗口下的有问题的服务器上运行它:

Get-Acl "\\goodserver\c$\program files\windowspowershell\modules\" | Set-Acl "c:\program files\windowspowershell\modules\"

奇怪的是,这些命令将在我自己的帐户下运行,但是在其他帐户下打开的“以另一个用户身份运行”窗口(包括计划任务)返回“设置位置”不是 cmdlet 的名称,功能等。从另一个系统中提取 ACL 并像这样应用它们是我的解决方案。

于 2021-08-17T17:58:07.743 回答