“降级”MS dll 在升级时消失 - Windows Installer

2023-12-06

我们开发了一个通过 Windows Installer 分发的应用程序,该应用程序是使用 WiX 创建的,我们的客户可以从任何旧版本升级到最新版本。

然而,我们的最新版本删除了 2 个 dll,这只能通过重新安装来纠正。

有关 NuGet 包的详细信息

Microsoft.IdentityModel.协议.扩展升级自Nuget版本1.0.2.206221351和文件版本 1.0.20622.1351 至Nuget版本1.0.4.403061554和文件版本 1.0.4.54。

文件版本控制也发生了类似的变化System.IdentityModel.Tokens.Jwt from Nuget版本4.0.2.206221351 to Nuget版本4.0.4.403061554.

因此,通过更改文件版本的计算方式,MS 有效地将版本更改为之前的降级版本(从构建版本的 20622 更改为 4)。

为什么升级时 dll 被删除

有人称其为错误,有人称其为功能,但发生的情况是,MSI 有一个步骤,它会记录所有需要升级的文件,然后卸载当前版本,然后仅安装需要升级的文件。版本没有变化或升级 - 任何降级都被忽略。

问题:我们如何解决这个问题?

我们正在将该产品运送给许多不同的客户,他们的技术技能也各不相同,因此升级效果更好,否则我们将面临大量支持问题。有什么我可以改变的,而不需要实际禁用诸如 MSI 在出现错误时回滚的功能之类的功能,我认为这是对其他解决相同问题的人的权衡。


你有几个选择。一是更改您计划删除现有产品的位置。另一种方法是使用 REINSTALLMODE=AMUS 而不是默认的 OMUS。另一种方法是对有问题的 DLL 进行版本控制,以便它们始终能够重新安装。 (创作文件元素,使版本为 65535.0.0.0 或类似的值。)

这是一个 MSI 功能...该错误在于 Nuget 发布了一个较低版本的新 DLL #。这违反了 MSI 的组件规则和默认文件版本控制规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“降级”MS dll 在升级时消失 - Windows Installer 的相关文章

随机推荐