Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用凭据正确配置外部nuget包源?_C#_Visual Studio_Nuget - Fatal编程技术网

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

C# 如何使用凭据正确配置外部nuget包源?,c#,visual-studio,nuget,C#,Visual Studio,Nuget,我的项目中有一个外部nuget包源代码,我在Visual Studio 2017中通过包管理器设置添加了该源代码。我可以正确安装软件包,但当我点击发布时(这是一个dotnet核心控制台应用程序)。我获得以下错误状态: 2> 正在为源“https://***.azure.com/******/system.servicemodel.duplex/index.json”重试“FindPackagesByDaSync”。 2> 响应状态代码不表示成功:401(未经授权) 我搜索了一个说明使用cmd添加

我的项目中有一个外部nuget包源代码,我在Visual Studio 2017中通过
包管理器设置添加了该源代码。我可以正确安装软件包,但当我点击发布时(这是一个dotnet核心控制台应用程序)。我获得以下错误状态:

2> 正在为源“https://***.azure.com/******/system.servicemodel.duplex/index.json”重试“FindPackagesByDaSync”。 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

当通过Azure Devops订阅源推送或消费包时,它需要标识

我认为您不需要使用像
nuget.exe sources添加-Name“TestNuget”-Source这样的命令https://xxx/nuget/v3/index.json“
,因为它用于管理
Nuget.config
文件中的包源,而不是解决未经授权的问题。看

我获得以下错误状态:

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

大多数时候,我在使用部署模式时都会遇到这种消息。但实际上,发布可以在我的机器上成功,消息如下:

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

此外,您还可以在成功生成项目后以模式发布项目

如果发布失败:

1.如果您的发布因该消息而失败,我认为您可以通过
Nuget Package Manager UI
删除
引用的包
,并从
包源UI
删除
提要Url

2.然后重新启动VS并
包源设置中重新设置
提要Url。无需使用命令行,使用VS2017 UI,重新设置包源后重新添加包


3.当您从new set feed like搜索包时,它会弹出一个标识窗口,要求您输入帐户和密码,然后您现在已获得授权。之后,您可以在项目中查找、使用包,并成功发布它。希望它能有所帮助。

通过Azure Devops订阅源推送或消费软件包时需要标识

我认为您不需要使用像
nuget.exe sources添加-Name“TestNuget”-Source这样的命令https://xxx/nuget/v3/index.json“
,因为它用于管理
Nuget.config
文件中的包源,而不是解决未经授权的问题。看

我获得以下错误状态:

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

大多数时候,我在使用部署模式时都会遇到这种消息。但实际上,发布可以在我的机器上成功,消息如下:

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

此外,您还可以在成功生成项目后以模式发布项目

如果发布失败:

1.如果您的发布因该消息而失败,我认为您可以通过
Nuget Package Manager UI
删除
引用的包
,并从
包源UI
删除
提要Url

2.然后重新启动VS并
包源设置中重新设置
提要Url。无需使用命令行,使用VS2017 UI,重新设置包源后重新添加包


3.当您从new set feed like搜索包时,它会弹出一个标识窗口,要求您输入帐户和密码,然后您现在已获得授权。之后,您可以在项目中查找、使用包,并成功发布它。希望有帮助。

在继续之前,请检查您的用户凭据存储的确切位置。还可以尝试使用
dotnet publish
生成部署二进制文件,这可能会比Visual Studio提供更好的错误消息。发布之前您是否成功构建了项目?如果发布失败时生成良好,则可能可以尝试重新生成项目,并确保引用的程序集复制到输出文件夹,然后发布项目。继续之前,请检查用户凭据的确切存储位置。还可以尝试使用
dotnet publish
生成部署二进制文件,这可能会比Visual Studio提供更好的错误消息。发布之前您是否成功构建了项目?如果发布失败时生成良好,则可以尝试重新生成项目,并确保将引用的程序集复制到输出文件夹,然后发布项目。