簡體   English   中英

如何使用憑據正確配置外部nuget包源?

[英]How to properly configure external nuget package source with credentials?

我在我的項目中有一個外部nuget軟件包源,這是我在Visual Studio 2017中通過``軟件包Package Manager Settings 我可以正確安裝軟件包,但是單擊“ 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

通過Azure Devops feed推送或使用程序包時,它需要身份。

我認為您不需要使用nuget.exe sources Add -Name "TestNuget" -Source "https://xxx/nuget/v3/index.json"類的命令nuget.exe sources Add -Name "TestNuget" -Source "https://xxx/nuget/v3/index.json" ,因為它用於管理Nuget.config的軟件包源Nuget.config文件,而不是解決未經授權的問題。 請參閱sources命令

我收到此錯誤狀態:

2>重試源'https://***.azure.com/*****/system.servicemodel.duplex/index.json'的'FindPackagesByIdAsync'。 2>響應狀態代碼不指示成功:401(未授權)。

大多數時候,在使用自包含部署模式時,我都會遇到此類消息。 但是實際上發布可以在我的機器中成功,並顯示以下消息:

在此處輸入圖片說明

(我認為發布也可以在您的身邊成功,在這種情況下,我認為您可以忽略它或使用相同的PublishProfile第二次發布項目,錯誤消息就會消失)

成功構建項目后,您還可以使用依賴框架的模式發布項目。

如果發布失敗:

1.如果發布失敗並顯示該消息,我認為您可以通過Nuget Package Manager UI刪除referenced packages ,並從Package Sources UI刪除Feed Url

2.然后重新啟動VS,並在“ Package Sources Setting re-set Feed網址。 重新設置包源后,無需使用命令行,使用VS2017 UI並重新添加包。

3.當您像這樣從新設置的提要中搜索軟件包時,它將彈出一個身份窗口 ,要求您輸入帳戶和密碼,然后您便獲得了授權 之后,您可以找到並使用項目中的包,然后將其成功發布。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM