1
我正在使用InstallShield MSBuild目標構建InstallShield項目。我一直在努力重寫路徑變量。我的任何東西似乎都沒有被InstallShield構建拾取。 help page不是很有幫助。如何在使用MSBuild構建時重寫InstallShield路徑變量?
我正在使用InstallShield MSBuild目標構建InstallShield項目。我一直在努力重寫路徑變量。我的任何東西似乎都沒有被InstallShield構建拾取。 help page不是很有幫助。如何在使用MSBuild構建時重寫InstallShield路徑變量?
有幾個問題沒有在文檔中解決。在你的.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,但必須明確覆蓋它。)
這是否可以在命令行上傳遞這些覆蓋,而不是在isproj文件中進行硬編碼? – JohnZaj 2014-07-18 14:23:48
@jJack - 上面的例子不是硬編碼的,它使用變量'$(AnMsBuildVariable)',你可以在'/ p:AnMsBuildVariable = XYZ'命令行中指定。 – 2014-07-19 19:49:57