error NU1101: Unable to find package {MyPackage}. No packages exist with this id in source(s): nuget.org [....sln]
GitHubActionsで.NET Coreアプリケーションをビルドしようとすると、自前のNuGetサーバからパッケージを取得できない。
構成
自前でNuGetパッケージを作成し、nuget.orgではなく自身で管理するサーバに配置して利用している。
[image(気が向いたら描く)]
事象
以下のようなworkflowを作成して、.NETのコードをビルドしようとする。
jobs: build: runs-on: ubuntu-latest steps: - ... - name: Build run: | cd ./src/... # solution directory dotnet build
以下のようなエラーが起こる。
dotnet build ... /home/runner/work/....csproj : error NU1101: Unable to find package {MyPackage}. No packages exist with this id in source(s): nuget.org [/home/runner/work/....sln]
対応
dotnet build
を実行する前に、 dotnet restore
を実行する。
その際、 -s|--source
オプションで自前のNuGetサーバを指定する。
(NuGetサーバのURLは環境変数に設定しておく)
jobs: build: runs-on: ubuntu-latest steps: ... run: | cd ./src/... # solution directory dotnet restore -s https://api.nuget.org/v3/index.json -s ${MY_NUGET_SOURCE} dotnet build env: MY_NUGET_SOURCE: ${{ secrets.MY_NUGET_SOURCE }} # https://mynugetserver/nuget
ハマったところ
以下の対応で解決しなくて、しばらくハマってました。
NuGet CLI ソースコマンド | Microsoft Docs
nuget sources Add -Name "MyServer" -Source \myserver\packages
備考
NuGetサーバに認証をかけた場合は検証していません。