TFS ビルド サーバーの 1 つで奇妙なことが起こりました
これはシナリオです:
1 つのコントローラーと 2 つのビルド サーバーがあり、それぞれに 2 つのエージェントがあります。
ビルド サーバー 01 で強制的に実行するビルドをキューに入れると、ビルドは成功します。
ビルド サーバー 02 で同じビルドをキューに入れると、ビルドが失敗します
エラーは次のとおりです。
不明な型 '{clr-namespace:MyNamespace;assembly=MyAssembly}MyClassName' を作成できません。
これはカスタム MSBuild アセンブリであり、.Net Framework 4.5 を対象としています。これは TFS コントロール バージョンでチェックインされ、コントローラーは TFS の正しいパスを指しています。
DLL が 6 か月間更新されていない
なぜこれが起こっているのかわかりません。さらに困惑させられたのは、このビルド サーバーが昨日正常に動作していたという事実です。チームの誰もがサーバーに対して何らかの操作を行っており、アクセスすることさえできていません。
ビルドワークフローを実行する前にエラーが発生していると思います。これは、何らかの理由でビルドテンプレートをロードできないことを意味します。これは、タイプを解決できないため意味があります
私がこれまでに行ったこと:
昨日の朝、ビルド サーバー 02 はスムーズに動作していました
両方のビルドサーバーで同じビルドを使用していると確信しています。これにより、ビルドテンプレートに問題はないと思います
ビルド サーバー 02 でビルドが失敗し、同じエラーが発生したと確信しています。
私がテストしたすべてのビルドは問題なく 01 で実行されました
両方のビルド サーバーが有効であり、ネットワーク上で利用可能であり、アクセス可能です。
両方のビルド サーバーは、ビルドの実行に使用されるドメイン アカウントで構成されています。
両方のサーバーが作業フォルダーにアクセスでき、TFS ユーザーはそれらのサーバーにアクセスできます。
ドメイン アカウントは、両方のビルド サーバーの Administrators グループに属しています。
再確認したところ、これらのアセンブリは両方のビルド サーバーの GAC にありません (GAC に配置したくありません。また、ビルド サーバー 01 は、DLL を GAC に配置しなくても正しく動作しています)。
Windows Update の履歴を比較したところ、両方のサーバーが 3 か月前のように同じ日付に更新されていました
これは私が見つけたものです
ビルド サーバー 01で、ビルドに使用されたカスタム ビルド DLL が正しい場所にあることがわかりました。
C:\Users\MyTFSServiceAccount\AppData\Local\Temp\BuildAgent\24\Assemblies
C:\Users\MyTFSServiceAccount\AppData\Local\Temp\BuildAgent\25\Assemblies
以前のパスには、必要なすべてのアセンブリがありました
私のビルド サーバー 02では、フォルダーには 1 つの DLL しか含まれていませんでした。何らかの理由で DLL がコピーされていません。フォルダーのアクセス許可を確認したところ、すべて問題ないように見えました。tfsservice アカウントにはフォルダーへのアクセス許可があり、ボックスの管理者です。
これらは私のビルドサーバー02のパスです
C:\Users\MyTFSServiceAccount\AppData\Local\Temp\BuildAgent\22\Assemblies
C:\Users\MyTFSServiceAccount\AppData\Local\Temp\BuildAgent\23\Assemblies
ええと、DLL を手動でコピーすると一時的に問題が解決すると思いました....私は間違っていました =( DLL をコピーしましたが、同じエラーが表示されます
皆さん、私を正しい方向に向けていただけますか?