【问题标题】:How can I make sure a downgraded library is installed by my MSI?如何确保我的 MSI 安装了降级库?
【发布时间】:2013-01-03 00:18:50
【问题描述】:

我有一个设置我的应用程序的 MSI。它只有一个组件并且仅安装到 %PROGRAMFILES%(无共享二进制文件)。简化,看起来是这样的

Msi file, Monday build:
    Program.exe  (v1.0.0)
    ThirdPartyLibrary.dll  (v2.0.1)

现在,如果我发现程序中的错误是由我将 ThirdPartyLibrary dll 从 v2.0.0 升级到 v2.0.1 引起的,从而恢复对 v2.0.0 的引用,我的 MSI 似乎不会自动替换安装目录下的文件?

Msi file, Tuesday build:
    Program.exe  (v1.0.0)
    ThirdPartyLibrary.dll  (v2.0)  <- downgraded

确保程序文件夹始终包含我的设置中的二进制文件的最佳做法是什么?我应该 a) 在复制新文件之前擦除安装目录中的所有内容吗?有没有我可以使用的选项(在 Wix 中)使 msi 强制覆盖所有文件而不管版本如何?

如果我从设置中删除一个文件(如果在运行时存在会导致错误的文件),那么在设置之后拥有一个工作程序的唯一方法是先删除所有文件怎么办?

【问题讨论】:

  • 从安装程序的角度来看,星期二的构建应该包含 v2.0.2 作为 v2.0.1 的修复程序。现在,如果您安装了周一 msi,则无需在周二执行任何操作,您已经拥有更新版本的 dll.... 我假设您知道 tutorial
  • 问题是没有 v2.0.2,我无法制作一个,因为它是一个第三方库,我发现升级导致我的应用程序出现问题。所以我需要的是我的应用程序的新(星期二)版本包含第三方库的旧版本(v2.0.0)。我在教程中找不到这个,你知道那里有提到吗?这一定是一个相当普遍的问题?
  • 我想替换我们自己应该可以:wix.tramontana.co.hu/tutorial/upgrades-and-modularization/…你也可以尝试加入wix-users mailing list

标签: wix windows-installer


【解决方案1】:

您可以使用 msi 技巧。在 msi 数据库的文件表中,编辑版本列并输入更高的版本,例如 3.0。这样您就可以利用文件版本控制规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 2014-10-21
    相关资源
    最近更新 更多