2012-03-11 17 views
3

インストール後にレジストリを変更する必要があるパッケージのインストールを合理化しようとしています。私は代わりにレジストリの変更をMSIに追加できるようにしたかったのです(私はコードを書きませんでした、単に既存のMSIを編集しようとしています)。OrcaでMSIを編集してインストール時にレジストリキーを追加する

誰でもこれを実行する方法の良い例を提供できますか?また、MSIの修正に関する書籍や、マイクロソフトの提供する内容を詳細に説明するサイトについては、どんな勧告も高く評価されます。

ありがとう、

答えて

4

MSDNは、ORCAを使用して、MSIパッケージを作成する方法の工程例によるステップを有しています。ステップの1つは、レジストリ情報を追加する方法です。あなたはそれを見つけることができますhere

+0

これは役に立ちました。私は問題を解決することができました。唯一の問題は、それを実行するための適切なコンポーネントを見つけることでした。私は基本的には、どのコンポーネントが最もレジストリキーを作成しているように見えて、そのコンポーネントを使用しているかを調べようとしました。いくつかの試行の後にはうまくいきましたが、簡単な方法がありますか? – LazarusG

+0

これはMSDNのコンポーネントルールに関する記事です:「コンポーネントにレジストリキーを追加する」ファイルを指すレジストリキーはそのファイルのコンポーネントに含める必要があり、他のレジストリキーはそれらを必要とするファイルと論理的にグループ化する必要があります。 – Ciprian

-1

Visual Studioでセットアップとデプロイメントプロジェクトを使用できます。 http://support.microsoft.com/kb/307353

http://msdn.microsoft.com/en-us/library/aa266445%28v=vs.60%29.aspx

+0

私はプログラムを書いていないとか、既存のMSIファイルを編集しようとしているだけでコードにアクセスできないと付け加えておきます。 – LazarusG

+0

セットアップおよび展開プロジェクトは、品質が低いためにMicrosoftによって殺されました.Visual Studioの次のリリースには含まれません。 –

1

あなたが探しているものは、トランスフォームと呼ばれています。参照:

Basic Patch and Transform Concepts in ORCA

は基本的にあなたがしてMSTファイルに保存し、あなたのレジストリ値でトランスフォームを作成するORCA(またはInstallShieldチューナーまたは同様のツール)を使用します。そこから、あなたが言うことができます。

ます。msiexec/I foo.msi TRANSFORMS = foo.mst

そして、あなたは、元のMSIを変更することなく、あなたの期待される動作が表示されます。また、ベンダーが新しいMSIを出荷する場合は、新しいMSIにMSTを適用することができます。 (YMMVは、MSIのリリースからリベースに変わったかどうかによって異なります)。

セットアップ開発者にとってトランスフォームを理解することは重要ですが、通常、質問はIT展開に関する質問であり、おそらくServerFaultに属します。

また、InstallShieldにTransformプロジェクトタイプがあることに注意してください。InstallShieldのUI全体を使用して、基になるMSIテーブルを直接(必要でない限り)処理せずにMSTを作成できます。

関連する問題