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

Nuget push无法在非交互模式下提示输入,nuget,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文件,它的用户名和cleartextpas

我正在运行这个命令

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不知道这是否有帮助,但是。我在尝试推送到我们的私人Klondike服务器时也犯了同样的错误。我们通过使用有效的ApiKey而不是修改配置来解决这个问题。

我现在唯一能做到这一点的方法是基于

  • 我获取了源URL(
    http://mysource.com/nuget
    )并使用iexplore直接访问它
  • Windows要求我提供身份验证凭据,我手动输入了这些凭据,并要求Windows保存密码(这将将它们存储在用户的Windows凭据存储中)
  • 然后我重新运行执行nuget push操作的PS1脚本,它一点也没有抱怨

当然,这不是它想要的工作方式,但至少它让我摆脱了你所经历的同样情况。将其视为一种解决方法。

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

转到您的VSTS网站并单击程序包链接。如果有提要,请单击“连接到提要”链接。否则,屏幕上将显示相同的链接/按钮。单击生成NuGet凭据。复制命令并将其粘贴到VS PM控制台窗口中。然后按照页面上的说明#3操作,它在内部运行,而另一个可能的修复方法(在我的案例中是有效的)是,您用于验证的Visual Studio Team Services帐户的个人访问令牌(PAS)已过期。默认值为90天,但也可以选择180天或1年

如果您不知道在哪里执行此操作:

  • 登录到visual studio团队服务
  • 将鼠标悬停在屏幕右上方的个人资料图标上
  • 点击“安全性”
  • 在左侧菜单上单击“个人访问令牌”
  • 您可以单击过期PAS的说明以查看其属性
  • 在详细信息屏幕上更改“过期时间”值,然后单击屏幕底部的“保存”
我使用的是有效的ApiKey,但它仍然会给我相同的错误。有人找到解决办法了吗?同样的方法也适用于我。在我的例子中,NuGet服务器是在Windows IIS中配置的,并使用Windows身份验证。”“保存密码”是必需的,否则它将无法按此处所述工作。