使用MSBuild生成时,如何重写InstallShield路径变量?

使用MSBuild生成时,如何重写InstallShield路径变量?,msbuild,installshield,Msbuild,Installshield,我正在使用InstallShield MSBuild目标构建InstallShield项目。我一直在努力重写路径变量。我所做的一切似乎都不会被InstallShield构建所接受。这不是很。。。有帮助。文档中没有提到一些问题。在.isproj文件中,将路径覆盖放置在项目组中,如下所示。该项必须命名为“InstallShieldPathVariableOverrides”,并包含一个“PathVariable”元素: <!-- Override Path Variables for the

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

文档中没有提到一些问题。在.isproj文件中,将路径覆盖放置在项目组中,如下所示。该项必须命名为“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>

我的构建路径
我的路径

此外,如果您有包含重写路径的子路径变量,那么您也必须超越这些变量:继承不会拾取继承的重写。(参见示例,原始path变量可能已将MY_REPORTS_path定义为MY_BUILD_path\REPORTS,但必须显式重写。)

是否可以在命令行传递这些重写,而不是在isproj文件中硬编码?@jJack-上面的示例不是硬编码的,它使用变量
$(AnMsBuildVariable)
,您可以在命令行上使用
/p:AnMsBuildVariable=XYZ
指定它。