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";
在您的引导程序中的某个地方,显然是在您开始安装之前。