🛠️
NuGetパッケージをGitHubPackagesにPushしようとして404が返ってくる場合の対処
実現したいこと
- C#でNuGetパッケージを作成する。
- GitHubでコードを管理する。
- GitHubActionsで、当該リポジトリのGitHubPackagesに配置する。
起きた事象
GitHubActions内にてNuGetパッケージをPushする。
- 環境変数
-
${GITHUB_TOKEN}
=${{ secrets.GITHUB_TOKEN }}
-
${NUGET_SOURCE}
= GitHubPackageのURL- 例:
"https://nuget.pkg.github.com/{organization-name}/index.json"
- 例:
-
dotnet nuget push '*.nupkg' -k ${GITHUB_TOKEN} -s ${NUGET_SOURCE} --skip-duplicate
404エラーが返ってくる。
Pushing {package-name}.nupkg to 'https://nuget.pkg.github.com/{organization-name}'...
PUT https://nuget.pkg.github.com/{organization-name}/
NotFound https://nuget.pkg.github.com/{organization-name}/ 377ms
error: Response status code does not indicate success: 404 (Not Found).
原因・対処
NuGetパッケージとなるC#プロジェクトの .csproj
ファイルを確認します。
- RepositoryUrl
- このURLがGitHubのリポジトリURLと一致していない場合、404エラーが返ってきます。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
...
<RepositoryUrl>https://github.com/{organization-name}/{repository-name}</RepositoryUrl>
...
</PropertyGroup>
<ItemGroup>
...
</ItemGroup>
</Project>
備考
個人リポジトリでもOrganizationsリポジトリでも同様と思われます。
また、今回はGitHubActionsでのエラーでしたが、ローカルからCLIでPushしようとしても同様にエラーになります。
NuGetパッケージを作成する場合は、PropertyGroupをきちんと記述したほうがいいですね。
Discussion