不支持卸载软件包
Un-installation of the package is not supported
我正在尝试从最新和以前的 MSI 生成 MSP,如下面的场景所示:
- 之前的 MSI 已固定并用作基准。
- 最新的 MSI 是通过每晚对包含的文件进行新修改而生成的,它会在每一代中获得一个新的 ProductVersion(服务器上的每个构建都会发生)。
- 机器上安装了作为基准的以前的 MSI;假设它的版本为 1.0.0.0.
- 第一次build生成的MSP安装成功,现在产品版本为1.0.0.1。
- 现在最新的 MSI 是 1.0.0.2,里面有新的修改,我们想生成一个新的 MSP 来得到这些修改到机器上,MSP 是根据之前的 MSI 1.0.0.0 和之前的 MSI 之间的差异生成的最新版本现在是 1.0.0.2.
问题是我们在尝试安装第二个 MSP 时遇到错误:
Un-installation of the package is not supported.
下面是错误日志:
MSI (s) (78:EC) [07:57:01:214]: Final Patch Application Order:
MSI (s) (78:EC) [07:57:01:214]: {C39177DC-24FD-432E-9D50-159E7E3CC62C} - C:\temp\[Package Name].msp
MSI (s) (78:EC) [07:57:01:214]: Other Patches:
MSI (s) (78:EC) [07:57:01:214]: Unknown\Absent: {9BEBFF56-7735-4618-BF01-01E96548FA81} -
MSI (s) (78:EC) [07:57:01:214]: Product: [Package Name] - Update '[Package Name]' could not be removed. Error code 1646.
Additional information is available in the log file C:\Users\Administrator\Desktop\msp.log.
MSI (s) (78:EC) [07:57:01:214]: Windows Installer removed an update. Product Name: [Package Name]. Product Version: 1.3.0.0.81.159. Product Language: 1033.
Manufacturer: [Company]. Update Name: [Package Name]. Removal success or error status: 0.
MSI (s) (78:EC) [07:57:01:214]: Product: [Package Name] - Update '{C39177DC-24FD-432E-9D50-159E7E3CC62C}' could not be installed. Error code 1646.
Additional information is available in the log file C:\Users\Administrator\Desktop\msp.log.
MSI (s) (78:EC) [07:57:01:214]: Windows Installer installed an update. Product Name: [Package Name]. Product Version: 1.3.0.0.81.159. Product Language: 1033.
Manufacturer: [Company]. Update Name: {C39177DC-24FD-432E-9D50-159E7E3CC62C}. Installation success or error status: 1646.
MSI (s) (78:EC) [07:57:01:214]: Product: [Package Name] -- Installation failed.
MSI (s) (78:EC) [07:57:01:214]: Windows Installer installed the product. Product Name: [Package Name]. Product Version: 1.3.0.0.81.159. Product Language: 1033.
Manufacturer: [Company]. Installation success or error status: 1646.
Uninstallation of the update package is not supported.
C:\Windows\Installerd9684f.msi
允许这样做吗?或者我们是否必须在每个 MSP 安装上更改以前的 MSI,以便我们让每个 MSP 只包含不同的文件?
错误 1646 表示您正在尝试卸载未标记为可卸载的补丁程序。没有足够的信息知道是否是这种情况,所以在这里进行一些猜测。
总的来说,您的方法看起来是正确的。基线始终为 1.0.0,补丁始终构建为该基线与每个新 MSI 文件之间的增量。您的评论“..MSP 是根据以前的 MSI 1.0.0.0 和最新的 1.0.0.2 之间的差异生成的。”有点误导,因为在您的示例中之前的 MSI 是 1.0.0.1。也许你的意思是基础 1.0.0.0。
所以您始终将补丁构建为基础 MSI 和最新 MSI 之间的增量,始终创建新的补丁 GUID,希望您不会更改 MSI ProductCode。
但是,您的 ProductVersion 示例与日志中的内容不匹配。产品版本:1.3.0.0.81.159 不是有效版本:
https://msdn.microsoft.com/en-us/library/aa370859(v=vs.85).aspx
所以你不能排除无效版本与错误相关的可能性,特别是如果所有实际 MSI 版本都是 1.3.0.0。
我正在尝试从最新和以前的 MSI 生成 MSP,如下面的场景所示:
- 之前的 MSI 已固定并用作基准。
- 最新的 MSI 是通过每晚对包含的文件进行新修改而生成的,它会在每一代中获得一个新的 ProductVersion(服务器上的每个构建都会发生)。
- 机器上安装了作为基准的以前的 MSI;假设它的版本为 1.0.0.0.
- 第一次build生成的MSP安装成功,现在产品版本为1.0.0.1。
- 现在最新的 MSI 是 1.0.0.2,里面有新的修改,我们想生成一个新的 MSP 来得到这些修改到机器上,MSP 是根据之前的 MSI 1.0.0.0 和之前的 MSI 之间的差异生成的最新版本现在是 1.0.0.2.
问题是我们在尝试安装第二个 MSP 时遇到错误:
Un-installation of the package is not supported.
下面是错误日志:
MSI (s) (78:EC) [07:57:01:214]: Final Patch Application Order:
MSI (s) (78:EC) [07:57:01:214]: {C39177DC-24FD-432E-9D50-159E7E3CC62C} - C:\temp\[Package Name].msp
MSI (s) (78:EC) [07:57:01:214]: Other Patches:
MSI (s) (78:EC) [07:57:01:214]: Unknown\Absent: {9BEBFF56-7735-4618-BF01-01E96548FA81} -
MSI (s) (78:EC) [07:57:01:214]: Product: [Package Name] - Update '[Package Name]' could not be removed. Error code 1646.
Additional information is available in the log file C:\Users\Administrator\Desktop\msp.log.
MSI (s) (78:EC) [07:57:01:214]: Windows Installer removed an update. Product Name: [Package Name]. Product Version: 1.3.0.0.81.159. Product Language: 1033.
Manufacturer: [Company]. Update Name: [Package Name]. Removal success or error status: 0.
MSI (s) (78:EC) [07:57:01:214]: Product: [Package Name] - Update '{C39177DC-24FD-432E-9D50-159E7E3CC62C}' could not be installed. Error code 1646.
Additional information is available in the log file C:\Users\Administrator\Desktop\msp.log.
MSI (s) (78:EC) [07:57:01:214]: Windows Installer installed an update. Product Name: [Package Name]. Product Version: 1.3.0.0.81.159. Product Language: 1033.
Manufacturer: [Company]. Update Name: {C39177DC-24FD-432E-9D50-159E7E3CC62C}. Installation success or error status: 1646.
MSI (s) (78:EC) [07:57:01:214]: Product: [Package Name] -- Installation failed.
MSI (s) (78:EC) [07:57:01:214]: Windows Installer installed the product. Product Name: [Package Name]. Product Version: 1.3.0.0.81.159. Product Language: 1033.
Manufacturer: [Company]. Installation success or error status: 1646.
Uninstallation of the update package is not supported.
C:\Windows\Installerd9684f.msi
允许这样做吗?或者我们是否必须在每个 MSP 安装上更改以前的 MSI,以便我们让每个 MSP 只包含不同的文件?
错误 1646 表示您正在尝试卸载未标记为可卸载的补丁程序。没有足够的信息知道是否是这种情况,所以在这里进行一些猜测。
总的来说,您的方法看起来是正确的。基线始终为 1.0.0,补丁始终构建为该基线与每个新 MSI 文件之间的增量。您的评论“..MSP 是根据以前的 MSI 1.0.0.0 和最新的 1.0.0.2 之间的差异生成的。”有点误导,因为在您的示例中之前的 MSI 是 1.0.0.1。也许你的意思是基础 1.0.0.0。
所以您始终将补丁构建为基础 MSI 和最新 MSI 之间的增量,始终创建新的补丁 GUID,希望您不会更改 MSI ProductCode。
但是,您的 ProductVersion 示例与日志中的内容不匹配。产品版本:1.3.0.0.81.159 不是有效版本:
https://msdn.microsoft.com/en-us/library/aa370859(v=vs.85).aspx
所以你不能排除无效版本与错误相关的可能性,特别是如果所有实际 MSI 版本都是 1.3.0.0。