【问题标题】:MSI installer. Error 1603微星安装程序。错误 1603
【发布时间】:2018-01-03 00:22:38
【问题描述】:

我正在使用 MSI 安装程序在 Windows 7 和 Windows Server 中将我的服务从一个版本升级到另一个版本。 Windows 7 机器中的升级工作正常,但在 Windows Server 2012 中失败。 这就是我正在做的 -

  1. 我正在使用 C# 代码停止旧版本服务。
NativeWinServiceMethod.ControlService(service, NativeWinServiceMethod.SERVICE_CONTROL.STOP, ref lpServiceStatus); 
  1. 然后使用 MSI 安装程序 exe 从安装路径中删除所有文件。

  2. 终于又安装了新版本。

此升级在 Windows 7 中运行良好,但在 Windows Server 中失败。 MSI 日志显示 1603

我现在知道它的原因,但需要一个解决方案 - 原因 -

MSI 安装程序正在卸载以前的版本并开始 安装新版本,但之前的版本可能是 从注册表中删除。由于从注册表中删除服务是 花费时间 - 新版本服务安装失败。

【问题讨论】:

  • 手动停止服务是一种不好的做法。您需要在ServiceControl 表中的 MSI 中注册您的服务,安装程序会为您完成。
  • 1603 几乎可以肯定是代码崩溃的结果。您的 MSI 工具中的 ServiceControl 是要使用的东西,您还没有说明服务实际上是什么,但有时服务名称会更改,而您的代码将找不到它。
  • 感谢您的回复-但是如果出现代码崩溃,它应该在所有环境中都失败,但安装只是在服务器机器上失败。这里的Service是自定义windows服务。
  • 我有更多关于这个问题的信息 - 编辑了我的帖子
  • 您不应该运行任何代码来安装或升级服务。您所需要的一切都在 MSI 中开箱即用,使用它将使您的设置非常可靠。您使用什么来生成 MSI?维克斯?安装屏蔽?

标签: c# windows-installer


【解决方案1】:

在 Windows 上安装时如果您收到 1603 错误,这可能意味着您未能安装 Visual Studio 可再发行软件包安装问题。也许卸载已经安装的版本并尝试重新安装可以解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    相关资源
    最近更新 更多