【问题标题】:How can I prevent the Package Manager Console from hanging when cmdlet prompts for info?当 cmdlet 提示输入信息时,如何防止包管理器控制台挂起?
【发布时间】:2013-10-16 01:43:01
【问题描述】:

我一直在使用 NuGet 的包管理器控制台来处理我在 Visual Studio 中工作时需要执行的任何命令行活动。它工作得很好,因为我不需要离开 VS,但是当 cmdlet 提示输入更多信息(用户 ID、密码、确认等)时,它就会挂起,我必须重新启动 VS。

是否可以调整包管理器控制台以使其像标准的 Power Shell 控制台一样用于用户提示?

【问题讨论】:

  • 它对我来说表现正常,提示和所有。您是否加载任何其他模块?什么版本的powershell? $Profile引用的文件中是否有任何内容?
  • 感谢@Eris,get-module 返回:NuGet & profile,profile 没有 ExportedCommands。 $Profile 指向的文件不存在。当你说你没有这个问题时,git或hg在你推送时会提示你输入服务器凭据吗?那时它通常会挂起,但即使 git difftool 提示确认 [Y/n],它也会挂起。我还没有看到任何具有不挂起的命令行提示符的东西。
  • Git 没有,因为我使用 git-credential-winstore (gitcredentialstore.codeplex.com) 作为命令行,并且有 git SCM 插件(来自附加组件管理器)。对于 difftool,我使用“git difftool -g -d ”,它从不提示,并在 KDiff3 中打开整个 diff,而不是一次打开一个文件。
  • 感谢@Eris,我意识到我可能能够配置 git & hg 不提示我,我过去也这样做过,但每隔一段时间我就会遇到新的问题它确实提示我,并且控制台确实挂起,所以我想也许我应该看看我是否可以配置它。 KWIM?
  • @JohnMacIntyre,你解决了这个问题吗?我也有同样的问题:(

标签: visual-studio powershell visual-studio-2012 nuget


【解决方案1】:

与 PowerShell ISE 一样,NuGet 包管理器控制台是在 WPF 中实现的。这不是一个真正的控制台窗口。它非常适合使用本机 Cmdlet 进行提升,但它不处理本机命令 (com/exe) 标准输入重定向。 ISE 遭受同样的失败。我确实考虑过实施它,但所需的工作对于感知的好处来说是不成比例的。您可以多次使用响应文件或管道响应到本机命令,因此有一些变通方法。尝试在 ISE 中运行类似 netsh 的交互式命令,看看会发生什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    相关资源
    最近更新 更多