函数是否LoadLibraryEx
使用并排清单?我有带有嵌入式 SxS 清单的 bar.dll,并且该清单描述了此 bar.dll 的版本,其他 dll 文件 foo.dll 具有将 bar.dll 列为依赖项的清单,并具有指定的版本。但是,当我尝试从 foo.dll 加载 bar.dll 时,LoadLibraryEx("bar.dll", NULL, 0)
我看到(启用了带有 gflags 的 sls)它忽略了这些清单,并加载它在搜索路径中看到的 bar.dll 的第一个版本,如果我定义ISOLATION_AWARE_ENABLED
并使用LoadLibrary
它发现正确的版本,但这ISOLATION_AWARE_ENABLED
不会影响 的行为LoadLibraryEx
,我需要加载正确的版本,LoadLibraryEx
因为LoadLibraryEx
隐式用于延迟加载 dll。应该像这样LoadLibraryEx
工作,还是我的项目配置有问题?
富dll
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="foo" version="0.1.2.3" type="win32"/>
<dependency>
<dependentAssembly>
<assemblyIdentity name="bar" version="0.1.2.3" type="win32" />
</dependentAssembly>
</dependency>
<file name="foo.dll">
</file>
</assembly>
bar.dll
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="bar" version="0.1.2.3" type="win32"/>
<file name="bar.dll">
</file>
</assembly>