更改托管引导程序 (wpf) 中的属性 (msi)



A 有一个 WPF 安装应用程序。我有绑定到视图模型中的属性ProductCode的文本框。

如何使包在项目中设置为"DEF"属性.msi?

我的代码:

可湿性工作基金会:

 private void InstallExecute()
        {
            InstallEnabled = false;
            Bootstrapper.Engine.StringVariables["ABC"] = "zyx";
            MainWindowViewModel.PlanAction(LaunchAction.Install);
        }

引导程序:

<Variable Name="ABC" bal:Overridable="yes" />
<MsiProperty Name="DEF" Value="[ABC]"/>

。.MSI:

 <Property Id="DEF" />

项目与行动:

var test = session["DEF"].ToString(); //always gives empty string

您需要在捆绑包中像这样指定 MsiProperty:

<MsiPackage Id='MyApp' Description='My Application' SourceFile="$(var.SetupMyApp.TargetPath)">
  <MsiProperty Name="INSTALLFOLDER" Value="[MyAppInstallLocation]"/>
</MsiPackage>

为它添加一个刻录变量,也在捆绑包中:

<Variable bal:Overridable="yes" Name="MyAppInstallLocation" Value=""/>

然后

Bootstrapper.Engine.StringVariables["MyAppInstallLocation"] = "C:MyApp";

在您的引导程序中的某个地方,显然是在您开始安装之前。

最新更新