次の方法で共有


TFS 2005 と TFS 2008 での TFS プラグインの互換性

ここで何度も書いていますが、私たちは TFS 2005 と TFS 2008 の間で高いレベルの互換性が保たれるように努力しています。その成果の 1 つとして、それぞれのクライアントはどちらのサーバーでも使用できます。ただし、例外がないわけではありません。たとえば、TFS 2005 オブジェクト モデルを使用してコンパイルしたコードは常に TFS 2005 オブジェクト モデルの上で動作し、TFS 2008 オブジェクト モデルでは動作しません。それでも、TFS 2005 オブジェクト モデルは TFS 2008 サーバーに対しても正常に機能するため、多くの場合はこれは問題になりません。

ただし、これが問題になる場合もあります。最も大きな問題が発生するのは、TFS 2005 オブジェクト モデルでコンパイルされたコードを、TFS 2008 オブジェクト モデルでコンパイルされたコードと同じプロセスに読み込む場合です。このとき、両方のバージョンのオブジェクト モデルがインストールされていれば、両方のバージョンがプロセスに読み込まれます (一方しかインストールされていない場合は、読み込みに失敗します)。2 つのコード間で何もやり取りが行われなければ、多くの場合は問題なく動作します。しかし、TFS のオブジェクトやインターフェイスを受け渡す必要がある場合、そのコードは動作しません。

具体的な例として、TFS 2005 オブジェクト モデルでコンパイルされたチェックイン ポリシーを、2008 のチーム エクスプローラ (もちろん TFS 2008 オブジェクト モデルでコンパイルされています) に読み込んだ場合があります。もっと具体的な例を挙げると、TFS Power Tools の最新リリースには非常に便利なチェックイン ポリシーが含まれていますが、現時点では上記の理由から TFS 2008 では機能しません。これについて、私の元には既にいくつかの不満のご意見が寄せられています。

この件に対する回答の 1 つは、TFS 2008 オブジェクト モデルに対応する Power Tools の次期リリースを待つことです (私は今までこのようにお伝えしてきました)。でも、Ed Hintz のおかけで別の方法を紹介できるようになりました。実際の TFS API には、大幅な変更が加えられているわけではありません。コードが動作しなくなる原因は、ひとえに .NET Framework のバージョン バインディングにあります。.NET Framework には、バインディング要求を別のバージョンへ "リダイレクト" させる方法があります。上記の問題に対処するには、TFS 2008 オブジェクト モデルではなく TFS 2005 オブジェクト モデルを読み込むように要求をリダイレクトします。そうすることで、TFS Power Tools のチェックイン ポリシー (および他の類似のアドオン) が 2008 のチーム エクスプローラに読み込まれて正常に動作するようになり、Power Tools の次期リリースまで待つ必要はありません。

バインディング要求をリダイレクトする手順については、Ed Hintz のブログ記事を参照してください。チーム エクスプローラの既存の拡張機能を今すぐ活用できますよ。

Brian

投稿 : 2007 年 10 月 19 日 (金) 4:58 PM bharry

分類 : Visual Studio Team System, TFS

Brian Harry さんのブログ - https://blogs.msdn.com/bharry/archive/2007/10/19/tfs-plugin-compatibility-between-tfs-2005-and-tfs-2008.aspx より。

この翻訳については、Brian Harry さんのご了承を得ています。