如何在WiX安装程序脚本中实际使用LinkerBindInputPaths PropertyGroup

时间:2013-08-05 17:42:05

标签: wix wix3.7

我有一个WiX安装程序脚本,它引用Visual Studio Solution文件夹根目录下的文件夹中的文件。在我的.wixproj中,我尝试设置Properties | Tool Setting | Linker

-b $(SolutionDir)\WixSource

并得到一个错误,因为在$ SolutionDir变量的中间是一个带空格的文件夹。所以,我试过

-b "$(SolutionDir)\WixSource"

并且抱怨在名称周围使用引号并且我应该在文件夹的末尾放置一个双反斜杠,其中包含空格。 - 不能这样做,因为它位于$(SolutionDir)宏内。

因此,根据有关SO的建议,我试图使用LinkerBindInputPaths PropertyGroup,但文档严重缺乏此属性的实际使用情况。

我正在运行WiX 3.7,并且不允许以下内容......

谷歌搜索时,我被告知需要进入<Package>元素,如:

<Package ...>
    <PropertyGroup>
        <LinkerBindInputPaths ???/>
    </PropertyGroup>
</Package>

WiX文档@ http://wix.sourceforge.net/manual-wix3/msbuild_task_reference_light.htm

指定链接器用于查找所有文件的绑定器路径。这相当于light.exe中的-b开关。 命名的BindPaths是通过在所提供的路径上添加2个或更多字符的存储桶名称后跟等号(“=”)来创建的。

如果没有通过Google搜索找到的示例,我无法解读“2个或更多字符的存储桶名称”是什么,或者是否有任何规则。

我希望能够指定像$(var.SolutionDir)\WixSource这样的东西,但需要一些帮助来确定如何解决这个问题......

1 个答案:

答案 0 :(得分:5)

LinkerBindInputPaths是一个项目组,而不是一个属性组。它位于.wixproj MSBuild项目文件中。例如:

<ItemGroup>
  <BindInputPaths Include="$(MSBuildProjectDirectory)" />
  <BindInputPaths Include="$(WIX_ROOT)src" />
  <BindInputPaths Include="$(WIX_ROOT)bin" />
  <BindInputPaths Include="$(WIX_ROOT)" />
</ItemGroup>