2009-09-23 4 views
1

Я создаю проект InstallShield, используя целевые объекты InstallShield MSBuild. Я боролся с переопределением переменных пути. Ничто из того, что я делаю, похоже, связано с сборкой InstallShield. help page был не очень ... полезным.Как переопределить переменные пути InstallShield при создании с помощью MSBuild?

ответ

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> 

Кроме того, если у вас есть переменные пути ребенка, которые включают перекрытый путь, вы должны чрезмерно ездить те тоже: Наследование выиграло 't возьмите унаследованное переопределение. (См. Пример, исходная переменная пути может быть определена MY_REPORTS_PATH как MY_BUILD_PATH \ Reports, но она должна быть явно переопределена.)

+0

Возможно ли передать эти переопределения в командной строке, а не жестко закодированные в файле isproj? – JohnZaj

+0

@jJack - приведенный выше пример не является жестко запрограммированным, он использует переменную '$ (AnMsBuildVariable)', которую вы можете указать в командной строке с помощью '/ p: AnMsBuildVariable = XYZ'. –

 Смежные вопросы

  • Нет связанных вопросов^_^