Я создаю проект InstallShield, используя целевые объекты InstallShield MSBuild. Я боролся с переопределением переменных пути. Ничто из того, что я делаю, похоже, связано с сборкой InstallShield. help page был не очень ... полезным.Как переопределить переменные пути InstallShield при создании с помощью MSBuild?
1
A
ответ
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, но она должна быть явно переопределена.)
Возможно ли передать эти переопределения в командной строке, а не жестко закодированные в файле isproj? – JohnZaj
@jJack - приведенный выше пример не является жестко запрограммированным, он использует переменную '$ (AnMsBuildVariable)', которую вы можете указать в командной строке с помощью '/ p: AnMsBuildVariable = XYZ'. –