DLLを参照するEXEがあります。この例では、TestDLL.dllと呼びます。
EXEはC#で記述され、DLLはVB.Netで記述されています。
DLLのデモアセンブリバージョンを作成しました。たとえば、TestDLL.dllバージョン1.0.0.0です。
デモバージョンDLL(1.0.0.0)を参照してEXEをコンパイルしたい。その後-EXEで同じDLLを使用したいのですが、GACに配置するDLLは、どのバージョンでも使用できます。
そのために、DLLの参照の「ローカルコピー」プロパティをFALSEに設定しました。
私の目標は、たとえば、コンパイル後、アセンブリバージョン2.1.6.0でGAC TestDLL.dllを配置し、EXEがアセンブリリダイレクトバインディングを使用してそれを検出することです。そのために、私は設定ファイルを使用しました。このリンクを使用して作成しました:http:
//msdn.microsoft.com/en-us/library/7wd6ex19 (v = vs.71).aspx
したがって、私の設定ファイルは次のようになります。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<!-- Assembly versions can be redirected in application, publisher policy, or machine configuration files. -->
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.1.6.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
問題は、それをすべて実行した後、EXEを実行し、dllにアクセスすると、有名なエラーが発生すること です。System.IO.FileNotFoundException:ファイルまたはアセンブリを読み込めませんでした'TestDLL、Version = 1.0.0.0、Culture = neutral、 PublicKeyToken =9d8162944bd6fdc7'またはその依存関係の1つ。システムは、指定されたファイルを見つけることができません。ファイル名:'TestDLL、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = 9d8162944bd6fdc7'
つまり、EXEは、参照した元のDLLを見つけることができません。GACを「参照」するか、リフレクションを使用できることは知っていますが、このEXEはこの方法でのみ機能することになっているため、使用したくありません。
誰かが問題が何であり、それを修正する方法を知っていますか?
ありがとう