在使用MSBuild构建时,如何覆盖InstallShield路径变量?

时间:2009-09-23 12:44:55

标签: msbuild installshield

我正在使用InstallShield MSBuild目标构建InstallShield项目。我一直在努力覆盖路径变量。我所做的一切似乎都没有被InstallShield构建所接受。 help page不是很有帮助。

1 个答案:

答案 0 :(得分:6)

文档中没有解决一些问题。在.isproj文件中,将路径覆盖置于ItemGroup中,如此。该项必须命名为“InstallShieldPathVariableOverrides”并包含一个“PathVariable”元素。:

<!-- Override Path Variables for the project -->
<ItemGroup>
  <InstallShieldPathVariableOverrides Include="$(AnMSBuildVariable)\Win32\Installer">
    <PathVariable>MY_BUILD_PATH</PathVariable>
  </InstallShieldPathVariableOverrides>
  <InstallShieldPathVariableOverrides Include="$(AnMSBuildVariable)\Win32\Installer\Reports">
    <PathVariable>MY_REPORTS_PATH</PathVariable>
  </InstallShieldPathVariableOverrides>
</ItemGroup>

此外,如果你有包含重写路径的子路径变量,你也必须覆盖它们:继承不会获取继承的覆盖。 (参见示例,原始路径变量可能已将MY_REPORTS_PATH定义为MY_BUILD_PATH \ Reports,但必须明确覆盖它。)