Nuget push无法在非交互模式下提示输入

时间:2015-01-04 23:38:50

标签: nuget

我正在运行此命令

nuget push Package.1.0.0.0.nupkg -s http://mysource.com/ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ConfigFile ..\..\.nuget\nuget.config

我收到此错误

UserName: Cannot prompt for input in non-interactive mode.

我已经指定了nuget.config文件,其中包含用户名和cleartextpassword,如下所示

  <packageSources>
    <add key="NuGet official package source" value="http://www.nuget.org/api/v2" />
    <add key="https://www.nuget.org/api/v2/" value="https://www.nuget.org/api/v2/" />
    <add key="PackageName" value="http://mysource.com/nuget" />
  </packageSources>

....    

  <packageSourceCredentials>
    <PackageName>
      <add key="Username" value="<username>" />
      <add key="ClearTextPassword" value="<clearpassword>" />
    </PackageName>
  </packageSourceCredentials>

为什么这不起作用?我在VS2013中运行批处理文件我正在使用的nuget版本是,NuGet版本:2.8.50926.602

4 个答案:

答案 0 :(得分:2)

我现在能够完成这项工作的唯一方法是基于this post from Robin Osborne

  • 我使用了源网址(http://mysource.com/nuget)并使用iexplore
  • 直接访问了该网址
  • Windows要求我提供身份验证凭据,我手动输入并要求Windows保存密码(这会将它们存储在用户的Window Credentials商店中)。
  • 然后我重新运行了执行nuget push操作的PS1脚本,它根本没有抱怨。

当然,这不是它的工作方式,但至少从你遇到的同样情况中解除了我的阻碍。将其视为一种解决方法。

答案 1 :(得分:1)

不知道这是否会有所帮助。我试图推送到我们的私人克朗代克服务器时遇到了同样的错误。我们通过使用有效的ApiKey而不是修改配置来修复此问题。

答案 2 :(得分:1)

这不是用于使用nuget.config文件,但是我在运行命令行时遇到了同样的问题PUSH ......

转到VSTS网站,然后单击“包”链接。如果您有Feed,请点击“连接到Feed”链接。如果没有,屏幕上将出现相同的链接/按钮。单击Generate NuGet credentials。复制该命令并将其粘贴到VS PM控制台窗口中。然后按照页面上的说明#3进行操作,并在VS.

内部工作

答案 3 :(得分:0)

另一种可能的修复(在我的情况下有效)是您用于进行身份验证的Visual Studio Team Services帐户的个人访问令牌(PAS)已过期。默认值为90天,但您也可以选择180天或1年。

如果你不知道你在哪里这样做:

  • 登录您的visual studio团队服务
  • 将鼠标悬停在屏幕右上角的个人资料图标上
  • 点击“安全”
  • 在左侧菜单中,点击“个人访问令牌”
  • 您可以点击过期PAS的说明以查看其属性
  • 在详细信息屏幕上,更改“Expires in”值和&amp;然后点击屏幕底部的“保存”。