Wix 3.5预处理器扩展 - 未定义的预处理器功能

时间:2011-03-14 08:14:30

标签: wix preprocessor wix3.5

我只是在Visual Studio 2010,Windows 7中使用Wix 3.5。我无法进行自定义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 EXE旁边以及所有其他WiX扩展DLL

解决方案是:添加参考浏览扩展 dll文件 INSTEAD OF添加参考项目即使您在一个解决方案中拥有这些项目。如果您想要按照配置,调试发布,请卸载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扩展程序假设只要您通过项目 添加引用,它就会包含在安装程序中。

1 个答案:

答案 0 :(得分:2)

您需要添加对实际扩展程序集(.dll)的引用,以便Candle.exe加载它。命令行等效项是-ext。