WiX: how to access / change-Installationsverzeichnis in managed bootstrapper?

Ich bin erstellen einer WPF-setup-Anwendung mit einer benutzerdefinierten Benutzeroberfläche. Angefangen habe ich mit dem tutorial von Bryan P. Johnston: http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/

Irgendwo in meinem Blick, ich habe eine einfache TextBox bindet, um eine Eigenschaft InstallationPath in meinem MainViewModel.

Jetzt möchte ich diesen Pfad verwendet werden, wenn der Benutzer klickt auf "Installieren". Dafür habe ich einen Knopf, der an meiner InstallCommand. Die folgende Methode aufgerufen wird (die direkt aus dem tutorial):

private void InstallExecute()
{
    Bootstrapper.Engine.Plan(LaunchAction.Install);
}

Wie kann ich die Pakete installiert werden, in das Verzeichnis meiner Eigenschaft InstallationPath?


Edit:

Fand ich eine ähnliche Frage hier auf Stackoverflow:

Geben Sie das INSTALLLOCATION-Pakete im WiX-innen das Brennen managed bootstrapper

Antwort da ist von Bob Arnson

Verwenden Sie ein MsiProperty Kind für jedes MsiPackage angeben INSTALLLOCATION=[BurnVariable]. Dann verwenden Motor.StringVariables zu setzen BurnVariable.

Nun, ich denke, ich könnte auf die StringVariables in meinem InstallExecute wie diese

private void InstallExecute()
{
    Bootstrapper.Engine.StringVariables["BurnVariable"] = InstallationPath;
    Bootstrapper.Engine.Plan(LaunchAction.Install);
}

Aber, wo diese variable definieren? Ich denke, irgendwo in Produkt.wxs?

  • Hey Michael, ich folgte das gleiche tutorial, und ich stehe vor einem Problem, wo während der großen upgrade, die Vorherige exe ist nicht immer entfernt werden, da neues steht nebeneinander installiert. Ich erhöht sowohl die EXE-version und die MSI-Dateien enthalten-Versionen. Ich sah einige andere Leute in den Kommentaren das gleiche Problem unter dem tutorial. Hast du dieses Problem? Wenn ja, wie hast du über Sie? 🙁 Einige müssen den Menschen helfen
Schreibe einen Kommentar