2010-12-30 10 views
3

Ich erstellte ein MSI-Setup über Visual Studio 2008 für meine Anwendung und fügte einen Registrierungsschlüssel zu Windows \ run für den automatischen Start, sondern auch eine Funktion in meiner Anwendung, um den automatischen Start zu deaktivieren. Wenn die Anwendung neu gestartet wird, wird der Schlüssel jedoch automatisch repariert.MSI verhindern Registrierungsschlüssel Reparatur

Wie zu verhindern, dass MSI den Schlüssel reparieren ??

Vielen Dank!

+0

möglich Duplikat [MSI Installer Auto-Reparatur zu starten, wenn Dienst gestartet] (http://stackoverflow.com/questions/2596431/msi-installer-start-auto-repair-when-service-starts) –

Antwort

2

Der Registrierungsschlüssel ist repariert, weil es von Ihrem Paket installiert wurde und Windows Installer weiß, dass es vorhanden sein sollte. Einige mögliche Lösungen sind:

  1. Verschieben Sie den Eintrag in einer separaten Komponente, die keine Komponenten-ID hat. Auf diese Weise ist die Komponente nicht bei Windows Installer registriert.
  2. Verwenden Sie eine benutzerdefinierte Aktion, um den Registrierungseintrag während der Installation zu erstellen.
+0

Dank aber ich weiß auch nicht wie. Könntest du es erklären? Ich weiß nicht, wie ich die Komponenten-ID des Eintrags auswählen soll und nicht, wie ich dafür eine benutzerdefinierte Aktion erstellen kann, da Visual Studio mir das in benutzerdefinierten Aktionen nicht anbietet ... – Marin

+0

Sie können die Komponenten mit Orca bearbeiten oder mit einem leistungsfähigeren Werkzeug. Visual Studio ist sehr begrenzt, wenn es darum geht, Installer zu erstellen. Eine benutzerdefinierte Aktion kann benutzerdefinierten Code verwenden. Zum Beispiel können Sie eine EXE erstellen, die die Registrierungseinträge behandelt. Nachdem Sie die EXE erstellt haben, können Sie sie als benutzerdefinierte Aktion in Ihrem Setup-Projekt hinzufügen. –

Verwandte Themen