通过MSI属性指定MSI转换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过MSI属性指定MSI转换相关的知识,希望对你有一定的参考价值。

我有一个MSI转换,我使用WiX二进制元素嵌入了MSI文件中的资源。我希望通过在MSI上指定TRANSFORMS属性,使人们能够应用嵌入式转换。

使用ORCA,我添加TRANSFORMS属性,并指定要使用的转换。但是,变换实际上并不起作用。与msiexec /i product.msi /lv log.txt一起运行,我看到一条线说

MSI (c) (0C:FC) [11:27:06:957]: PROPERTY CHANGE: Deleting TRANSFORMS property. Its current value is ':Product.mst'.

如何让MSI使用我指定的转换?

编辑:我只是尝试手动指定TRANSFORMS属性,如下所示:msiexec /i Product.msi /lv Log.txt TRANSFORMS=:Transform.mst,msiexec抱怨无法找到转换。此外,如果我使用7-Zip提取MSI的内容,则转换将列为“Transform.binary”。这可能是问题吗?

答案

看到:

_Storages Table (Windows)

你不会在ORCA中看到这个表,因为它是临时表。但是,如果您运行SQL查询,您将获得返回的名称。这就是你的TRANSFORMS属性需要使用的东西。

以上是关于通过MSI属性指定MSI转换的主要内容,如果未能解决你的问题,请参考以下文章

将 MSIUSEREALADMINDETECTION 添加到 MSI 的脚本

使用可覆盖属性时如何按命令行卸载 MSI 包?

是否可以在引导程序中的检测阶段之前从链中的 MSI 文件中读取 MSI 属性?

“用户''登录失败。”使用 EF 代码优先实现通过 MSI 访问 Azure SQL DB 时出现 SqlException

怎样在VB,net中,运行指定程序

获取已安装 Msi 的产品代码