我只是将 Wix 3.5 与 Visual Studio 2010、Windows 7 一起使用。我无法进行自定义Preprocessor Extension
运行。我在 .NET 3.5 中创建了扩展项目。并将编译后的 dll 复制到Wix 3.5 程序文件中,并在扩展项目属性中设置参考路径,但Wix 项目构建仍然失败,并在我的扩展上出现“未定义的预处理器函数”。
示例:扩展项目:WixFileVersionExtension(来自 wixfileversionext.codeplex.com) Wix 程序文件:“C:\Program Files\Windows Installer XML v3.5\bin”
我错过了什么吗?谷歌无法回答我。
更新: 这是一个错误,已在此处报告http://sourceforge.net/tracker/?func=detail&atid=642714&aid=3212304&group_id=105970
更新: 不要在 VS 项目属性中使用参考路径,如此处所述http://wix.sourceforge.net/manual-wix3/votive_property_pages.htm 参考路径部分允许您定义在定位参考时要使用的路径(WiX扩展和 WiX 库)
或将扩展 dll 复制到 Wix 文件夹中,如此处所述http://wix.sourceforge.net/manual-wix3/extension_development_intro.htm 与所有其他 WiX 扩展 DLL 一起放置在 WiX EXE 旁边
解决方案是:添加引用并浏览扩展dll 文件而不是按项目添加引用,即使您在一个解决方案中拥有这些项目。如果你想按照配置、调试或发布,卸载 Wix 项目,编辑 .wixproj 文件并将其更改为..\WixExtension\bin\Debug\WixExtension.dll
,..\WixExtension\bin\$(Configuration)\WixExtension.dll
它会变成这样:
<ItemGroup>
<WixExtension Include="WixExtension">
<HintPath>..\WixExtension\bin\$(Configuration)\WixExtension.dll</HintPath>
<Name>WixExtension</Name>
</WixExtension>
</ItemGroup>
注意: Wix Visual Studio 项目只会在您通过dll文件添加引用(浏览)时假设它是 Wix 扩展,并且也只会假设它是在您通过Project添加引用时包含在安装程序中的应用程序。