2009-09-23 80 views

回答

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,但必須明確覆蓋它。)

+0

這是否可以在命令行上傳遞這些覆蓋,而不是在isproj文件中進行硬編碼? – JohnZaj 2014-07-18 14:23:48

+0

@jJack - 上面的例子不是硬編碼的,它使用變量'$(AnMsBuildVariable)',你可以在'/ p:AnMsBuildVariable = XYZ'命令行中指定。 – 2014-07-19 19:49:57

相關問題