WIX laufen vcredist_x64.exe auf installieren

Ich habe eine Anwendung erstellt, in VS 2015 und erfordert die VC++ Redistributable Paket, um ordnungsgemäß ausgeführt. Vor diesem aktuellen build, den wir wurden mit einer älteren version von VS und einfach verwendet eine merge-Modul-handle der installation der entsprechenden redist-Dateien. Ich habe jedoch festgestellt, dass bei Verwendung der aktuellen version des merge-Module für das Jahr 2015 (Microsoft_VC140_CRT_x64.msm), dass meine Anwendung immer noch nicht funktioniert out of the box. Ich habe einige Graben und es scheint, dass einige Dinge haben sich geändert mit der neuesten version der merge-Module. Es scheint, dass Microsoft empfiehlt jetzt zu installieren vcredist_x64.exe Paket direkt anstatt merge Module.

So, ich bin versucht, eine benutzerdefinierte Aktion erstellen, um dies zu tun. Ich bin nach einer ähnliche tutorial hier, obwohl die Anpassung für die VC Redistributable ausführbare Datei. Das erste, was ich tun müssen, ist setup, wo die .exe-Datei platziert, sobald es installiert ist:

<Directory Id='APPLICATIONROOTDIRECTORY' Name='MyApp'>
  <Directory Id="VCREDISTDIR" Name="VCRedist">
  </Directory>
</Directory>

Dann, ich brauche, um meine Dateien in ein Komponente-Gruppe, die installiert wird als Teil von einem hidden feature (wie ich will, diese werden automatisch installiert).

<ComponentGroup Id="VCRedist" Directory="VCREDISTDIR">
  <Component Id="vcredist_x64.exe" Guid="-INSERT-GUID-HERE-" Win64="yes">
    <File Id="VCREDISEXE" Name="vcredist_x64.exe" KeyPath="yes" Source="$(var.VCRedistSourceDir)" Checksum="yes"></File>
  </Component>
</ComponentGroup>

Und...

<Feature Id="VCRedistributable" Title="Visual C++ Runtime" AllowAdvertise="no" Display="hidden" Level="1">
  <ComponentGroupRef Id="VCRedist" />
</Feature>

Zu diesem Zeitpunkt die vcredist_x64.exe sollten kopiert werden, um auf dem Computer des Endbenutzers. Jetzt brauche ich zum erstellen einer benutzerdefinierten Aktion zu starten Sie die ausführbare Datei nach der installation.

<CustomAction Id="InstallVCRedistributable"
          FileKey="VCREDISEXE"
          Execute="deferred"
          ExeCommand="/silent"
          Impersonate="no"
          Return="check"/>

<InstallExecuteSequence>
  <Custom Action="InstallVCRedistributable" Before="InstallFinalize">
    <![CDATA[NOT REMOVE]]>
  </Custom>
</InstallExecuteSequence>

Ich auch eine status-Nachricht an meine Benutzeroberfläche so, dass ich sehen kann, wenn die ausführbare Datei ausgeführt wird.

<UI>
  <ProgressText Action="InstallVCRedistributable">Installing Visual C++ Redistributable for Visual Studio 2015</ProgressText>
</UI>

Nun, wenn ich mein installer sollte starten vcredist_x64.exe... und es funktioniert... aber dann während der installation, die ausführbare Datei, es wird aufgehängt. Ich bekomme eine popup-Meldung, die sagt, es ist ein problem mit diesem Windows Installer-Paket und ein Programm ausführen, das als Teil der Installation wurde nicht abgeschlossen. Es rollt dann-wieder meiner Haupt-installation der Anwendung und wird nie installiert. Kann mir jemand erklären, warum das passiert und wie man es beheben? Danke!

  • FYI, hinzufügen Microsoft_VC140_CRT_x64.msm, die in Ihren Installateur wird so lange arbeiten als target-system hat auch die Universal-CRT installiert. Das Modul selbst ist nicht mehr vollständig selbst abhängig.
InformationsquelleAutor andyopayne | 2016-01-15
Schreibe einen Kommentar