并排在DLL中



我有以下情况:

  • 在C#链接A托管DLL中开发的可执行文件,该DLL调用另一个第三方DLL(并排加载)。EXE不直接使用第三方DLL中的任何对象。

组件之间的关系是:

exe->> mydll>> 3rdpartydll

我想仅在mydll.manifest(用mt.exe编译)中设置第三方dll的参考:mydll.manifest

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="myDLL"/>
  <dependency>
   <dependentAssembly>
      <assemblyIdentity type="win32" name="ThirdPartyDLL" version="1.0.0.0"/>
   </dependentAssembly>
  </dependency>
<file name ="myDLL.dll"/>
</asmv1:assembly>

但是,当我启动exe时,它会引起例外,因为它找不到3partydll。它仅在我也插入exe.manifest对3rdpartydll的依赖。

时起作用。

但是,在这种情况下,每次第三方都会更改版本(也适用于小修复),我需要重新编译EXE将清单嵌入其中。

我试图在这种情况下深入寻找一些实用的例子,但我什么也没找到。有什么参考或实践示例吗?

系统上的3rdpartydll在哪里?是在与EXE的同一文件夹中吗?而不是在exe中添加3rdpartydll的依赖性。manifest确保3rdpartydll与Exe的文件夹中。

相关内容

  • 没有找到相关文章

最新更新