Wix 3.5预处理器扩展-未定义的预处理器函数

Wix 3.5预处理器扩展-未定义的预处理器函数,wix,preprocessor,wix3.5,Wix,Preprocessor,Wix3.5,我只是在VisualStudio2010和Windows7上使用WIX3.5。我无法运行自定义的预处理器扩展。我在.NET3.5中创建了扩展项目。并将编译后的dll复制到Wix 3.5程序文件中,并在扩展项目属性中设置引用路径,但Wix项目构建仍然失败,扩展上出现“未定义的预处理器函数” 例如: 扩展项目:WixFileVersionExtension(来自wixfileversionext.codeplex.com) Wix程序文件:“C:\program files\Windows Inst

我只是在VisualStudio2010和Windows7上使用WIX3.5。我无法运行自定义的
预处理器扩展。我在.NET3.5中创建了扩展项目。并将编译后的dll复制到Wix 3.5程序文件中,并在扩展项目属性中设置引用路径,但Wix项目构建仍然失败,扩展上出现“未定义的预处理器函数

例如: 扩展项目:WixFileVersionExtension(来自wixfileversionext.codeplex.com) Wix程序文件:“C:\program files\Windows Installer XML v3.5\bin”

我错过什么了吗?谷歌不能回答我


更新: 这是一个错误,已在此处报告


更新: 请勿在VS project属性中使用引用路径,如此处所述,引用路径部分允许您定义定位引用时要使用的路径(WiX扩展和WiX库)

或者将扩展dll复制到Wix文件夹中,如此处所述,与所有其他Wix扩展dll一起放置在Wix EXE旁边

解决方案是:添加引用浏览扩展名dll文件,而不是通过项目添加引用,即使在一个解决方案中有这些项目。如果要遵循配置,DebugRelease,请卸载Wix项目,编辑.wixproj文件并将
。\WixExtension\bin\Debug\WixExtension.dll
更改为
。\WixExtension\bin\$(配置)\WixExtension.dll
,因此它将变成这样:

  <ItemGroup>
    <WixExtension Include="WixExtension">
      <HintPath>..\WixExtension\bin\$(Configuration)\WixExtension.dll</HintPath>
      <Name>WixExtension</Name>
    </WixExtension>
  </ItemGroup>

..\WixExtension\bin\$(配置)\WixExtension.dll
WixExtension

注意:Wix Visual Studio项目仅在您通过dll文件(浏览)添加引用时假定它是Wix扩展并且仅假设它是一个应用程序,当您通过项目添加引用时,它将包含在安装程序中您需要添加对实际扩展程序集(.dll)的引用,以便Candle.exe加载它。命令行等价物是-ext.

我明白了……首先,我尝试添加引用,但不起作用。然后我意识到我需要将dll复制到wix文件夹中,但我删除了引用。让我明天尝试添加引用并将dll放入wix文件夹。我使用的是Visual Studio Wix项目,而不是命令行中的MSBuild,它是否与Candle.exe相关?Candle.exe是Wix编译器。扩展不必位于WiX二进制文件目录中;您可以在Visual Studio的.wixproj中添加引用。是的,上次我将VS项目和Wix文件夹中的引用路径设置为双重检查,但不起作用。现在我尝试添加引用和设置路径(+复制到wix文件夹),但也不起作用。它仍然无法识别自定义前缀。-------------等等,我看到没有-ext,我在VS中设置的引用路径没有包含在构建输出中。在WIX3.5的Wix Voctive发行版中似乎有一个bug。我想在SourceForge中发送错误报告,但他们已移动到CodePlex。是的,添加引用,但使用
浏览
直接指定dll文件。