Упаковка и исполняемый установщик с элементами CopyFile в wix msi - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть исполняемый установщик, который настраивает общий файл конфигурации, который необходимо изменить, прежде чем программное обеспечение заработает.Я пытаюсь упростить процесс установки и хотел бы обернуть исполняемый файл и мой измененный файл конфигурации в один установщик MSI.Мне это удалось, но у меня возникли проблемы с назначением свойства Before = или After = value внутри моего элемента 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 Ответ

0 голосов
/ 02 октября 2018

Я не могу точно сказать, почему, но следующее присвоение значения свойству «After» в элементе «Custom», похоже, помогает.

    <InstallExecuteSequence>
        <Custom Action="Install_SNMP" 
                After="PatchFiles">
        </Custom>
    </InstallExecuteSequence>
...