gpt4 book ai didi

wix - 如何让 [ProgramFilesFolder] 填充到 "C:\Program Files"刻录 UI 项目

转载 作者:行者123 更新时间:2023-12-04 21:42:17 27 4
gpt4 key购买 nike

我有一个带有以下变量的 Burn Bundle

<Variable Name="INSTALLFOLDER" Type="string "Value="[ProgramFilesFolder]" />



在我的 Bootstrap 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 View 中,它有一个绑定(bind)到 InstallDirectory 属性的文本框,我只看到“[ProgramFilesfolder]”,但我希望看到类似“C:\Program Files”的东西

我想最终得到类似以下内容的内容,它将使用默认安装文件夹填充我的安装目录文本框,并为用户提供在此处进行更改的选项。

<Variable Name='INSTALLFOLDER' Type='string' Value='[ProgramFilesFolder]$(var.AppName)' />


我可以使用 Net Framework 为我的 WPF UI 获取程序文件文件夹,但似乎我应该能够从 Wix Bundle 中获取它。此外,Wix 日志显示我正在从我的 UI 设置 INSTALLFOLDER 属性。

我的 Bootstrap 运行如下所示:
    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,但它似乎并没有解决这个确切的问题。

最佳答案

在您的 get 方法中,您应该能够使用它来获取属性的实际值:

get
{
if (_Engine.StringVariables.Contains("INSTALLFOLDER"))
return _Engine.FormatString("[INSTALLFOLDER]");
return string.Empty;
}

关于wix - 如何让 [ProgramFilesFolder] 填充到 "C:\Program Files"刻录 UI 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17901477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com