Упаковка и исполняемый установщик с элементами CopyFile в wix msi
У меня есть исполняемый установщик, который устанавливает общий файл конфигурации, который должен быть изменен, прежде чем программное обеспечение будет работать. Я пытаюсь упростить процесс установки и хотел бы обернуть исполняемый файл и мой измененный файл конфигурации в один установщик MSI. Мне это удалось, но у меня возникли проблемы с назначением значения свойства Before= или After= в моем элементе InstallExecuteSequence для CustomAction, который запускает исполняемый установщик. Если я назначу запуск исполняемого установщика слишком рано, он вообще не запускается или демонстрирует странное поведение. И если я назначаю исполняемый установщик слишком поздно в последовательности установки, он перезаписывает мой измененный файл конфигурации общими настройками. Что до или после присваивания свойств позволит исполняемому файлу работать правильно, но не перезаписывать файл, который я перемещаю с элементом CopyFile?
<Property Id="CONFIGFOLDER" Value="C:\acme\config" />
<Feature Id="ConfigurationFile" Title="Configuration File" Level="1">
<ComponentRef Id="CMP_ACME_Config_File" />
</Feature>
<DirectoryRef Id="TARGETDIR">
<Component Id="CMP_ACME_Config_File" Guid="">
<File Id="ACME_Config" Source="MySettings.conf" KeyPath="yes">
<CopyFile Id="Copy_ACME_Config"
DestinationProperty="CONFIGFOLDER"
DestinationName="settings.conf" />
</File>
</Component>
</DirectoryRef>
<Binary
Id="InstallerEXE"
SourceFile="installer.exe" />
<CustomAction
Id="Launch_Installer"
BinaryKey="InstallerEXE"
Impersonate="yes"
Execute="deferred"
ExeCommand=""
Return="check" />
<InstallExecuteSequence>
<Custom Action="Launch_Installer"
Before="InstallFiles">NOT Installed
</Custom>
</InstallExecuteSequence>
1 ответ
Я не могу точно сказать, почему, но следующее присвоение значения свойству "After" в элементе "Custom", похоже, помогает.
<InstallExecuteSequence>
<Custom Action="Install_SNMP"
After="PatchFiles">
</Custom>
</InstallExecuteSequence>