我有以下變量如何獲得[ProgramFilesFolder]填充到 「C: Program Files文件」 燒UI項目
<Variable Name="INSTALLFOLDER" Type="string "Value="[ProgramFilesFolder]" />
燒傷捆綁在下列財產我引導程序UI項目的主視圖模型
public string InstallDirectory
{
get
{
if (_Engine.StringVariables.Contains("INSTALLFOLDER"))
return _Engine.StringVariables["INSTALLFOLDER"];
return string.Empty;
}
set
{
if (_Engine.StringVariables.Contains("INSTALLFOLDER"))
{
_Engine.StringVariables["INSTALLFOLDER"] = value;
OnPropertyChanged("InstallDirectory");
}
}
}
在我的WPF鑑於具有結合到InstallDirectory財產我只看到一個文本框「[ProgramFilesfolder ]「,但我希望看到類似」C:\ Program Files「
我想最終得到類似下面的內容,它將填充我的安裝目錄文本框與默認的安裝文件夾,併爲用戶提供選項在那裏改變它。
<Variable Name='INSTALLFOLDER' Type='string' Value='[ProgramFilesFolder]$(var.AppName)' />
我可以使用.NET框架來獲取Program Files文件夾爲我的WPF UI,但好像我應該能夠從維克斯包得到它。此外,Wix日誌顯示我正在從我的用戶界面設置INSTALLFOLDER屬性。
我的引導程序運行是這樣的:
protected override void Run()
{
this.Engine.Log(LogLevel.Verbose, "Run has been called on the UI application.");
CurrentDispatcher = Dispatcher.CurrentDispatcher;
_MainWindow = new MainWindow(new MainWindowViewModel(this));
Engine.Detect();
_MainWindow.Show();
Dispatcher.Run();
Engine.Quit(0);
}
我認爲我可能需要聽上BootstrapperApplication一些事件發生後,我可以開槍屬性更改爲InstallDirectory財產,但沒有發現任何東西有趣的。
我已經完成了3.6版的開發者指南書,儘管最後兩章涉及了燒寫項目和WPF,但它似乎沒有解決這個問題。
哇,感謝戴夫!我一直在玩弄這個問題一個星期了,而我在任何地方都沒有看到這個語法。看起來實際是:_Engine.FormatString(「[INSTALLFOLDER]」); –
糟糕,我的錯誤。我更正了方法名稱。 –