次のシナリオで TFS と TFS CI に問題があります (本質的に同じ問題ですが、単純化しました)。
- トランクがあります (1 つの VS ソリューションに csprojs のセット)
- (トランクから取得した) ブランチがあります。このブランチで、"MyRepository.cs" などの新しいファイルを作成しました。
- ブランチをトランクにマージし直しました -- すべて問題ないようです... (保留中の変更では、ファイルは「マージ、ブランチ」としてマークされます)
- マージされた保留中の変更をトランクにチェックインします
- これにより、TFS でのゲート チェックインが開始されます
- これは失敗し、TFS CI から次のメッセージが表示されます。
「CSC: ソース ファイル 'Repositories\MyRepository.cs' が見つかりませんでした」
「TF270015: 'MSBuild.exe' が予期しない終了コードを返しました。予想される '0'; 実際の '1'.」
MyRepository.cs ファイルをチェックインしたとき、MyRepository.cs が含まれているアセンブリの csproj ファイルを明らかにチェックインしました。この csproj には、新しい cs ファイルを含める行があります。
<Compile Include="Repositories\MyRepository.cs" />
したがって、問題は、.csファイルをチェックインしていてcsprojファイルに含まれているにもかかわらず、TFSが.csファイルが存在しないと不平を言っている理由がわからないことです。
ブランチからトランクへのマージを行ったという事実が問題を引き起こしているのではないかと疑っていますが、その理由はわかりません。私はTFS CIに比較的慣れていないので、今どこを見ればよいかを教えていただけると大変助かります。
更新- TFS CI が使用するソース ファイルの作業ディレクトリが MyRepository.cs ファイルをプルしておらず、.csproj ファイルの最新 (チェックイン セット) バージョンをプルしていないことを発見しました (古いトランクのように見えます)。まだバージョン)。エラー メッセージ (上記) は、.csproj を取得しているが、MyRepository.cs ファイルを取得していないことをほのめかしているため、これは非常に奇妙に思えます。