0

ISWiAuto18.ISWiProject のようなものを使用して、MSI (Installshield 2009) プロジェクトのさまざまなプロパティ (パス変数など) を更新するプログラム (C# dotnet) を作成しました。

 for (int count = 1; count <= m_ISWiProj.ISWiPathVariables.Count; count++)
                {
                    if (m_ISWiProj.ISWiPathVariables[count].Name == pathVar)
                    {
                        m_ISWiProj.ISWiPathVariables[count].Value = pathvarvalue;
                        m_ISWiProj.IswiAutoUpgradeEntries
                    }
        }

しかし、ISWiAuto18.ISWiProject を使用して Installshield プロジェクトのレジストリ キーの値を更新する方法が見つかりません。レジストリ値を更新する方法はありますか?

4

1 に答える 1

0

ISWiProject オブジェクトには、ISWiComponent オブジェクトへの参照を取得できる ISWiComponents コレクションがあります。これを行うと、ImportRegFile メソッドを使用して、追加のレジストリ データをコンポーネントにロードできます。それは、自動化インターフェースの能力の範囲についてです。

あなたが何をしているかをもっとよく理解していれば、もっとアドバイスできるのに。ISM のレジストリ テーブルで [PROPERTY] を使用してから、プロパティ値をビルドに渡すことを検討してください。これは、必要なバリエーション ポイントを取得する簡単な方法です。

もう 1 つの方法は、ISWiProject オブジェクトの UseXMLProjectFormat メソッドを使用して ISM を XML からバイナリに変換し、次に XML DOM を使用して ISM を操作する (DTD はラフですが実行可能です) か、バイナリ形式の場合は Windows インストーラ SQL クエリを使用することです。(WiX の DTF ライブラリ Microsoft.Deployment.WindowsInstaller はこれに適しています)

于 2012-09-20T12:31:29.520 に答える