グローバル アセンブリ キャッシュに同じ名前の 2 つのアセンブリがありますが、バージョン番号は異なります。どのバージョンを参照するかをプログラムに伝えるにはどうすればよいですか?
記録として、これは ASP.Net Web サイトの VB.Net ページです。
バージョン番号を使用して、アセンブリセクションの下の構成ファイルにアセンブリを追加します。
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="System.Data, Version=1.0.2411.0,
Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
</assemblies>
</compilation>
</system.web>
</configuration>
add 要素は、動的リソースのコンパイル中に使用するアセンブリ参照を追加します。ASP.NET は、各コード モジュールをコンパイルするときに、このアセンブリをリソースに自動的にリンクします。
バージョン番号が異なる限り (これは必須です)、web.config ファイルで適切なバージョンを指定できます。これは、GAC に複数のバージョンがあるため、Crystal Reports の適切なバージョンを参照するために、私のアプリの 1 つで物事をセットアップする方法です。
<system.web>
<compilation>
<assemblies>
<add assembly="CrystalDecisions.Web, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Enterprise.Framework, Version=11.5.3300.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
</assemblies>
</compilation>
</system.web>
構成ファイルに DLL への参照を追加するときは、バージョンと厳密な名前を指定します。
<add assembly="Foo.Bar, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
また
<add assembly="Foo.Bar, Version=2.5.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
アセンブリを GAC にインストールするには、厳密な名前を付ける必要があります。厳密な名前が重複することはありません。したがって、使用するアセンブリを指定するには、厳密な名前で参照します。