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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja nur eine variable anlegen, in der burn-bootstrapper:
können Sie sich dann übergeben Sie diese als parameter in der boot-strapped msi-Paket:
Einer fehlenden Eigenschaft "Typ" auf Bundle Variable element.
caverman_dick ist richtig, aber dies nicht ordnungsgemäß funktioniert, wenn nicht überschreibbare.
Sie können versuchen, diese auch die Einstellung Type="string".
Wix Variable Element