如何使用WiX手动注册64位DLL

时间:2017-03-07 22:50:48

标签: c++ wix 64-bit

我使用WiX安装64位应用程序。我已经弄明白了如何制作一个64 bit installer,但是我无法弄清楚如何注册我安装的DLL,所以我没有得到

"Program can't start because XXXX.dll is missing from your computer.  
 Try reinstalling the program to fix this problem"

错误。

我已尝试使用heat.exe创建必要的RegistryValue标记,但它与64位DLL不兼容。我用32位编译了一些DLL(并非所有的都可以在32位中使用),但我仍然无法使heat.exe工作。看看this WiX help article我似乎应该能够手动撰写RegistryValue代码,但我对它们应该包含的内容感到困惑。我一直在查看示例here,它比WiX文章中的要复杂得多。

在操作系统中注册DLL需要哪些RegistryValue标签,以便在PATH上找到它?

编辑:附加背景。

我正在尝试安装SDK和一些示例源代码。我将SDK(DLL,.libs和标题)放在\ Program Files中的文件夹中,我将示例源代码放在桌面上的文件夹中。我有%LIBPATH%上的lib目录,%INCLUDE%上的包含目录和%PATH%上的bin(DLL)目录。

然后我在桌面上有一个文件夹,其中包含一个VS解决方案,用于示例代码。在解决方案中,我在VS项目的Additional Library Directories字段中的Additional Include Directories和%INCLUDE%中指定了%LIBPATH%。这很好,解决方案将构建。但是当我尝试运行它时,我的计算机中缺少了#34; DLL#34;错误。我想弄清楚如何找到SDK DLL(无论是否在%PATH%上),以便用户可以简单地构建和运行演示代码而无需复制DLL ,以及他们构建的任何其他应用程序都是如此。

编辑2:我投票结束了这个问题。看起来使用WiX注册DLL与我的实际问题无关。

1 个答案:

答案 0 :(得分:1)

你在这里混淆了两件事。 “注册”是COM活动,但“XXXX.dll缺失”表示普通的非COM DLL。

您对%PATH%的引用也提示非COM DLL,但不需要%PATH%。而是将DLL与可执行文件一起安装。

理论上,还有应用程序清单,但微软已经完全搞乱了。如果您正在编写任何类型的普通应用程序,我会完全避免它们。

相关问题