3

如何使用 msidb.exe 而不是使用 orca 添加或删除 msi 数据库表的条目。是否有类似下面的命令行

msidb.exe [msipath][importingFilepath]

添加文件后,应更新 msi 表中的相应条目

谢谢,

4

2 回答 2

6

我假设您想在 C# 中执行此操作,因为您包含了 C# 标记。WiX 有一个名为 Deployment Tools Foundation 的组件(DTF - 您可以在开始菜单中找到 SDK chm),它提供了出色的 MSI 互操作性。

考虑一下:

using Microsoft.Deployment.WindowsInstaller;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            using( var database = new Database(@"C:\test.msi", DatabaseOpenMode.Direct))
            {
            }
        }
    }
}

这为您提供了通过 SQL 查询对数据库执行任何操作的起点。

于 2012-12-03T14:49:44.397 回答
1

尽管诸如msidb.exe之类的工具能够导出和导入文本存档文件,但文本存档文件只能用于以下特定目的。

  • 文本存档文件可以与版本控制系统一起使用。
  • 消除浪费的存储空间并减小 .msi 文件的最终大小。
  • 将本地化信息添加到安装数据库。
  • 确定数据库的代码页。
  • 设置数据库的代码页。
  • 增加数据库列的限制。作者不能更改标准表中任何列的列数据类型、可空性或本地化属性。

Windows Installer 数据库的文本存档文件带有 .idt 文件扩展名,并且采用存档文件格式

您应该使用 Windows Installer 表编辑工具(例如 Orca 或第三方工具)来创建和修改安装包。

于 2012-12-03T18:36:56.733 回答