Frage

Ich habe ein Setup -Projekt in VS2008 erstellt. Meine WinForms -App verwendet .NET 2.0, daher habe ich mich für .NET 2.0 -Voraussetzung entschieden und das Setup -Projekt erstellt.

Wenn ich mein Setup.msi auf einem sauberen PC ausführe, wird korrekt erkannt, dass das .NET fehlt und fragt, ob es installiert werden sollte. Nach einer erfolgreichen Installation des .NET beendet das Installationsprogramm einfach mit der Installation meiner App (ich denke, das sollte es sein).

Wenn ich die MSI -Datei auf einem PC mit bereits installierter .NET ausführe, installiert meine App korrekt.

Gibt es eine Möglichkeit, dass .NET 2.0 und meine App in einem Schritt zusammen installieren?

War es hilfreich?

Lösung

Wie haben Sie das Produkt installiert?

Das Setup -Projekt gibt zwei Dateien aus:

  • ein Windows Installer -Paket (.msi) und
  • ein sogenannter Bootstrapper (setup.exe)

Der Bootstrapper prüft nach dem Vorhandensein einer vorausgeforderten, die Sie angegeben haben, und kann möglicherweise heruntergeladen und installiert werden, wenn er noch nicht installiert ist und dann Ihre Anwendung weiter installieren (durch Anruf das .msi). Daher sollten Sie immer die Setup.exe starten, um Ihre Anwendung zu installieren, und nicht die .msi-Datei (es sei denn, Sie wissen, dass sich alle Voraussetzungen im Zielsystem befinden).

Wie Krakkos sagt, installiert der Bootstrapper sowohl die Voraussetzungen als auch Ihre Anwendung (dh Ihre .msi-Datei). Mir ist jedoch keine Konfigurationseinstellungen bekannt, die verhindern würden, dass der Bootstrapper das MSI installiert.

Zur Fehlerbehebung können Sie versuchen, ein Protokoll Ihrer Installation zu erstellen und nach Problemen in der Protokolldatei zu suchen.

Andere Tipps

Danke Divo,

Ich habe die MSI -Datei ausgeführt.

Gibt es Einschränkungen beim Ausführen der Datei setup.exe? Wenn ich mich richtig erinnere, habe ich einmal versucht, es unter Windows 2000 auszuführen, und es lief nicht. Ich konnte nur die MSI -Datei ausführen. Ich werde auf einen PC mit Clean Win2000 überprüfen und zurückkommen.

Bearbeiten: Ich habe es unter Clean Windows 2000 SP4 ausprobiert und hier sind die Ergebnisse:

  • Setup.exe wird nicht mit einer Nachricht über fehlende Heapsetinformation in Kernel32.dll ausgeführt
  • Setup.msi wird nicht ausgeführt (die .msi -Erweiterung ist unbekannt)

Dann habe ich Windows Installer 3.1 manuell installiert:

  • Setup.exe wird immer noch nicht mit derselben Fehlermeldung ausgeführt
  • Setup.msi wird erfolgreich ausgeführt (installiert jedoch nur .NET ohne meine App ... mein ursprüngliches Problem)

Unter Windows XP wird das Setup.exe ohne Probleme ausgeführt.

Es scheint, dass Benutzer mit Win2000 meine App manuell installieren müssen, indem sie Windows Installer 3.1, .NET 2.0 und dann meine App installieren. Selbst wenn .NET manuell installiert ist, zeigt das Setup.exe die gleiche Fehlermeldung unter Win2000 SP4 an.

Bearbeiten: Die Ausgabe von Win 2000 kann durch Installation der installiert werden Update Rollup 1 für Windows 2000 SP4 (KB891861).

Diese Episode von Hanselminutes Gehen Sie insgesamt ausführlich darüber aus, wie Paint.net zum Herunterladen und Installieren des erforderlichen .NET -Frameworks bei Bedarf und Integration in die Anwendungsinstallation arrangiert wird. Zugegeben, dies ist wahrscheinlich viel komplexer als die meisten Anwendungen, aber dennoch eine interessante Diskussion.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top