Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用WixBurn智能安装.NET4.x_Wix_Windows Installer_Wix3.6_Bootstrapping_Burn - Fatal编程技术网

如何使用WixBurn智能安装.NET4.x

如何使用WixBurn智能安装.NET4.x,wix,windows-installer,wix3.6,bootstrapping,burn,Wix,Windows Installer,Wix3.6,Bootstrapping,Burn,安装可以使用.NET 4.0或4.5的应用程序时,安装必备的.NET framework时的最佳做法是什么?您如何使用Burn-in WiX实现它 以下是我知道的选项和权衡: 选项1:安装.NET 4.0(根据需要) 优点:未知(除了Windows XP,这是唯一的选择) 选项2:如果.NET 4.5不存在,则安装.NET 4.5 优点:用户以后不必安装.NET4.5 应用程序。当用户稍后更改.NET版本时,应用程序将不会发生.NET版本更改 升级到.NET 4.5。应用程序的性能立即得到

安装可以使用.NET 4.0或4.5的应用程序时,安装必备的.NET framework时的最佳做法是什么?您如何使用Burn-in WiX实现它

以下是我知道的选项和权衡:

选项1:安装.NET 4.0(根据需要)

  • 优点:未知(除了Windows XP,这是唯一的选择)
选项2:如果.NET 4.5不存在,则安装.NET 4.5

  • 优点:用户以后不必安装.NET4.5 应用程序。当用户稍后更改.NET版本时,应用程序将不会发生.NET版本更改 升级到.NET 4.5。应用程序的性能立即得到改善 .NET 4.5
选项3:仅当两个.NET 4.x都不存在时才安装.NET 4.5

  • 优点:如果使用.NET 4.0,则部署速度比选项2快得多 已安装。如果不是,那么选项2的优点是什么 申请

就我所知,如果性能改进很重要,那么最佳实践将是选项2,如果平均部署速度很重要,那么最佳实践将是选项3。这听起来对吗?我是否错过了选项1的任何优势?最重要的是,如果选项3确实有意义,那么在从web安装.NET时如何使用Burn实现它?

下面是我如何检测捆绑包中的.NET。注意检测条件和安装条件的使用。DetectCondition将检查是否安装了特定的软件包,而InstallCondition可用于覆盖DetectCondition以指定安装软件包的时间。例如,在XP上无法安装.NET 4.5,因此我的InstallCondition会阻止在这种情况下安装


然后,如果要安装其中一个软件包,只需在链中引用它:


关于您的具体问题,我将安装应用程序测试所针对的任何框架版本。如果针对.NET 4.0和.NET 4.5进行测试,我认为这是一个判断调用,但是我会尽量简化安装过程。因此,如果.NET4.0已经安装,并且应用程序不需要.NET4.5,我就不会安装它


此外,如果您使用的是自定义托管引导程序应用程序,那么选项2也有一个缺点。假设您已安装.NET 4.0,并且托管引导程序需要.NET 4.0(或更高版本)。运行安装程序时,它将安装.NET 4.5,它将取代.NET 4.0,迫使安装程序中途重新启动,因为它在更新.NET framework的同时正在使用它。同样,只有在您使用自己的自定义托管引导程序时,这才是一个问题。

在我的情况下,我希望通过WixNetfxExtension的NetFx45Web包组使用web安装程序。我相应地更新了问题。使用内置程序包组时是否存在与InstallCondition等效的条件?InstallConditions位于程序包本身(ExePackage、MsiPackage)上。此外,当前的WiX手册没有列出任何.NET 4.5属性来说明是否安装了它。我认为这些限制就是我没有使用NetfxExtension进行设置的原因。在我看来,如果您想使用NetfxExtension安装.NET 4.5,您可能只需添加NetFx45Web包组,然后对安装设置一个条件,使其仅在Vista或更高版本上运行。然后,如果需要安装XP,请创建单独的项目或配置以生成单独的安装程序。有没有一种不带NetfxExtension的web安装.NET的方法不太困难?是的。调用web安装程序而不是完整的.NET安装程序。您可以从这里下载: