У меня есть следующее свойство:
<Property Id="UPDATEDB">1</Property>
Флажок в пользовательском интерфейсе, привязанный к этому свойству:
<Control Id="updateDatabase" Type="CheckBox" CheckBoxValue="1" Height="15" Width="95" X="20" Y="74" Text="Update Database" Property="UPDATEDB" />
И настраиваемое действие, которое делает что-то, основанное на значении этого свойства
<CustomAction Id="RunDbMigration" Directory="INSTALLDIR" Return="check"
ExeCommand='[DBMIGRATIONDIR]\DbMigration.exe' />
<InstallExecuteSequence>
<Custom Action="RunDbMigration" After="InstallFinalize">UPDATEDB=1 AND NOT Installed</Custom>
</InstallExecuteSequence>
. Если я попытаюсь передать значение 0 для UPDATEDB из командной строки:
msiexec /i "Setup.msi" /l* UPDATEDB=0
или
msiexec /i "Setup.msi" /l* UPDATEDB="0"
, значение флажка все равно будет проверено. Тем не менее, переданный 0, похоже, соблюдается, а действие RunDbMigration не выполняется ...
Что здесь происходит? Почему это такое ракетостроение?