2

たとえば、C: から実行する実行可能ファイルがあります。実行可能ファイルは、別のディレクトリ (C:\MyDLLs など) からいくつかの DLL を参照します。問題は、これらの参照された DLL が、別のディレクトリに格納されている他の DLL に再び依存することです。これらの不足している DLL を探す場所を Visual Studio に指示できますか? どうもありがとう!

4

2 に答える 2

3

構成でこれらの値を設定することにより、アプリのアセンブリ読み込み規則の外部でアセンブリを参照できます。この Microsoft KB 記事の構成ファイルの例を次に示します。

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="MyAssembly2"  culture="neutral" publicKeyToken="307041694a995978"/>
            <codeBase version="1.0.1524.23149" href="FILE://C:/Myassemblies/MyAssembly2.dll"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

要素を使用して、<codeBase>どこを見るかをアプリに指示します。

これを機能させるには、アセンブリに厳密な名前を付ける必要があります ( sn.exeツールを使用)。

また、ランタイムがアセンブリ参照をどのように解決するかを理解することも役立ちます。使用するためにすべてのフープを通過する代わりに、それを利用できるかもしれません<codeBase>

于 2010-08-24T20:16:54.440 に答える
1

以前にこの問題が発生したことがあり、必要なすべての DLL を実行可能ファイルのディレクトリにコピーするポスト ビルド スクリプトを作成しました。

次のようなもの: copy "$(ProjectDir)Resources\DLLs\yourDLL.dll" "$(TargetDir)yourDLL.dll"

于 2010-08-24T20:11:46.887 に答える