0

致敬 WIX 用户,

我最近在我们的一个补丁中遇到了一个奇怪的问题,我真的很迷茫。试图了解这个问题 3 天,但仍然一无所获,所以我以您的方式发送我的问题,希望有人能看到一些东西。它涉及已经看到 6 个成功补丁 (.msp) 的构建的修补程序 7,因此它之前具有功能性修补程序。

当我在安装该修补程序之后安装构建时,假设是 Windows Server 2003,一切似乎都正确安装。但是在服务器 2008 下,安装失败并显示错误消息:

“将补丁应用到文件 C:\Config.Msi\PT1E0D.tmp 时出错。它可能已通过其他方式更新,无法再被此补丁修改。”

在查看日志后,它似乎与安装在文件夹 bin 下的 dll Coveo.ces.web.search.dll 有关(而不是 GAC 中的副本)。但我的意思是,自原始安装以来,应该没有任何改变。

我认为这是由于使用的 Windows 安装程序版本(服务器 2003 下的 3.0 和服务器 2008 下的 4.0),但我还没有找到任何支持它的东西。

我以前遇到过这个错误,这是因为我们在 GAC 中安装了 2 个相同的文件,它们相互覆盖,但在这种情况下,它从未发生在第一个修补程序(总是第二个)上,它确实不会因系统而异。

PCP 文件与生成 msp 的 msi 非常相似。我已经将失败的修补程序 7 日志与成功安装修补程序 6 进行了比较,我认为这是 dll Coveo.ces.web.search 按时间顺序排列的主要区别,如果您需要完整的日志,请询问我很高兴把它寄给你。

谢谢你的帮助,尼克

4

1 回答 1

0

所以我的问题落入了人们不知道的晦涩难懂的东西的深处……是的!所以问题再次出现,类似的事情起初似乎无关,因为它是相反的情况。在服务器 2008 系统下安装时,我没有遇到任何问题,但是当我在 2003 服务器下安装时,我遇到了同样的问题。

“将补丁应用到文件 NAME 时出错。它可能已通过其他方式更新,无法再被此补丁修改。”

我做了一些研究,发现关于堆栈溢出的未回答问题。真可惜。

我没有放弃(我没有太多选择),经过几天的更多研究,我发现了以下内容:

Delta 补丁可能会在旧版操作系统上失败并出现此错误 - 它可能已通过其他方式更新,并且无法再被此补丁修改。

http://support.microsoft.com/kb/2545078

它回答了关于服务器 2003 下失败的问题(我们确实使用的是 MSI 5.0)。手动修复 msp 后,它起作用了。这是一种痛苦,但它可以解决它。

然后在阅读时更加注意这里的内容:

“针对 Vista 和更高版本的操作系统。旧版操作系统需要使用早期补丁创建资源创建的单独补丁。使用早期资源创建的补丁也会在 Vista 和更高版本的操作系统上出现类似问题,超出了本文的范围。 "

完全解决这个问题的最佳解决方案是使用整个文件而不是二进制补丁。

因此,如果您遇到类似问题,我希望该解决方案对您有所帮助。(很抱歉,如果我没有找到自己未解决的问题,我可能永远不会花时间更新它:)。)

尼克L

于 2013-06-03T19:06:54.030 回答