【问题标题】:Require WIX Bootstrapper to reboot after .NET Framework installation and skip application launch.NET Framework 安装后需要 WIX Bootstrapper 重新启动并跳过应用程序启动
【发布时间】:2018-12-12 13:47:50
【问题描述】:

感谢安德烈在这里的回答:

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 新手,不清楚如何将变量和信息从一个项目共享到另一个项目。特别是从主应用程序安装程序获取引导程序信息。让我知道我是否可以提供澄清或更详细的信息。
谢谢!

安装后操作如下所示:

<CustomAction Id="PostInstallAction"
      Return="check"
      Execute="immediate"
      BinaryKey="MyAppInstaller.CustomActions.CA.dll"
      DllEntry="PostInstallAction" />

    <InstallExecuteSequence>
      <Custom Action="PreInstallAction" Before="InstallValidate"  />
      <Custom Action="PostInstallAction" After="InstallFinalize"  />
    </InstallExecuteSequence>

// follow function abbreviated (no logging and try/catch).In file customactions.cs
public static ActionResult PostInstallAction(Session session)
        {                             
                if (!Process.GetProcessesByName(MyAppLauncherFileName).Any())
                    Process.Start(ConfigurationManager.AppSettings[MyAppLauncherExePath]);

                return ActionResult.Success;              
        }

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

【问题讨论】:

    标签: c# wix wix3.11


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 2020-10-09
      • 2021-06-07
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多