应用程序无法从WinSxS加载Win32程序集

时间:2014-08-14 06:11:06

标签: c++ winapi dll exe winsxs

我有一个Win32程序集(我的.NET代码上的C ++ / CLI包装器),它应该安装在WinSxS中,并且应该由使用API​​的客户端应用程序从该位置引用。我研究了一下如何在WinSxS中安装Win32程序集,并最终能够通过使用mainfest和目录文件来完成它。

现在的问题是,我无法使用我为测试目的而创建的控制台应用程序中的程序集。我在exe清单中添加了一个<dependency>部分来引用程序集(如下所示),但它不起作用。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity name="MyAssembly" processorArchitecture="x86" publicKeyToken="10f783dc6145a3s0" type="win32" version="1.0.0.58">
      </assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>

exe失败并显示错误消息:程序无法启动,因为您的计算机缺少MyAssembly.dll。请尝试重新安装该程序以解决此问题。

在使用Procmon检查时,似乎exe只搜索exe位置中的dll以及Path环境变量中指定的所有位置。当我将dll的WinSxS位置放在Path变量中并执行应用程序时,它正常工作。我想知道在生成导致问题的exe清单时是否还有其他项目设置缺失。想法?

0 个答案:

没有答案