[英]How to use github nuget packages on Visual Studio 2019
我嘗試學習 Github 動作和包。 因此,我創建了一個示例 nuget package 並成功創建。 但是我無法使用它。
我按照這一步;
在那之后,Visual Studio 不會向我詢問此地址的任何憑據。
如果沒有憑據,我會期望出錯。 我明白了。
[github] 無法從源“ https://nuget.pkg.github.com/[OrganizationName]/query?q=&skip=0&take=26&prerelease=false&semVerLevel=2.0.0 ”檢索元數據。 響應狀態碼不表示成功:401(未授權)。
然后,我決定使用一些憑證,如github 文檔中所述。
但是我仍然收到未經授權的錯誤。 而且,當我單擊錯誤鏈接時,會收到一條這樣的消息:
{"errors":[{"code":"您的令牌未被授予執行此查詢所需的范圍。'id' 字段需要以下范圍之一","message":" ['read:packages' ],但您的令牌僅被授予:[''] 范圍。請在以下位置修改您的令牌范圍: https://github.com/settings/tokens 。"}]}
那么,如何添加和使用我的私有 nuget 包?
這不是一件容易的事,但這是解決方案(經過 2 天的努力)
首先在Github中生成PAT(Personal Access Token)
按照以下步驟生成 PAT
read:packages 選項對 select 非常重要
Github 只會顯示一次 PAT,所以一定要復制保存,否則需要重新生成
現在有了 PAT,將Nuget.Config
文件添加到您的項目中
該文件的內容應如下所示
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="github" value="https://nuget.pkg.github.com/OWNER/index.json" /> </packageSources> <packageSourceCredentials> <github> <add key="Username" value="USERNAME" /> <add key="ClearTextPassword" value="TOKEN" /> </github> </packageSourceCredentials> </configuration>
您必須更換:
您必須重新啟動 Visual Studio 甚至重新啟動 PC這很重要
之后打開終端並復制並粘貼(可能有一些修改)Github 給你安裝 package 的聲明
現在您已准備好獲取 Package 。
更新
如何為團隊配置github nuget包?
使用環境變量配置nuget.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
<add key="Github" value="https://nuget.pkg.github.com/OWNER/index.json" />
</packageSources>
<packageSourceCredentials>
<Github>
<add key="Username" value="%GITHUB_PACKAGE_USER_NAME%" />
<add key="ClearTextPassword" value="%GITHUB_PACKAGE_TOKEN%" />
</Github>
</packageSourceCredentials>
</configuration>
GITHUB_PACKAGE_USER_NAME
和GITHUB_PACKAGE_TOKEN
可以是任何你想要的。
現在,每個團隊成員都應該配置他們的用戶環境變量:
GITHUB_PACKAGE_USER_NAME
: 團隊成員 github 用戶名GITHUB_PACKAGE_TOKEN
:團隊成員個人訪問令牌 (PAT)通過這些配置,假設團隊成員可以訪問 OWNER package 存儲庫,Visual Studio 將能夠查詢和下載包。
如何在github 操作流程中恢復 github nuget 包?
配置之前的NuGet.config
,您需要更改傳遞所需環境變量的工作流,如下所示:
- name: Restore dependencies
env:
GITHUB_PACKAGE_USER_NAME: ${{ github.actor }}
GITHUB_PACKAGE_TOKEN: ${{ secrets.RESTORE_ORGANIZATION_PACKAGES }}
run: dotnet restore ./src
由於您無法通過 PAT,因此您需要配置一個 github 密碼(用於存儲庫或組織)。 在上面的示例中,我在存儲庫級別創建了一個名為RESTORE_ORGANIZATION_PACKAGES
的 secret,它具有read:packages
權限。
我今天剛剛用 VS 19 遇到了這個問題。
當如下所示為 Nuget 包添加新源時,我第一次收到用戶和密碼提示
我錯誤地輸入了我的 github 密碼作為密碼。 相反,您應該在 github 設置下創建一個令牌,如下所示,並輸入令牌本身而不是您的帳戶密碼。
就我而言,我在創建令牌時選擇了以下選項
不幸的是,VS 19 沒有再次提示輸入憑據並繼續顯示錯誤消息:
[github] 無法從源檢索元數據...。響應狀態代碼不表示成功:401(未授權)。
要在 Windows 上更改此參數,請打開控制面板\用戶帳戶\憑據管理器,如下所示:
單擊編輯,並將您剛剛在 github 上創建的訪問令牌粘貼為密碼。 向下滾動憑據列表。 就我而言,我還需要更改密碼。
如何在 Visual Studio 2019 上使用 github nuget 包
首先,確保nuget.config
文件中的憑據信息正確無誤。
我發現您的文檔建議您應該在解決方案中添加一個新的nuget.config
文件。 這個nuget.config
文件是一個本地動作文件,它將作用於當前子目錄和當前級別以下的任何項目。 你可以參考這個文件。
這樣,您應該重新啟動 VS 實例以啟用這個新的nuget.config
文件。
--------全局nuget.config--------
但是,根據您的描述和第一張圖片,您使用了全局nuget.config
文件。 並且 UI 的信息存儲在全局nuget.config
文件下。
如果你想為你 PC 上的所有項目配置這個 gihub package 源,你應該在全局nuget.config
文件中配置它。
您提供的第一張圖片表明您在全局文件中使用了( C:\Users\xxx(current user)\AppData\Roaming\NuGet\NuGet.Config
)。
這個 function 也需要重啟 VS 才能啟用新的nuget.config
文件。
建議
請將您的文件內容添加到C:\Users\xxx(current user)\AppData\Roaming\NuGet\NuGet.Config
中。
重新啟動 VS 實例或重新啟動 PC 以啟用這個新的nuget.config
文件。 它就是這樣設計的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.