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

Aid*_*yan 2 msbuild installshield

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

Aid*_*yan 7

文档中没有解决一些问题.在.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>
Run Code Online (Sandbox Code Playgroud)

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