web-dev-qa-db-ja.com

ビルドサーバー経由のNuget Restore「バージョンが見つかりません」

VSソリューションがあり、TeamCity Buildの一部として、プライベートNuGetフィード(myget)とパブリックフィード(nuget.org)の両方からパッケージを復元します。ほとんどのパッケージは正常に復元されますが、WebApiおよびMono.Securityの場合、以下のパッケージでハングします。これはすべてVisual Studioでローカルに機能します。

[restore] NuGet command: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\JetBrains.TeamCity.NuGetRunner.exe C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe restore C:\TeamCity\buildAgent\work\953bd084b49f7d88\DataFinch.Web.sln -Source https://www.myget.org/F/datafinch/auth/<hidden>/api/v2 -Source https://api.nuget.org/v3/index.json
[11:41:35][restore] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script473789219385667038.cmd
[11:41:35][restore] in directory: C:\TeamCity\buildAgent\work\953bd084b49f7d88
[11:41:35][restore] JetBrains TeamCity NuGet Runner 8.0.37059.9
[11:41:35][restore] Registered additional extensions from paths: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\plugins-2.8
[11:41:35][restore] Starting NuGet.exe 2.8.50926.602 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Client'.
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Core'.
[11:41:43][restore] Unable to find version '3.2.3.0' of package 'Mono.Security'.
[11:41:43][restore] Unable to find version '6.0.4' of package 'Newtonsoft.Json'.
[11:41:43][restore] Process exited with code 1

Teamcityの構成: enter image description here

34
Chris Kooken

Nugetのドキュメントごとにhttps://www.nuget.org/api/v2の代わりにhttps://api.nuget.org/v3/index.jsonを使用してみてください: https://docs.nuget.org/consume/Command-Line-Reference

37
rarrarrarrr

ビルドが失敗した理由は、nuget.exeの古いバージョンでした。最後に、最新バージョンをダウンロードしてこの実行可能ファイルをProgram Files x86フォルダーに入れることで、この問題を解決しました。次に、この実行可能ファイルを指す新しいシステム変数を作成しました。その後、TFSビルド定義にNuGetInstallerパッケージを追加して、この新しいNuGet.exeを使用してTFSを構成できるようにします。 このリンクにより、TFSでこの新しいNuGetバージョンを使用できるようになりました

3
Marcel Beeker

TFSとVisual Studioを活用するビルドスレーブの1つでこの問題に遭遇しました。

修正方法は、Visual Studioでコンパイルされていないソリューションを開き、SLNを右クリックして、[NuGetパッケージの復元を有効にする]を選択したことです。

それはあなたが受け入れなければならないダイアログボックスを促します。あなたがそれをした後、あなたは行ってもいいかもしれません。 SLNを再度右クリックし、「NuGetパッケージの復元」を実行します。その操作が成功した場合は、最高です。

おそらくスレーブ環境を設定するときにプログラムで調整できる設定がいくつかありますが、それはこの種の問題を解決するための直接的な方法の1つです。

0

私はこれに従いました: https://blogs.msdn.Microsoft.com/tfssetup/2017/04/18/tfs-2017-update-1-nuget-restore-task-always-fails-trying-to- find-packages-even-though-they-exist-on-the-feed /

3.3を試したところ、このエラーが発生しました。

NuGetパッケージの復元Microsoft.AspNet.WebPages.3.2.3。警告:パッケージ 'Antlr'のバージョン '3.5.0.2'が見つかりません。

最新のNuGet 4.3.0.4406をダウンロードし、カスタムパスをNuGetに設定しましたが、同様に失敗しました。

驚いたことに、3.5に切り替えたときに機能しました。

enter image description here

本当に行き詰まっている場合は、コマンドラインプロンプトでコマンドを実行すると動作します。

C:\Program Files (x86)\NuGet\nuget.exe restore -NonInteractive E:\agentXYZPool\_work\1\s\xyz.sln
0
Jeremy Thompson

[〜#〜] this [〜#〜] MSからのこの執筆時点での現在のドキュメントによると、適切なURLは次のとおりです。 https://api.nuget.org/v3/ index.json

それで、私はそれがURLとは何の関係もないと思ったので、私は問題を修正しようとしました。私は2つのことをしましたが、どちらが問題を解決したのかわかりませんが、誰かが助けになる場合に備えて両方をここに投稿します。

  • TFS2018内およびNugetのインストールのビルドステップ内で、バージョン4.9.3を指定しました(ビルド中にこのバージョンを使用していたことをVSの詳細ログで確認したため、4.9.3を選択した理由)。最新バージョンをダウンロードしてください。

  • 2番目にやったことは、プロジェクトからNuget.Configファイルを削除したことです。このファイルは、テストしていたものから残ったものです。その後、TFSへの変更を再コミットしました

上記の両方の手順を実行した後、残りのビルドが機能し始めました。

0
Helzgate