使用 MST 转换升级和添加新功能

Upgrade and add new features with MST transform

我正在尝试更新我的应用程序,同时还启用了一些新功能。以前版本也有的功能,只是被关闭了。

我使用 Orca 创建了一个 MST 文件,其中我将 INSTALLEVEL 设置为 4,所有我想安装的功能设置为 1,我不想安装的设置为 5 或更高。一切正常。

在此之后,我想以与安装相同的方式升级应用程序,不同之处在于我想使用 INSTALLEVEL 打开其他功能。安装完成后,我的应用程序实际上是新版本,但缺少新添加的功能。

我可以在命令行中使用 ADDLOCAL=feature1,feature2 来解决这个问题,但我会避免这样做,因为在大规模情况下,此解决方案将不起作用。

我已经尝试在 msi 的 属性 table 中添加 ADDLOCAL 并使用 Orca 从中生成一个 mst 文件。这样做会安装功能,但此解决方案的问题在于:

a) MSDN doesn't recommend

b) 安装后,如果我转到 Add/Remove 程序并尝试更改应用程序,我不能再这样做了,因为它处于某种修复模式...

所以我的问题是,如何使用 mst 文件更新产品以启用其中的新功能?

编辑

值得注意的是,如果某个功能之前在升级后安装过,那么它将会存在,只有之前没有安装过才会失败。

您可以尝试在 standard action MigrateFeatureStates 上设置一个假条件以永不执行。我怀疑这是覆盖功能安装级别的那个。 (您可以通过创建详细日志并在其中搜索操作名称来检查这一点