MSI安装程序远程失败 – “较新的版本”已经安装,即使在卸载之后

相当奇怪的行为,我已经开始与我们的自动化构build。 我有一个非常简单的Windows服务.msi(在Visual Studio 2010中构build),在我们的中央构build/ repo服务器上编译,上传到我们的dev服务器,然后从build / repo服务器(命令行通过ssh使用plink)在开发服务器上。

这个工作很长一段时间,直到最近自动化版本开始失败100%的时间。 msi的详细安装日志指出“此产品的较新版本已安装”。 我远程进入开发服务器,检查了微星,并没有问题手动安装它自己在服务器上(通过命令行和GUI)。 然后,我从“程序和function”窗口中卸载了服务,validation了这些文件和条目已被删除,再次尝试从构build服务器远程安装它,并再次得到完全相同的错误。 该服务只是不远程安装,因为它认为一个新的仍然安装(即使我已经卸载它),但我可以自己手动。

编辑

添加一些日志文本。

Action start 15:47:16: AppSearch. MSI (s) (B8:F0) [15:47:16:265]: Doing action: FindRelatedProducts Action ended 15:47:16: AppSearch. Return value 1. MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B MSI (s) (B8:F0) [15:47:16:267]: Using cached product context: User non-assigned for product: BA4139E4B48F8264ABFF918A7B583A0B Action start 15:47:16: FindRelatedProducts. MSI (s) (B8:F0) [15:47:16:267]: PROPERTY CHANGE: Adding NEWERPRODUCTFOUND property. Its value is '{4E9314AB-F84B-4628-BAFF-19A8B785A3B0}'. MSI (s) (B8:F0) [15:47:16:268]: Doing action: ERRCA_CANCELNEWERVERSION Action ended 15:47:16: FindRelatedProducts. Return value 1. MSI (s) (B8:F0) [15:47:16:269]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'ERRCA_CANCELNEWERVERSION' Action start 15:47:16: ERRCA_CANCELNEWERVERSION. MSI (s) (B8:F0) [15:47:16:269]: Product: Product.Services -- Unable to install because a newer version of this product is already installed. Unable to install because a newer version of this product is already installed. Action ended 15:47:16: ERRCA_CANCELNEWERVERSION. Return value 3. Action ended 15:47:16: INSTALL. Return value 3. 

MSI(B8:F0)[15:47:16:267]:PROPERTY CHANGE:添加NEWERPRODUCTFOUND属性。 它的值是“{4E9314AB-F84B-4628-BAFF-19A8B785A3B0}”。

听起来好像机器上有一个旧版本的安装程序,尽管它可能不会显示在程序和功能中。 我会尝试以下看看它是否修复你的问题:

  1. 尝试通过命令行卸载msiexec /x {4E9314AB-F84B-4628-BAFF-19A8B785A3B0}

  2. 搜索注册表中的产品代码{4E9314AB-F84B-4628-BAFF-19A8B785A3B0} ,查看是否存在以前安装的残留。 如果您找到该产品代码,您可以尝试手动删除这些条目(由您自己承担风险),以查看是否可以解决您的问题。

我正在收到与@Tom相同的确切错误:“ – 已安装的较新版本”

我可以通过以下确切步骤进行修复:1.使用详细日志记录启用MSI

 msiexec /i "{Path to msi}.msi" /L*V "c:\myLog.log" 

2.打开上述命令生成的日志文件,并复制行中显示的GUID

 FindRelatedProducts: Found application: {FB0B54D2-9C47-4196-BF0E-B6EEBF754E22} 
  1. 使用复制的GUID,运行以下命令

    msiExec / x {FB0B54D2-9C47-4196-BF0E-B6EEBF754E22}

  2. 此时,旧服务被卸载,然后我开始安装与MSI的服务没有任何问题。 希望这可以帮助。