Как утилита командной строки Installshield 2012 iscmdbld.exe изменяет несколько свойств - PullRequest
0 голосов
/ 19 октября 2011

Я пытаюсь выполнить автоматическую сборку, и мой сервер сборки передает некоторые параметры командной строки в файл iscmdbld.exe, чтобы изменить свойства установщика Windows в полученном MSI-файле.Мне удалось заставить его работать с одним изменением свойства, но теперь я хочу изменить два, а второе, похоже, не работает.

В настоящее время я использую следующие опции для сборки приложения:

    -y "2.50.0100" -z "APP_VERSION=2.5.0.0.1" -z "APP_COMMENTS= Customer ID Version 2.5.0.0.1"

Часть, которая не работает, является вторым параметром командной строки -z для второго свойства.Есть мысли?

PS.Я использовал тег installshield-2011, так как не мог создать его для 2012 года, и он должен быть в основном таким же в 2011 и 2012 годах.

1 Ответ

2 голосов
/ 19 октября 2011

Я создал новый проект Basic MSI, добавил фиктивную функцию и компонент и создал его с несколькими аргументами -z, когда вы их набирали, и он работал для меня без проблем. Я посмотрел на выходную таблицу свойств MSI, и значения были там, как и ожидалось.

Получаете ли вы какие-либо ошибки в лог-файле?

BYW, IsCmdBld - это нормально, но когда вы попадаете в более сложные сценарии сборки, вы можете по достоинству оценить использование поддержки InstallShield MSBuild и интерфейса COM Automation для запуска ваших сборок.

Например, я считаю, что гораздо проще сделать этот бит XML, чем знать, как передавать аргументы -z в какой-нибудь EXE.

<PropertyGroup>
  <InstallShieldProductVersion>$(MSIProductVersion)</InstallShieldProductVersion>
</PropertyGroup>
<ItemGroup>
  <InstallShieldPropertyOverrides Include="$(CustomLongProductVersion)">
    <Property>APP_VERSION</Property>
  </InstallShieldPropertyOverrides>
  <InstallShieldPropertyOverrides Include=" Customer ID Version $(CustomLongProductVersion)">
    <Property>APP_COMMENTS</Property>
  </InstallShieldPropertyOverrides>
</ItemGroup>
...