コンポーネントの指定
Windows インストーラーでは、Windows インストーラー コンポーネントと呼ばれるリソースのブロックをインストールおよび削除します。 詳細については、「コア テーブル グループ」と「コンポーネントと機能」を参照してください。
このセクションでは、メモ帳の例で使用したコンポーネントに関する情報を、「空のデータベースのインポート」で作成した Component テーブルに追加します。 詳細については、「アプリケーションをコンポーネント別に整理する」および「インストーラー コンポーネントの定義」を参照してください。
メモ帳のサンプルでは、8 つのコンポーネントを使用してリソースを制御します。
コンポーネント | リソース |
---|---|
Baseball | Baseball.txt、sBaseball |
コンサート | Concert.txt、sConcert |
Dance | Dance.txt、sDance |
Football | Football.txt、sFootball |
ヘルプ | Help.txt、sHelp |
January | January.txt、sJanuary |
NewYears | NewYears.txt、sNewYears |
メモ帳 | Redpark.exe、Readme.txt、sReadme、sNotepad、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Notepad Sample |
すべてのコンポーネントは、一意のコンポーネント ID GUID で識別する必要があります。 サンプルを再現する場合は、次のテーブルで同じコンポーネント ID GUID を再利用しないでください。 代わりに、Guidgen.exe などのユーティリティを使用して、コンポーネントの新しい GUID を生成してください。
Windows インストーラー GUID のデータ型と一致する GUID 文字列を使用してください。 詳細については、「コンポーネント コードの変更」および「コンポーネント ルールが壊れた場合はどうなりますか?」を参照してください。
Orca または別のデータベース エディターを使用して、MNP2000.msi の空の Component テーブルに次のデータを入力します。 以下の ComponentId 列に示す GUID は、ご使用のサンプルで再利用しないでください。
コンポーネント | ComponentId | Directory_ | 属性 | 条件 | Keypath |
---|---|---|---|---|---|
Baseball | {F54ABAC0-33F2-11D3-91D7-00C04FD70856} | SPORTDIR | 2 | Baseball.txt | |
コンサート | {76FA7A80-33F6-11D3-91D8-00C04FD70856} | ARTSDIR | 2 | Concert.txt | |
Dance | {CCF834A1-33F8-11D3-91D8-00C04FD70856} | ARTSDIR | 2 | Dance.txt | |
Football | {CCF834A0-33F8-11D3-91D8-00C04FD70856} | SPORTDIR | 2 | Football.txt | |
ヘルプ | {AD10EB50-33C1-11D3-91D6-00C04FD70856} | NOTEPADDIR | 2 | Help.txt | |
January | {CF0BC690-33C9-11D3-91D6-00C04FD70856} | MONDIR | 2 | January.txt | |
NewYears | {A42D9140-33D8-11D3-91D6-00C04FD70856} | HOLDIR | 2 | NewYears.txt | |
メモ帳 | {19BED232-30AB-11D3-91D3-00C04FD70856} | NOTEPADDIR | 2 | Redpark.exe |
各コンポーネントのソース ディレクトリとターゲット ディレクトリは、Directory_ 列に入力された値によって指定されます。 インストーラーでは Directory テーブルの情報を使用して、このディレクトリの場所を解決します。 インストーラーでは、KeyPath 列で指定されたキー パス ファイルを使用して、各コンポーネントを検出します。 サンプルではリモート実行属性が設定されているため、コンポーネントはソースから実行することも、ローカルで実行することもできます。