MSI 错误 2920:通过 WiX/MSP 修补时未指定文件 [2] 的源目录

发布于 2024-12-29 02:57:55 字数 362 浏览 0 评论 0原文

目前我们有一个场景,有一个 CD 版本 (A)、一个中间补丁 (B) 和一个即将发布的补丁 (C)。

安装 (A) 并直接修补到 (C) 工作正常,但是当用户修补到 (B),然后修补到 (C) 时,他们在“复制新文件”操作期间收到错误 2920(序列中的第一个文件) )。

有趣的是,这个问题不会出现在 Windows 7 上,但会出现在 Win2K3 和 XP 上,这表明不同版本的 Windows Installer 对这种情况的处理方式有所不同。

当前的补丁实现会创建管理安装、为 MSP 准备 WiX 源文件、创建 PCP 文件,然后创建/签署 MSP 文件。

我已经查遍了,还没有确定的原因/解决方案。

感谢您抽出时间。

Currently we have a scenario where there is a CD release (A), a middle patch (B) and a patch about to go out (C).

Installing (A) and patching directly to (C) works fine, but when the user patches up to (B) and then up to (C), they get error 2920 during the "Copying new files" action (first file in the sequence).

What's interesting is this issue doesn't occur on Windows 7, but occurs on Win2K3 and XP, which suggests to me that the different versions of Windows Installer are handling this scenario differently.

The current patch implementation creates admin installs, Prepares WiX source files for the MSP, creates the PCP file, then creates/signs the MSP file.

I've looked all over there hasn't been a determined cause/solution.

Thanks for your time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人间☆小暴躁 2025-01-05 02:57:55

我从未使用 Wix 创建过补丁,但我使用其他创作工具创建过补丁,据我所知,Windows Installer 需要一组必须遵循的基本规则,才能正确创建路径。其中一位这样说:“不要更改文件柜中文件的顺序。”。你检查过你的包裹里有这个吗?

有关补丁所需规则的更多详细信息可以在此处找到:
http://msdn.microsoft.com/en-us/library/aa367850.aspx

I have never created a patch with using Wix, but I did with other authoring tools, and from what I know Windows Installer requires for a set of basic rules that must be followed in order for the path to be correctly created. One of them says this: "Do not change the order of files in a cabinet.". Have you checked that in your packages?

More details about the rules required for a patch can be found here:
http://msdn.microsoft.com/en-us/library/aa367850.aspx

木緿 2025-01-05 02:57:55

在与微软技术人员通电话后,事实证明,无论你是从基线补丁还是中间补丁开始,这个问题都会发生。该问题本身表现为 Windows Installer 版本不兼容。

基本上早在我们发布 CD 版本时,我们就使用 VS2008。从那时起我们迁移到VS2010,最新的补丁是用VS2010中完成的文件制作的。 VS2010(据技术人员告诉我)依赖于 Windows Installer 4.5。

早期的操作系统(例如 2K3 和 XP)附带早期版本的 Windows Installer,因此会出现错误。

我最终只是引导了 Windows Installer 4.5 软件包并调整了 lua 脚本以更加个性化用户体验。

After getting off the phone with Microsoft tech, it turns out that the issue happens regardless if you go from the baseline or middle patch. The issue itself manifested itself in the form of a Windows Installer version incompatibility.

Basically back when we released the CD release, we used VS2008. We migrated to VS2010 since then and the latest patch was made with files done in VS2010. VS2010 (from what the tech told me) has a dependency on Windows Installer 4.5.

Earlier OS's (such as 2K3 and XP) come with earlier versions of the Windows Installer, and therefore gave the error.

I ended up just bootstrapping the Windows Installer 4.5 packages and tweaking the lua scripts to personalize the user experience a bit more.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文