我有以下情况:
- 用 C# 开发的可执行文件链接一个托管 DLL,该 DLL 调用另一个第三方 DLL(并排加载)。exe 不直接使用第三方 DLL 中的任何对象。
组件之间的关系是:
EXE -->> myDLL >> 3rdPartyDLL
我想只在 myDLL.manifest(用 mt.exe 编译)中设置第 3 方 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。仅当我还将对 3rdPartyDLL 的依赖项插入到 EXE.manifest 中时,它才有效。
但在这种情况下,每次第三方DLL 更改版本(也用于小修复)时,我都需要重新编译 EXE 以将清单嵌入其中。
我试图深入寻找一些具有这种情况的实际示例,但我没有找到任何东西。有没有关于它的参考或实际例子?