使用Windows Installer启动依赖于并行程序集的服务
我们正在更新针对Windows Server 2008的产品的.msi包的结构。我们安装的主要组件是作为Windows服务运行的应用程序。还有一个在安装期间运行的配置应用程序,用于设置服务使用的注册表项 服务和配置应用程序依赖于Microsoft C/C++运行时和MFC,它们作为合并模块包含在.msi中。C/C++运行时和MFC的程序集在InstallFinalize期间提交,这似乎阻止了使用Windows Installer提供的机制启动服务(这是否正确?),当然,如果在InstallFinalize之前运行配置应用程序,我们至少会看到配置应用程序出现并行错误 我们采取的方法是在InstallFinalize之后将配置应用程序作为“提交”自定义操作运行,并让该应用程序启动服务。这要求应用程序以提升的权限执行(为此,我们使用包含trustInfo节的清单)。这还要求.msi配置为在不模拟的情况下运行此应用程序(否则会混淆权限提升) 这是一个可以接受的方法吗?这可能是未来的证明吗?有什么需要注意的地方吗 这似乎是其他人遇到的问题: 有没有一种官方(或非官方)认可的方式来处理这些问题 作为本文的补充,是否有任何方法可以确保在安装过程中作为自定义操作运行的应用程序在启动时获得关注?以这种方式启动的应用程序似乎总是在安装程序后面弹出,并且安装程序保持焦点,这不是一种特别友好的效果 非常感谢, 布鲁斯使用Windows Installer启动依赖于并行程序集的服务,windows,installation,assemblies,windows-installer,side-by-side,Windows,Installation,Assemblies,Windows Installer,Side By Side,我们正在更新针对Windows Server 2008的产品的.msi包的结构。我们安装的主要组件是作为Windows服务运行的应用程序。还有一个在安装期间运行的配置应用程序,用于设置服务使用的注册表项 服务和配置应用程序依赖于Microsoft C/C++运行时和MFC,它们作为合并模块包含在.msi中。C/C++运行时和MFC的程序集在InstallFinalize期间提交,这似乎阻止了使用Windows Installer提供的机制启动服务(这是否正确?),当然,如果在InstallFin
在使用Windows Installer重新打包软件时,我使用了一个解决此类问题的解决方案:“引导”启动器。简而言之,您可以执行以下操作之一,而不是在运行时使用合并模块(所有模块将与所有其他安装的文件同时提交):
希望这有意义!我曾经生活和呼吸MSI,但现在已经不那么多了……在使用Windows Installer重新打包软件时,我使用了一个解决方案:一个“引导”启动器。简而言之,您可以执行以下操作之一,而不是在运行时使用合并模块(所有模块将与所有其他安装的文件同时提交):