有一个WPF设置应用程序。我有TextBox绑定到我的ViewModel中的属性ProductCode
。
如何在.msi项目中将包设置为“DEF
”属性?
我的代码:
WPF:
private void InstallExecute()
{
InstallEnabled = false;
Bootstrapper.Engine.StringVariables["ABC"] = "zyx";
MainWindowViewModel.PlanAction(LaunchAction.Install);
}
Bootstrapper:
<Variable Name="ABC" bal:Overridable="yes" />
<MsiProperty Name="DEF" Value="[ABC]"/>
.MSI:
<Property Id="DEF" />
项目与行动:
var test = session["DEF"].ToString(); //always gives empty string
答案 0 :(得分:1)
您需要在捆绑包中指定这样的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";
你的引导程序中的某个地方,显然是在你开始安装之前。