WiX: jak uzyskać dostęp / zmienić katalog instalacyjny w zarządzanym programie ładującym?
Tworzę aplikację konfiguracyjną WPF z niestandardowym interfejsem użytkownika. Zacząłem od samouczka Bryana P. Johnstona:http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/
Gdzieś w mojej opinii mam prostyTextBox
który wiąże się z własnościąInstallationPath
w moimMainViewModel
.
Teraz chcę, aby ta ścieżka była używana, gdy użytkownik kliknie „Zainstaluj”. W tym celu mam przycisk, który wiąże się z moimInstallCommand
. Następująca metoda jest wywoływana (wzięta bezpośrednio z samouczka):
private void InstallExecute()
{
Bootstrapper.Engine.Plan(LaunchAction.Install);
}
Jak mogę zainstalować pakiety w katalogu mojej własnościInstallationPath
?
Edytować:
Znalazłem podobne pytanie tutaj na Stackoverflow:
Określ INSTALLLOCATION pakietów w WiX wewnątrz bootstrapera zarządzanego przez Burn
Odpowiedź brzmi: Bob Arnson
Użyj potomka MsiProperty dla każdego Pakietu Msi, aby określić INSTALLLOCATION = [BurnVariable]. Następnie użyj Engine.StringVariables, aby ustawić BurnVariable.
Teraz myślę, że mógłbym uzyskać dostęp doStringVariables
w moimInstallExecute
lubię to
private void InstallExecute()
{
Bootstrapper.Engine.StringVariables["BurnVariable"] = InstallationPath;
Bootstrapper.Engine.Plan(LaunchAction.Install);
}
Ale gdzie zdefiniować tę zmienną? Chyba gdzieś w Product.wxs?