gpt4 book ai didi

c# - WiX:如何访问/更改托管 Bootstrap 中的安装目录?

转载 作者:太空狗 更新时间:2023-10-29 22:52:25 26 4
gpt4 key购买 nike

我正在创建一个带有自定义用户界面的 WPF 安装应用程序。我从 Bryan P. Johnston 的教程开始:http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/

在我看来,我有一个简单的 TextBox,它绑定(bind)到 MainViewModel 中的属性 InstallationPath

现在我希望在用户单击“安装”时使用此路径。为此,我有一个绑定(bind)到我的 InstallCommand 的按钮。调用以下方法(直接取自教程):

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

如何将软件包安装到我的属性 InstallationPath 的目录中?


编辑:

我在 Stackoverflow 上发现了一个类似的问题:

Specify the INSTALLLOCATION of packages in WiX inside the Burn managed bootstrapper

Bob Arnson 的答案

Use an MsiProperty child for each MsiPackage to specify INSTALLLOCATION=[BurnVariable]. Then use Engine.StringVariables to set BurnVariable.

现在,我想我可以像这样访问 InstallExecute 中的 StringVariables

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

但是在哪里定义这个变量呢?我猜是在 Product.wxs 的某个地方?

最佳答案

是的,只需在您的刻录 Bootstrap 中创建一个变量:

<Variable Name="BurnVariable"
bal:Overridable="yes" />

然后您可以将其作为参数传递给您的自举 msi 包:

<MsiPackage SourceFile="$(var.YourMsiProject.Installer.TargetPath)" Compressed="no">
<MsiProperty Name="INSTALLLOCATION" Value="[BurnVariable]" />
</MsiPackage>

关于c# - WiX:如何访问/更改托管 Bootstrap 中的安装目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15019135/

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