如何让Burn检测到安装了所需的.NET 4.5框架,如果在启动我的自定义UI之前没有通知用户安装需要运行.NET 4.5?
如果没有先决条件检查,我的自定义UI(BootStrapperApplication)将无法加载.
我不想只安装它丢失的提示.
小智 7
当前接受的答案实际上不起作用,因为MSI属性在捆绑中不可用.
此示例检查.NET Framework 4.6.1.在Wix标记中添加对NetFxExtension和UtilExtension的引用:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
Run Code Online (Sandbox Code Playgroud)
定义一些指示您需要的.NET版本的属性(我通过浏览此repo找到了该版本):
<?define NetFx461MinRelease = 394254 ?>
<?define NetFx461WebLink = http://go.microsoft.com/fwlink/?LinkId=671728 ?>
Run Code Online (Sandbox Code Playgroud)
最后,在bundle中引用来自NetFx Extension的注册表检查,然后手动执行检查.
<util:RegistrySearchRef Id="NETFRAMEWORK45"/>
<bal:Condition Message="This product requires .NET Framework 4.6.1, please install it from <a href="$(var.NetFx461WebLink)">$(var.NetFx461WebLink)</a>.">
<![CDATA[NETFRAMEWORK45 >= $(var.NetFx461MinRelease)]]>
</bal:Condition>
Run Code Online (Sandbox Code Playgroud)