Я новичок в Wix. Я использую версию 3.9 для запуска пользовательского действия. Я могу скопировать файлы и установить и удалить, но я пытаюсь запустить пользовательское действие без каких-либо удачных действий.Wix custom action не работает
Ниже приведен небольшой пример: ComponentGroup находится в другом файле, который создается теплом. Я запускаю установщик с протоколированием и ничего не вижу в файле журнала о том, что действие не выполняется при установке, когда я запускаю удаление, я вижу приглашение cmd.
Я также запутался в условиях Wix и как они оцениваются. Из различных источников, это то, что я вижу условия и
- MyProperty возвращает истину, если свойство было установлено любое значение, включая 0 или ложной
- НЕ MyProperty возвращает ИСТИНА свойство не было установлено
При использовании в условии это говорит о том, что если MyProperty является ложным, NOT MyProperty вернет false. И если MyProperty истинно, в условии MyProperty вернет false. Это меня смущает, и умышленное действие во время удаления путает меня.
Любая помощь будет оценена по достоинству.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" >
<Product Id="*" Name="GtLite" Language="1033" Version="1.0.0.0" Manufacturer="Acme" UpgradeCode="0cd4e6db-ec32-42b4-bcb8-1f51f37c7b44">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<!-- Specify minimal UI -->
<UIRef Id="WixUI_Minimal" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />
<!-- Features to install -->
<Feature Id="ProductFeature" Title="FunTimes" Level="1">
<ComponentGroupRef Id="BinFilesGroup" />
</Feature>
<CustomAction Id="RunDataUtility"
Directory="FUN_FOLDER" ExeCommand="cmd.exe /k "echo hello > [FUN_FOLDER]echo_test.txt"" Execute="immediate" Return='asyncNoWait' />
<InstallExecuteSequence>
<Custom Action="RunDataUtility" After="InstallFiles" >NOT INSTALLED</Custom>
</InstallExecuteSequence>
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- Define Installation folder under Program Data -->
<Directory Id="ProgramFolder">
<Directory Id="INSTALL_FOLDER" Name="Acme" >
<Directory Id="FUN_FOLDER" Name="FunTimes" >
</Directory>
</Directory>
</Directory>
</Directory>
</Product>
</Wix>
Где находится ваш текстовый файл для проверки эха? Если вы его устанавливаете, ваши пользовательские действия должны быть отложены, так как перед выполнением каких-либо файлов выполняются немедленные пользовательские действия. – PhilDW
Эхо в файл, называемый echo_test.txt, было тестом, чтобы увидеть пользовательский запуск действия. Я изменил пользовательский тег After после установки на InstallFinalize, но оставил выполнение как незамедлительно, и теперь мое реальное пользовательское действие выполняется из папки установки. Также изменен BIN_FOLDER на FUN_FOLDER. Я все еще очень новичок в создании и работе над своим пониманием этого. – dgxhubbard