要求WIX Bootstrapper在.NET Framework安装后重新启动并跳过应用程序启动

时间:2018-12-12 13:47:50

标签: c# wix wix3.11

在此感谢Andrei的回答:

Install .NET Framework 4.7.2 (if needed) with WIX installer

我检查是否已安装.NETFramework 4.7.2并进行安装。我还有一个小问题……我的主应用程序具有启动该应用程序的安装后操作。在安装了4.7.2并重新引导系统之前,无法启动该应用程序。我可以简单地从我的应用程序安装程序中删除此安装后操作代码,但是如果已经安装了4.7.2并且没有理由重启的话,它确实启动了应用程序,那就太好了。

如何从我的应用程序安装程序“查看”到我的Bootstrapper项目中,并查看是否刚刚安装了.NET Framework?然后,我可以有条件地运行安装后操作。如果刚刚安装了4.7.2,我相信它会提示您重新启动,这是完美的选择。

欢迎提出其他解决问题的方法。我想处理问题的另一种方法是在安装.NET之后并在重新启动后安装我的应用程序,然后重新启动。但是我认为最好先安装所有内容然后重新启动。我认为这是一个非常普遍的问题,但是我没有找到任何解决方法。也许这太容易了!我是WIX的新手,并且不清楚如何从一个项目到另一个项目共享变量和信息。特别是从主应用程序安装程序获取引导程序信息。让我知道是否可以提供澄清或更多细节。
谢谢!

安装后的操作如下:

struct

跟进: 如果安装4.7.2所需的重新引导是自动发生的,而不是提示用户,那也很好。有没有办法做到这一点,或者是否已将其硬编码到4.7.2中。网络安装程序?

1 个答案:

答案 0 :(得分:1)

关于检查是否已安装.NET 4.6.1或更高版本,您可以添加以下内容:

<PropertyRef Id="WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED" />
  <Condition Message="$(var.ProductName) requires .NET Framework 4.6.1 or 
higher.">
<![CDATA[Installed OR WIX_IS_NETFRAMEWORK_461_OR_LATER_INSTALLED]]>
</Condition>

关于重新启动,您可以使用ForceReboot操作中的Supress属性。您可以为此查询下一个网址:

http://wixtoolset.org/documentation/manual/v3/xsd/wix/forcereboot.html

https://docs.microsoft.com/en-us/windows/desktop/Msi/reboot

https://docs.microsoft.com/en-us/windows/desktop/Msi/forcereboot-action