4 Stimmen

Wie führe ich eine benutzerdefinierte Aktion innerhalb einer in WiX erstellten MSI mit erweiterten Rechten aus?

Ich habe ein Installationsprogramm, das auf die Registrierung zugreifen und Dateien mithilfe benutzerdefinierter Aktionen kopieren und entfernen muss. Unter Windows XP funktioniert das Installationsprogramm einwandfrei, aber unter Vista und 7 zeigt das Installationsprogramm einen Fehler an, weil es nicht auf einen Ordner zugreifen kann, aber wenn ich das Installationsprogramm als Administrator ausführe, funktioniert alles.

Das Installationsprogramm muss also in der Lage sein, die benutzerdefinierte Aktion als Administrator auszuführen, auch wenn das MSI nicht auf diese Weise ausgeführt wurde (das Installationsprogramm muss von normalen Benutzern ausgeführt werden können). Ich habe versucht, eine EXE zu Beginn meiner Installation zu verwenden, um die Registrierung zu ändern und die MSI normal ausführen zu können, aber ich glaube nicht, dass das eine sehr gute Lösung ist.

PS. Bootstrapper ist aufgrund von Kundenanforderungen keine Option :S Alle meine benutzerdefinierten Aktionen sind aufgeschoben und impersonate="no"

Irgendwelche Ideen? Dankeschön

5voto

rmrrm Punkte 20750

Stellen Sie das sicher:

  • es wird nach InstallInitialize geplant
  • Das Attribut "Ausführen" ist gesetzt auf aufgeschoben
  • Das Attribut "Impersonate" ist gesetzt auf no

Bitte beachten Sie, dass aufgeschobene benutzerdefinierte Aktionen nicht auf die Installationssitzung zugreifen können, so dass Sie nicht direkt auf die Eigenschaften des Installationsprogramms zugreifen können.

2voto

Alexey Ivanov Punkte 11216

Ihre benutzerdefinierten Aktionen müssen in der Reihenfolge zwischen InstallInitialize y InstallFinalize Aktionen.

Erhalten Sie eine UAC-Eingabeaufforderung, wenn Sie das Installationsprogramm ausführen? Wenn Sie eine Installation pro Maschine durchführen, erhalten Sie eine UAC-Eingabeaufforderung, wenn Sie auf Installieren Sie Schaltfläche im Assistenten. Wenn Sie keine UAC-Eingabeaufforderung erhalten, dann prüfen Sie ALLUSERS auf 2 gesetzt ist. Siehe auch Kennzeichnung der Berechtigungen für eine MSI

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X