3

orca を使用するのではなく、msidb.exe を使用して msi データベース テーブルのエントリを追加または削除するにはどうすればよいですか。以下のようなコマンドラインはありますか?

msidb.exe [msipath][importingFilepath]

ファイルが追加されたら、msi テーブルの対応するエントリを更新する必要があります

ありがとう、

4

2 に答える 2

6

C#タグを含めたので、C#でこれを行いたいと思います。WiX には、優れた MSI 相互運用性を提供する Deployment Tools Foundation (DTF - スタート メニューに SDK chm があります) と呼ばれるコンポーネントがあります。

このことを考慮:

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 ファイルの最終的なサイズを縮小します。
  • ローカリゼーション情報をインストール データベースに追加します。
  • データベースのコード ページを決定します。
  • データベースのコード ページを設定します。
  • データベース列の制限を増やす。作成者は、標準テーブルの列の列データ型、NULL 可能性、またはローカリゼーション属性を変更することはできません。

Windows インストーラー データベースのテキスト アーカイブ ファイルは、ファイル名拡張子が .idt で、アーカイブ ファイル形式です。

インストール パッケージを作成および変更するには、Orca やサードパーティ ツールなどの Windows インストーラ テーブル編集ツールを使用する必要があります。

于 2012-12-03T18:36:56.733 に答える