我有一个使用 InstallShield 2009 构建的 MSI 安装,它通过在包含服务 exe 的组件上将“.NET 安装程序类”设置为“是”来安装 .NET 服务。包含文件和 exe 的基本安装安装正常。我创建了一个小的更新 MSP,它正在更新原始安装中的服务 exe 文件。当我在包含基本安装的系统上运行 MSP 时,我收到错误 1001,因为它试图在小更新 MSP 安装期间重新安装服务。
Flexera 对这个问题的官方回应是,如果 .NET 可执行文件需要更新,那么应该将组件“.NET Installer Class”设置为 No 并创建自己的自定义操作。Flexera 还承认,如果您将“.NET 安装程序类”设置为“是”,他们不会在任何地方记录您无法创建安装的 MSP 更新。由于它已经发布并且需要针对它创建更新,因此无法返回并更改基本安装。我自己想出了一个解决方法,在 MSP 更新中包含一个自定义操作,该操作会在安装 MSP 期间卸载该服务。这会安装小更新 MSP,但此解决方法不适用于从 ARP 卸载 MSP。
我需要知道在未来安装中解决此问题的最佳方法。如何安装 .NET 服务,以便以后使用小型更新 MSP 轻松更新服务?