プライベートエージェントで実行されている.NETソリューションのビルドがあります。ソリューションには、.NET Core 2.1プロジェクトと.NET Standard 2.0プロジェクトの両方が含まれています。
インストールされているいくつかのnugetパッケージは次のとおりです。
Nugetパッケージを復元しようとすると、次のエラーでビルドが失敗します。
"F:\ Agent01\w\141\s\xxxxxxx.sln"(ターゲットの復元)(1)->(ターゲットの復元)-> C:\ Program Files\dotnet\sdk\2.1.500\NuGet.targets(114 、5):エラー:ソースのサービスインデックスをロードできません https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json C:\ Program Files\dotnet\sdk\2.1.500\NuGet.targets(114,5):エラー:応答ステータスコードは成功を示しません:401(無許可)。
ビルドタスクは次のとおりです。
これは、ビルドエージェントの%appdata%\NuGet\nuget.config
ファイルのコンテンツです。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
</packageSources>
<packageSourceCredentials>
<MyFeed>
<add key="Username" value="LocalBuildAgent" />
<add key="ClearTextPassword" value="xxxxxxxxxxx" />
</MyFeed>
</packageSourceCredentials>
</configuration>
私はすでにいくつかの同様の質問をチェックしましたが、これまでのところ私の問題の解決策を見つけることができませんでした。
いくつかのメモ:
私は何が欠けていますか?この問題を修正するには? dotnet restore
コマンドを使用してパッケージを復元できないのはなぜですか?
oldNuget Restore次のようなタスク:
.NET Coreタスクv1を使用してパッケージを復元できます。
または、引数--force
を指定してv2タスクを使用します:
私は解決策を見つけました-次のパッケージソースを%appdata%\NuGet\nuget.config
に追加します:
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
完全なファイルは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
</packageSources>
<packageSourceCredentials>
<MyFeed>
<add key="Username" value="LocalBuildAgent" />
<add key="ClearTextPassword" value="xxxxxxxxxxx" />
</MyFeed>
</packageSourceCredentials>
</configuration>
また、 。NET SDK 500のリグレッション:NuGet.config#7524にプライベートフィードがある場合、 'dotnet tool install'が401(Unauthorized)で失敗します 。この問題は、.NET SDK 2.1.500が原因のようです。
別の回避策は、そのバージョンをアンインストールすることです。
この問題は、.NET Core SDK 2.1.400には存在しません。 .NET Core SDK 2.1.500がアンインストールされると消え、SDK 2.1.500が再度インストールされると再び表示されます。
最新の「.NET Core sdk 2.1.504を使用」タスクを使用するとうまくいきました。 .NET Core sdk 2.1.5xxにはバグのあるバージョンがあるようです。