WIX invoquant fichier de commandes dans InstallExecution Séquence
Je suis nouveau sur WIX et je suis en train d'invoquer un fichier de commandes à partir de mon WIX programme d'installation.
MyBatch.bat contient une simple Copie d'un fichier Texte à partir de c:\ D:\
Je ne suis pas en mesure d'invoquer le fichier de commandes. Ci-dessous mon code.
Merci de m'aider.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define ProductName='Test Product' ?>
<?define ProductVersion='1.0.0.0' ?>
<?define ProductCode='b7bc7c6f-9a4e-4973-be84-eca8e3427c97'?>
<?define UpgradeCode='06a81104-1e30-463d-87e1-e8a79b4c682a'?>
<?define Manufacturer='Respond'?>
<Product Id="$(var.ProductCode)" Language="1033" Version='$(var.ProductVersion)' Name='Respond'
Manufacturer='$(var.Manufacturer)' UpgradeCode='$(var.UpgradeCode)'>
<Package InstallerVersion='200' Compressed='yes' />
<Media Cabinet='media1.cab' EmbedCab='yes' Id ='1' />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id='ProgramFilesFolder'>
<Directory Id='INSTALLDIR' Name='$(var.ProductName)'>
<Component Id='ProductComponent' Guid='b11556a2-e066-4393-af5c-9c9210187eb2'>
<File Id='Calc' DiskId='1' Source='C:\WINDOWS\system32\calc.exe'/>
<File Id='my_batch_script' Name='MyBatch.bat' DiskId='1' Source='MyBatch.bat' />
</Component>
</Directory>
</Directory>
<Directory Id='ProgramMenuFolder'>
<Directory Id='ApplicationProgramsFolder' Name='$(var.ProductName)'>
<Component Id='MainExecutable' Guid='EDED00D8-2465-46CA-86D6-B20DE921EFA6'>
<Shortcut Id='ShortcutCalc' Description='$(var.ProductName)' Name ='Calculator of Windows'
Target='[INSTALLLOCATION]Calc.exe' WorkingDirectory='INSTALLLOCATION'/>
<RemoveFolder Id='ApplicationProgramsFolder' On='uninstall'/>
<RegistryValue Root='HKCU' Key='Software\$(var.Manufacturer)\$(var.ProductName)' Type ='multiString'
Name='installed' Value='1' KeyPath='yes'/>
</Component>
</Directory>
</Directory>
</Directory>
<Feature Title='SetupProject1' Level='1' Id ='AppFeature'>
<ComponentRef Id='ProductComponent' Primary='yes'/>
<ComponentRef Id='MainExecutable'/>
</Feature>
<Property Id='WIXUI_INSTALLDIR' Value='INSTALLDIR' ></Property>
<WixVariable Id='WixUILicenseRtf' Overridable='yes' Value='License.rtf'/>
<?include CustomActions.wxi?>
<UI>
<?include UISequence.wxi?>
<?include Dialogs.wxi?>
</UI>
<CustomAction Id="BatchCmd" Property="ThePath" Value="[INSTALLDIR]MyBatch.bat" />
<CustomAction Id="BatchRun" Property="ThePath" ExeCommand='"[INSTALLDIR]MyBatch.bat"' Return='asyncWait' Impersonate="yes"/>
<InstallExecuteSequence>
<Custom Action="BatchCmd" After="InstallFiles" >Not Installed </Custom>
<Custom Action="BatchRun" After="BatchCmd">Not Installed </Custom>
</InstallExecuteSequence>
</Product>
</Wix>
OriginalL'auteur Girish | 2012-03-05
Vous devez vous connecter pour publier un commentaire.
Cela a fonctionné pour moi.
Une bonne nouvelle. Tous les espaces sont autorisés dans DIR et dans le
ExeCommand="[INSTALLDIR]MyBatch.bat"
. I. e. pas besoin de l'apostrophe trucExeCommand='"[INSTALLDIR]MyBatch.bat"'
OriginalL'auteur Girish
Il semble que vous êtes à la résolution de votre problème avec le mauvais outil. Si le fichier à copier est une partie de votre application, vous devez créer un Composant avec cette Fichier à l'intérieur. Sinon, si vous avez juste besoin de copier un fichier externe déjà présents sur un système cible, vous devez créer un CopyFile élément, imbrication dans le cadre du Volet élément.
OriginalL'auteur Yan Sklyarenko
Je suis d'accord avec Yan, vous résoudre votre tâche dans le mauvais sens.
Comme pour les fichiers de commandes, elles ne sont pas exécutées sur sa propre comme un .exe, il est
cmd.exe
qui lit le fichier bat et l'exécute, ligne par ligne.Pour exécuter un fichier de commandes, vous devez l'exécuter de cette façon:
OriginalL'auteur Alexey Ivanov
Ajouter votre CustomAction définition que celle donnée ci-dessous. Assurez-vous que le Retour="ignorer" si vous n'êtes pas de retour quelque chose de fichier bat.
Également dans le installExecuteSequence séquence d'ajouter de l'action avant InstallFinalize
ExeCommand="C:\0 0 0\my batch file.bat some_param"
OriginalL'auteur TVSuser1654136