Bootstrapper: gewusst Wie: kompilieren Sie die Anwendung und Voraussetzung im einzelnen .msi-Paket?
Ich bin erstellen .msi-Pakets für die Anwendung die Voraussetzung für die installation.
Ich bin mit dem Visual Studio 2005 Bootstrapper für diese Aufgabe.
Zu diesem Zweck habe ich Folgendes:
Befindet sich der Ordner C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ und erstellt einen Ordner für meine Voraussetzung (machte es gleiche Struktur wie 'dotnetfx'); die 'product.xml' und 'package.xml' und platzierte Sie entsprechend. Ich habe die xml-Dateien sehr einfach ist, so weit die installation testen:
product.xml
<?xml version="1.0" encoding="utf-8"?>
<Product ProductCode="MyPrereq" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<PackageFiles CopyAllPackageFiles="false">
<PackageFile Name="MyPrereq.exe" />
</PackageFiles>
<InstallChecks>
</InstallChecks>
<Commands Reboot="None">
<Command PackageFile="MyPrereq.exe" EstimatedInstallSeconds="90">
<InstallConditions>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<DefaultExitCode Result="Fail" String="GeneralFailure" FormatMessageFromSystem="true" />
</ExitCodes>
</Command>
</Commands>
</Product>
package.xml
<?xml version="1.0" encoding="utf-8"?>
<Package Name="MyPrereq" Culture="Culture" xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper">
<Strings>
<String Name="Culture">en</String>
<String Name="DisplayName">MyPrereq</String>
<String Name="GeneralFailure">A fatal error occurred. The installation failed.</String>
</Strings>
</Package>
Jetzt kann ich hinzufügen, das die Voraussetzung aus der Liste aus und Baue meine setup-Projekt.
Das problem:
Die build-Ausgabe der 'setup.exe' das 'MyApp.msi " - Paket, plus die Unterordner namens 'MyPrereq' enthält 'MyPrereq.exe'.
Ich würde gerne das build zu erstellen 'setup.exe' und ein einfaches 'MyApp.msi", die enthalten die 'MyPrereq' innen, so dass keine zusätzlichen Dateien/Verzeichnisse.
Ich weiß, dass die .NET framework ist ein weiteres prereq für meine app, und es ist in die gleiche .msi, also das sollte doch möglich sein, irgendwie.
Wie kann ich das erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie das erstellen einer selbstextrahierenden installer mit tools wie IExpress (kommt mit Windows), die alle Dateien in einer einzigen ausführbaren Datei (siehe diese SO posten).
Sie können eine MSI-Datei installieren, seine eigenen Voraussetzungen. Erstens, weil der Windows-Installer an sich ist eine Voraussetzung (und müssen installiert werden, die von einem nicht-MSI-exe) und zweitens, weil der Windows-Installer-Installationen sind die Transaktions-und keine Unterstützung für die verkettete Ausführung von MSI-Dateien. Dies bedeutet im Grunde, dass eine MSI-installation nicht starten, ein anderes MSI-installation. Als Folge werden alle Voraussetzungen, die installiert werden müssen, durch eine separate bootstrapper (by the way, die installation ist nicht mehr Transaktions - Voraussetzungen, kommen die nicht deinstalliert, wenn die MSI-installation fehl).
Scheint es eine basic-mis-understanding über die bootstrapper-Mechanismus aber. Der bootstrapper können derzeit nur generiert werden, die von Visual Studio oder MSBuild. Afaik ist es nicht möglich mit WiX. Suchen Sie für die GenerateBootstrapper task in MSBuild (siehe diese SO posten).
Ist mir gelungen, mit IExpress.
Hatte mit einem kleinen trick, jedoch, die ist hier beschrieben
Erstellen Sie einen bootstrapper für ein VS-Shell-Anwendung
Das problem war, dass bootstrapper setzt die Voraussetzungen in einen Unterordner, und IExpress erkennt keine Unterordner. Müssen vorsichtig sein, während der Bearbeitung 'setup.exe' zu, es nicht richtig auf dem ersten Versuch.