web-dev-qa-db-ja.com

Jenkins-NuGetパッケージの復元を実行して、このファイルを生成します

Jenkinsビルドサーバーで.NET Standard 2.0ライブラリをビルドするとき

C:\Program Files\dotnet\sdk\2.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error : Assets file 'C:\Jenkins\workspace\<Project>\Sources\Library\obj\project.assets.json' not found. Run a NuGet package restore to generate this file. [C:\Jenkins\workspace\<Project>\Sources\Library\Library.csproj]

ビルドログで上記のエラーが発生しました。

エラーについて検索したところ、 ソリューション が見つかりました

しかしながら、

dotnet resotre <Solution Name>

解決策は、ビルドを開始する前にワークスペースをクリーンアップしても役に立ちません。

したがって、MSBuildの前にコマンドを挿入しましたが、失敗しました

C:\Program Files\dotnet\sdk\2.1.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198,5): error : Package Microsoft.CodeAnalysis.CSharp.Workspaces, version 2.8.0 was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [C:\Jenkins\workspace\<Project>\Sources\Web\Web.csproj]

ソリューションリファレンス によると、多分アップグレードNuget Package Installerが助けになります。しかし、どうすればアップグレードできるかわかりませんNuget Package Installerコマンドラインで...

9
ibocon

同じ問題が発生し、同じエラーが発生しました:

error : Package <package> was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions. [<path>]

MSBuild /t:restoreの代わりにdotnet restoreを使用して解決できました。

参照: https://docs.Microsoft.com/en-us/nuget/reference/msbuild-targets#restore-target

6
Mat

[〜#〜] update [〜#〜]:Jenkinsの問題はこの他で詳細に議論されていることに言及する価値があります answer

@Matのヒントはうまくいきませんでした:/t:restoreは、 here で述べたように、現在package.configを使用してプロジェクトのnugetパッケージを復元できません。私のために働いたのは次のとおりです:

call "%PROGRAMFILES(X86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
nuget restore CodeBinder.sln
MSBuild Solution.sln /p:Configuration=Release /p:Platform="Any CPU" /t:build /restore
pause

基本的に、公式サイト[1]のWindows x86コマンドラインセクションからnuget CLIをダウンロードする必要があります。スイッチ/restoreは、 here のように、MSBuild /t:restoreと同様に、部分的に完了したNuget復元エラーを修正しましたが、/t:buildと組み合わせて実行できます。

[1] https://www.nuget.org/downloads

2
ceztko