wix - 如何确保我的 MSI 安装了降级的库?

标签 wix windows-installer

我有一个 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 强制覆盖所有文件,而不管版本如何?

如果我从安装程序中删除一个文件(如果在运行时存在会导致错误的文件),那么在安装程序之后运行程序的唯一方法是先删除所有文件吗?

最佳答案

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

关于wix - 如何确保我的 MSI 安装了降级的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122136/

相关文章:

installation - 如何使用 Inno Setup 安装程序升级 MSI 安装?

windows-installer - Installshield:它可以生成.msi 文件吗?

wix - MSI 安装程序扩展如何定位另一个应用程序的安装目录?

c++ - 列表框属性值未出现在 C++ 自定义操作 Wix 中?

WiX ICE30 错误但目录正确

c# - 如何查找使用 C# 安装的应用程序的版本

msbuild - 使 WIX 安装程序将文件放置在 AppData 中

Wix Copyfile 和组件顺序

c# - 如何使用 WiX Burn MBA bundle 在 MajorUpgrade 期间检测当前安装的功能?

python - 从命令行获取 msi 产品名称、版本