Wix - installieren Sie und führen Sie ein powershell-Skript

Ich weiß, dass es mehrere Beiträge auf Wix-und PowerShell-Skripts, aber nach dem Versuch, die Lösungen von diesen posts, ich bin immer noch nicht meine gewünschten Ergebnisse. Um meine situation erklären, die ich erstellt habe, ein Wix setup Projekt, grab 2 Powershell-Skripts und eine msu-Datei von meinem lokalen Rechner (mit windows 7) und bündeln diese in eine msi-Datei. wenn ich die msi-Datei auf meinem virtuellen test-Maschine (windows server 2008 r2 ausgeführt) die Dateien werden kopiert und in den angegebenen Ordner. Toll. Es ist ein Nachteil, der mit einer neuen Artikel zeigen, in der Liste Programme Hinzufügen/Entfernen, aber das wäre etwas, was ich möchte-Ansatz zu einem späteren Zeitpunkt.

(die Powershell-Skripts installiert die msu, Bearbeiten einer config-Datei und starten Sie eine service - funktioniert gut, wenn manuell ausgeführt)

Was ich versucht habe zu tun, nachdem ich die kopierten Dateien auf der Ziel-Maschine führen Sie einen der kopiert Powershell-Skripts, aber so weit ich habe nicht in der Lage gewesen, dies zu erreichen.

meine .wxs-code sieht so aus (geschrieben und kompiliert mit 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 ="&quot;[POWERSHELL.EXE]&quot; -Version 2.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command &quot;&amp; '[#C2WTS_service_install.ps1]' ; exit $$($Error.Count)&quot;" />

<CustomAction Id="RunPSscript"
              BinaryKey="WixCA"
              DllEntry="CAQuietExec"
              Execute="deferred"
              Return="check"
              Impersonate="yes" />

  <Custom Action="RunPSscript" After="InstallFiles">
    <![CDATA[NOT Installed]]>
  </Custom>

</Product>
</Wix>

Seit dem hinzufügen der benutzerdefinierten Aktivität, um die Durchführung der powershell-script, passiert nichts, wenn ich führen Sie die msi-Datei. Die Dateien erscheinen nicht in Ihre Ordner wie Sie benutzt und nichts ist installiert . Kann mir jemand sagen, wohin ich gehe falsch gemacht? Wie gesagt, es gibt mehrere Lösungen auf dem Netz über ähnliche Probleme, aber keiner hat für mich so weit

UPDATE

Habe ich versucht, die Installation der msi-Protokollierung aktiviert und das log zurückgegeben die folgenden 2 Zeilen:

CAQuietExec64: Fehler 0x80070057: Fehler beim abrufen-Befehl line-Daten

CAQuietExec64: Fehler 0x80070057: Fehler beim abrufen der Befehlszeile

Nach der Suche im Netz nach Updates für die Fehlercode habe ich noch nicht gefunden haben, Antworten auf die Fragen helfen, das problem zu lösen. Hat jemand irgendwelche Ideen? Alle Wix-Experten da draußen?

Vielen Dank im Voraus

  • Starten Sie die Problembehandlung durch die Generierung der Protokoll der installation (ausführen msiexec.exe /i {Ihre msi-Datei hier einfügen} /log {Pfad zu log}.
InformationsquelleAutor Vermin | 2011-07-20
Schreibe einen Kommentar