Упаковка и исполняемый установщик с элементами 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>
Другие вопросы по тегам