アウト ビルド サーバー (TeamCity) のソリューションに nuget パッケージをインストールして更新するビルド ステップがあります。最近、これにより更新が正しく行われなくなりました。これを調査したところ、ナゲットの更新コマンドがソリューション内のすべてのプロジェクトを更新していないことが問題のようであることがわかりました。これをローカル マシンに複製できます。
このコマンドを実行すると:
.nuget\NuGet.exe update Our.Company.sln -Source http:/ourTcServer:8888/guestAuth/app/nuget/v1/FeedService.svc -RepositoryPath packages -verbosity detailed
更新予定の 10 個のプロジェクトのリストを取得します
Found 10 projects with a packages.config file. (
Company.Project1.csproj,
Company.Project2.csproj,
Company.Project3.csproj,
Company.Project4.csproj,
Company.Project4.SubProject1.csproj,
Company.Project4.SubProject2.csproj,
Company.Project1.SubProject1.csproj,
Company.Project1.SubProject2.csproj,
Company.Project2.SubProject1.csproj,
Company.Project2.SubProject1.FurtherSubProject1.csproj)
ただし、ソリューションには 13 のプロジェクトが含まれており、これらすべてにpackages.config
ファイルが含まれており、私が知る限り、他のプロジェクトと何ら変わりはありません。プロジェクトは単一のプロジェクトであり、そのサブプロジェクトとプロジェクトのディレクトリ構造はプロジェクト名と一致します (したがって、project1.subproject1 は subproject1 が project1 内のフォルダーにあることを意味します)。問題のあるプロジェクトはすべて、次のような特定の名前を持つプロジェクトにあります。
Company.Something.SomethingElse.Routing
Company.Something.SomethingElse.Routing.Tests
Company.Something.SomethingElse.Routing.Tests.Specifications
名前のルーティング部分が問題を引き起こす場合 (Resources
パッケージ名の末尾に単語を使用する前に問題がありました)
すべて同じビルド構成と手順を使用する 50 以上のソリューションがあり、それらすべてで正常に機能します。このソリューションは、正しく更新されていない唯一のソリューションのようです。
なぜこれが当てはまるのか誰にもわかりますか?または、ソリューション内のパッケージを検索するコードが何をしているかを知っている人はいますか? または、この問題を追跡するのに役立つものはありますか?