Je sais qu'il ya plusieurs messages sur des scripts PowerShell et Wix, mais après avoir essayé les solutions de ces postes, je ne suis toujours pas obtenir mes résultats souhaités. Pour expliquer ma situation, j'ai créé un projet d'installation Wix qui saisira 2 scripts Powershell et un fichier MSU de ma machine locale (fonctionnant sous Windows 7) et regrouper ceux-ci dans un fichier msi. si je lance le fichier msi sur mon test machine virtuelle (exécutant Windows Server 2008 R2) les fichiers sont copiés dans leur répertoire spécifié. Génial. Il y a un inconvénient d'avoir une nouvelle exposition d'article dans la liste Ajout/Suppression de programmes, mais ce serait quelque chose que je voudrais aborder à une date ultérieure.Wix - installer et exécuter un script Powershell
(les scripts PowerShell installer le MSU, modifier un fichier de configuration et lancer un service - fonctionne très bien lors de l'exécution manuelle)
Ce que j'ai essayé de faire après avoir obtenu les fichiers copiés sur la machine cible est à exécuter l'un des scripts copiés Powershell, mais jusqu'à présent, je n'ai pas été en mesure d'y parvenir.
mon code .wxs ressemble à ceci (écrit et compilé en utilisant TFS 2010)
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Id="a89cc681-d617-43ea-817e-1db89b941bf2" Name="Test1" Language="1033" Version="1.0.0.0" Manufacturer="Test1" UpgradeCode="d8db2663-2567-4bb8-9023-09988838eb55">
<Package InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<!-- Set up the directory -->
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="IISTIERINSTALLATION" Name="IISTierInstallation">
</Directory>
</Directory>
<!-- Copy the files -->
<DirectoryRef Id="IISTIERINSTALLATION">
<Component Id ="C2WTS_update_file" Guid="11960C39-12EB-4777-B43F-394ADB352DD3">
<File Id="C2WTSmsu" Name="Windows6.1-KB974405-x64.msu" Source="C:\PS Scripts\Windows6.1-KB974405-x64.msu" />
</Component>
<Component Id ="C2WTSInstallScript" Guid="C85ED4DB-BDC1-4DD1-84FE-41D7463C6365">
<File Id="C2WTSscript1" Name="C2WTS_service_install.ps1" Source="C:\PS Scripts\C2WTS_service_install.ps1" />
</Component>
<Component Id ="C2WTSxmlScript" Guid="AF1F85A7-88F7-4BBA-89D9-6817CFAA74F9">
<File Id="C2WTSscript2" Name="Edit_c2wts_config.ps1" Source="C:\PS Scripts\Edit_c2wts_config.ps1" />
</Component>
</DirectoryRef>
<Feature Id="ProductFeature" Title="Test1" Level="1">
<ComponentRef Id="C2WTS_update_file" />
<ComponentRef Id="C2WTSInstallScript" />
<ComponentRef Id="C2WTSxmlScript" />
<ComponentGroupRef Id="Product.Generated" />
</Feature>
<!-- Run custom action to run the powershell script-->
<Property Id="POWERSHELLEXE">
<RegistrySearch Id="POWERSHELLEXE"
Type="raw"
Root="HKLM"
Key="SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"
Name="Path" />
</Property>
<SetProperty Id="RunPSscript"
After="InstallFiles"
Sequence="execute"
Value =""[POWERSHELL.EXE]" -Version 2.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& '[#C2WTS_service_install.ps1]' ; exit $$($Error.Count)"" />
<CustomAction Id="RunPSscript"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="check"
Impersonate="yes" />
<Custom Action="RunPSscript" After="InstallFiles">
<![CDATA[NOT Installed]]>
</Custom>
</Product>
</Wix>
Depuis l'ajout de l'activité personnalisée pour exécuter le script Powershell, rien ne se passe quand je lance le msi. Les fichiers n'apparaissent pas dans leur dossier comme ils le faisaient et rien n'est installé. Quelqu'un peut-il me dire où je vais mal? Comme l'a dit, il y a plusieurs solutions sur le net sur des problèmes similaires, mais aucun n'a fonctionné pour moi jusqu'à présent
MISE À JOUR
J'ai essayé d'installer le msi avec la journalisation activée, et le journal retourné les 2 suivantes lignes:
CAQuietExec64: erreur 0x80070057: Échec d'obtenir des données de ligne de commande
CAQuietExec64: erreur 0x80070057: n'a pas réussi à obtenir la ligne de commande
Après avoir cherché sur le net des correctifs pour ce code d'erreur, je n'ai toujours pas trouvé de réponses pour aider à résoudre le problème. Quelqu'un a une idée? Des experts Wix là-bas?
Merci à l'avance
Commencez le dépannage en générant le journal d'installation (exécutez msiexec.exe/i {votre fichier msi ici}/log {chemin vers le journal}. – Dan