9

ソースを TeamCity の NuGet サーバーに設定すると、NuGet インストール ビルド ステップで次のエラーが表示されます。

Step 1/4: NuGet install (NuGet Installer) (3s)

[15:11:19][Step 1/4] scan: Searching for nuget.config files

[15:11:19][Step 1/4] install: Installing NuGet packages for packages.config (3s)

[15:11:19][install] NuGet command: C:\TeamCity\buildAgent\tools\NuGet.CommandLine.2.2.0.nupkg\tools\NuGet.exe install C:\TeamCity\buildAgent\work\a4b9de5be22a981\packages.config -OutputDirectory C:\TeamCity\buildAgent\work\a4b9de5be22a981\packages -Source http://localhost:9090/guestAuth/app/nuget/v1/FeedService.svc

[15:11:19][install] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script96367186180319830.cmd

[15:11:19][install] in directory: C:\TeamCity\buildAgent\work\a4b9de5be22a981

[15:11:22][install] The remote server returned an error: (404) Not Found.

[15:11:22][install] Process exited with code 1

[15:11:22][Step 1/4] Step NuGet install (NuGet Installer) failed

ソース フィールドを空白のままにすると、既定のフィード (NuGet コミュニティ フィード) から NuGet パッケージが検出されますが、ローカルでビルドおよびパッケージ化され、TC の NuGet フィード内でホストされているパッケージは検出されません。

NuGet インストーラーのビルド ステップ内で、既定のフィードと内部 TC の NuGet フィードの両方をどのように使用しますか?

4

3 に答える 3

17

ファイル経由でソリューション専用のカスタム フィードを指定できますnuget.config

重要なポイントは、次のpackageSourceCredentialsような資格情報セクションを提供することです。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" />
  </packageSources>
  <activePackageSource>
    <add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" />
  </activePackageSource>
  <packageSourceCredentials>
    <Local>
      <Username>login</Username>
      <Password>pa$$w0rd</Password>
    </Local>
  </packageSourceCredentials>
</configuration>

このファイルは、リポジトリ内configのファイルの隣にある必要があります。sln

于 2013-01-02T17:51:51.450 に答える
3

これはTeamCityの既知の問題のようです。回避策は、コマンドラインクライアントを介してパッケージソースを追加してから、それらのソースを認証クレデンシャルで更新することをお勧めします。

nuget sources add -name [name] -source [feedUrl]
nuget sources update -Name [name] -User [username] -pass [password]

Nugetが将来のリクエストのためにそれらのクレデンシャルをキャッシュすることは私の理解です。そのキャッシュがクリアされる頻度はわかりません。nget sources updateキャッシュの一貫性を確保するために、ビルドを開始する直前にそれを実行する必要がある場合があります。

于 2013-01-02T18:02:10.087 に答える
3

TeamCityプラグインに認証済みフィードのサポートを実装しました。問題へのコメントに従ってくださいhttp://youtrack.jetbrains.com/issue/TW-20764

于 2013-01-11T08:29:34.400 に答える