如何使用凭据正确配置外部nuget包源?

时间:2019-08-08 15:46:24

标签: c# visual-studio nuget

在我的项目中,我有一个外部nuget包源,这是由Package Manager Settings在Visual Studio 2017中添加的。我可以正确安装软件包,但是单击publish(这是一个dotnet核心控制台应用程序)时。我收到此错误状态:

  

2>重试源'https://***.azure.com/*****/system.servicemodel.duplex/index.json'的'FindPackagesByIdAsync'。   2>响应状态代码不表示成功:401(未授权)。

我搜索了一个解决方案,说要使用cmd添加凭据,但是当我尝试执行添加命令时,我从cmd收到了以下错误消息:

  

指定的名称已经添加到可用软件包来源列表中。请提供一个唯一的名称。

因此,我需要从Visual Studio中删除程序包源(使用“程序包管理器设置”),并且在删除程序包源之后,cmd命令有效,但是之后我将无法再访问其中的外部程序包Visual Studio(因为我删除了它以便可以从命令行添加)。

我该如何解决?

编辑: cmd语法是这样的:

nuget.exe sources add -name MyExternalSource -source https://***/nuget/v3/index.json -username nugetUser -password MyToken

1 个答案:

答案 0 :(得分:0)

通过Azure Devops feed推送或使用软件包时,它需要身份。

我认为您不需要使用nuget.exe sources Add -Name "TestNuget" -Source "https://xxx/nuget/v3/index.json"之类的命令,因为它用于管理Nuget.config文件中的程序包源,而不是解决 Unauthorized 问题。参见sources command

  

我得到此错误状态:

     

2>重试“ FindPackagesByIdAsync”作为源   'https://***.azure.com/*****/system.servicemodel.duplex/index.json'。   2>响应状态代码不表示成功:401(未授权)。

大多数时候,我在使用Self-Contained部署模式时遇到了此类消息。但是实际上,发布可以在我的机器中成功,并显示以下消息:

enter image description here

(我认为发布也可以在您的身边成功,在这种情况下,我认为您可以忽略它或使用相同的PublishProfile第二次发布项目,错误消息就会消失)

成功构建项目后,您还可以使用Framework-dependent模式发布项目。

如果发布失败:

1。如果发布失败并显示该消息,我认为您可以通过referenced packages删除Nuget Package Manager UI,并从Feed Url删除Package Sources UI

2。然后重新启动VS,并在re-setPackage Sources Setting的Feed Url。重新设置包源后,无需使用命令行,使用VS2017 UI并重新添加包。

3。当您从this之类的新设置供稿中搜索包裹时,它将弹出一个身份窗口,要求您输入帐户和密码,然后现在已授权。之后,您可以找到并使用项目中的包,然后将其成功发布。希望对您有所帮助。