MsiAssembly テーブル
MsiAssembly テーブルは、Microsoft .NET Framework アセンブリと Win32 アセンブリの Windows インストーラー設定を指定します。 詳細については、「アセンブリのグローバル アセンブリ キャッシュ へのインストールと Win32 アセンブリ のインストール」を参照してください。
Windows XP では、Windows インストーラーは Win32 アセンブリを サイド バイ サイド アセンブリとしてインストールできます。 詳細については、side-by-side Assembly APIを参照してください。
Windows 2000: この機能はサポートされていません。
MsiAssembly テーブルには、次の列があります。
コラム | 種類 | 鍵 | 許容 |
---|---|---|---|
コンポーネント_ | 識別子の | Y | N |
特徴_ | 識別子の | N | N |
File_Manifest | 識別子の | N | Y |
File_Application | 識別子の | N | Y |
属性 | 整数 の | N | Y |
列
-
Component_
-
このアセンブリを含む Windows インストーラー コンポーネントを指定する コンポーネント テーブル のキー。
このフィールドの値を null に設定することはできません。 コンポーネント テーブルのコンポーネント KeyPath フィールド null にすることはできません。
Win32 アセンブリの場合、コンポーネント KeyPath を、File_Manifestで指定されたマニフェスト ファイルにすることはできません。 マニフェストには、.NET Framework またはポリシー アセンブリのキーパスを指定できます。
-
Feature_
-
フィーチャ テーブルにキーを押します。
機能のインストールによってアセンブリをインストールする必要がある場合、Windows インストーラーは、このフィールドが指す機能をインストールします。
-
File_Manifest
-
.NET Framework アセンブリまたは Win32 アセンブリのマニフェストを含むファイルを指定する ファイル テーブル の外部キー。
Win32 アセンブリの場合は、コンポーネント テーブルの KeyPath フィールドで、このファイルをコンポーネント キー パス ファイルとして指定しないでください。
-
File_Application
-
アセンブリをプライベートな場所にインストールするには、このフィールドにアセンブリ コンポーネントのキー パス ファイルを入力します。
これは、コンポーネント テーブルの KeyPath フィールドに表示される値です。 インストーラーは、ディレクトリ テーブルで指定されたコンポーネントのディレクトリ構造にアセンブリをインストールできます。 アセンブリをグローバル アセンブリ キャッシュにインストールする場合、このフィールドは null にする必要があります。
-
属性
-
Win32 アセンブリの値 1 (1) を入力します。 .NET Framework アセンブリの値 0 (ゼロ) を入力します。
[属性] 列が NULL の場合、インストーラーはアセンブリを .NET Framework アセンブリとして扱います。
備考
MsiAssembly テーブルにエントリが少なくとも 1 つ存在する場合、InstallExecuteSequence Table には、MsiPublishAssemblies アクションが含まれている必要があり、MsiUnpublishAssemblies アクション する必要があります。
アセンブリはコミット後にロールバックできないため、Windows インストーラーは 2 段階のインストール プロセスを使用します。 アセンブリへのインターフェイスは、MsiPublishAssemblies アクションによって生成されるインストール操作中に作成されます。
InstallFinalize アクションが正常に実行されるまで、アセンブリはコミット。 つまり、アセンブリに依存するカスタム アクションまたはリソースを作成する場合は、InstallFinalize アクションの後にシーケンスする必要があります。 たとえば、グローバル アセンブリ キャッシュ (GAC) 内のアセンブリに依存するサービスを開始する必要がある場合は、InstallFinalize アクションの後に、そのサービスの開始をスケジュールする必要があります。 つまり、ServiceControl Table を使用してサービスを開始することはできません。代わりに、InstallFinalize の後にシーケンスされたカスタム アクションを使用する必要があります。
検証