AzureDevOpsを使用して.NETCoreソリューションを構築しようとすると、次のエラーが発生します。
error NU1102: Unable to find package NuGet Frameworks with version (>= 4.9.3)
error NU1102: - Found 33 version(s) in http://nuget.bentley.com/nuget/Default [ Nearest version: 4.7.0-preview1-4986 ]
NuGetの復元がdotnet.exeCLIによって実行されているときに、Cakeスクリプトでエラーが発生します。
Executing: "d:/vsts/a/_tool/dncs/2.2.100/x64/dotnet.exe" restore "./src/StorageRegistryPortal.sln" --source "http://nuget.bentley.com/nuget/Default"
上記のNU1102エラーをスローする前に、ソリューションファイルからNuGetパッケージを復元しようとします。
Restoring packages for d:\vsts\a\2921\s\src\StorageRegistryPortal\StorageRegistryPortal.csproj...
私のソリューションでは、この「NuGet.Frameworks」パッケージを参照しているものはありません。したがって、残りのNuGetパッケージを復元する前に、このnugetパッケージに依存するのは「dotnet.exe」CLI自体であるのではないかと思います。また、これはAzureDevopsでのみ発生します。ローカルPCでビルド/ケーキスクリプトを実行すると、すべてのnugetパッケージを問題なく正常に復元できます。
ビルドパイプラインに「UseNuget4.9.3」タスクを追加しようとしましたが、同じエラーが発生します。
注:その「UseNuget 4.9.3」タスクを削除すると、エラーは(> = 4.7.0)に変わります。そのため、現在のバージョンのnuget.exeと一致するNuget.Frameworkを探しているようですが、見つかりません。
私はついにこの問題を解決することができました。 nuget.orgの人々からの重大な変更があり、内部nugetサーバーがNuGet.Frameworksの4.7バージョンと4.9.3バージョンを提供できなくなったことが判明しました。これは、dotnet.exeがnugetパッケージを復元するために必要な必須のnugetライブラリです。 .netコアプロジェクトの場合、そのフレームワークはバージョン4.7以降である必要があります。とにかく、解決策は、nuget.orgからの変更を考慮して、内部nugetサーバーを調整する必要があるというものでした。