1

私たちの Web アプリケーションは、TFS API を多用しています。TFS 2010 API dll を使用して開発およびコンパイルしました。また、SpecificVersion=False も設定します。

問題は、TFS 2010 ではなく TFS 2012 を持つサーバーに展開すると、次のエラーが発生することです。

ファイルまたはアセンブリを読み込めませんでした 'Microsoft.TeamFoundation.Client, Version=10.0.0.0,.....etc. システムは、指定されたファイルを見つけることができません。

これを軽減する方法はありますか?TFS 2012 は GAC にインストールされており、"SpecificVersion=False" という事実は、2010 (バージョン 10) ではなく 2012 (バージョン 11) の dll を使用するようにアプリに指示する必要があります。正しい??

助けていただければ幸いです...

4

1 に答える 1

2

アセンブリが厳密な名前で署名されている場合、特定のバージョンは機能しません。マイクロソフトはほぼ確実に、そのアセンブリに署名しました。

あなたのウェブサイトは、bindingRedirectすべてのバージョンを v10 から v11 にリダイレクトするために a を使用する必要があります。例えば:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.Client"
                              publicKeyToken="xxxxxxxxxxxxx"
                              culture="neutral" />
            <bindingRedirect oldVersion="10.0.0.0"
                             newVersion="11.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

publicKeyTokenを正しい値に更新してください。


または、TFS SDK の v11 バージョンに対して Web サイトを再コンパイルしてバインディング リダイレクトを回避することもできますが、TFS SDK の v11 でのみ機能します。

于 2012-08-03T18:29:59.173 に答える