サイド バイ サイド アセンブリの作成に関するガイドライン
次のガイドラインでは、独自の COM または Win32 サイド バイ サイド アセンブリを作成する方法について説明します。 必要な機能がサポートされている Microsoft サイド バイ サイド アセンブリのいずれかによって提供されている場合は、独自の サイド バイ サイド アセンブリを作成する必要がない場合があります。 この場合は、Microsoft が提供するアセンブリを使用し、「 分離アプリケーションとサイド バイ サイド アセンブリを使用する」のサイド バイ サイド アセンブリを使用する手順に従います。
まず、コンポーネントがサイド バイ サイド アセンブリに適した候補を作成するかどうかを検討します。 詳細については、「共有コンポーネントをサイド バイ サイド アセンブリとして指定する必要がある」を参照してください。
サイド バイ サイド アセンブリを作成するには、次のガイドラインに従います。
- アセンブリに含めるリソースを決定します。 アセンブリは、アプリケーションと顧客に常に一緒に提供される 1 つ以上のファイルで構成されていることに注意してください。 アセンブリは、名前付け、バインド、バージョン管理、配置、 および既定の構成に使用される基本的な単位として機能します。 原則として、2 つのリソースが同じアセンブリに属しているかどうかが不明な場合は、個別のアセンブリに移動するように作成することをお勧めします。 通常、サイド バイ サイド アセンブリは 1 つの DLL で構成されます。
- アセンブリのアセンブリ マニフェスト を作成します。 マニフェストでは、アセンブリ内の COM オブジェクトまたはタイプ ライブラリを記述する必要があります。 アセンブリ マニフェストに作成する必要がある内容の詳細については、アセンブリ マニフェストを参照してください。
- アセンブリの複数のバージョンがシステム上で実行されている場合に、オブジェクトの使用状況を評価します。 アセンブリのさまざまなバージョンで、メモリ マップされたファイル、名前付きパイプ、登録済みのWindows メッセージとクラス、共有メモリ、セマフォ、ミューテックス、ハードウェア ドライバーなどの個別のデータ構造が必要かどうかを判断します。 アセンブリ バージョン間で使用されるデータ構造は、下位互換性のあるバージョンである必要があります。 バージョン間で使用できるデータ構造と、バージョンに対してプライベートにする必要があるデータ構造を決定します。 共有データ構造でセマフォやミューテックスなどの個別の同期オブジェクトが必要かどうかを判断します。
- サイド バイ サイド アセンブリの DLL の作成に関するページのガイドラインに従って、DLL をサイド バイ サイド アセンブリとして機能させるために DLL を作成します。
- アセンブリ状態を含むレジストリ キーを簡単にバージョン管理するための一連のヘッダー ファイルとヘルパー関数を作成します。 アセンブリは、通常、レジストリ キーに状態設定を保存します。 同時に実行できる複数のアセンブリ バージョンを分離するには、レジストリ設定を個別のバージョンベースで記述する必要があります。 サイド バイ サイドの共有シナリオでアセンブリの状態を正しく格納して処理するように、サイド バイ サイド アセンブリと DLL を設計します。 サイド バイ サイド アセンブリの作成状態Storageのガイドラインに従います。
- プライベート アセンブリを使用するアプリケーションの開発者は、アプリケーション ディレクトリをセキュリティで保護する必要があります。 Windows インストーラーを使用してアプリケーションがインストールされている場合は、LockPermissions テーブルを使用してアプリケーション ディレクトリをセキュリティで保護できます。 通常、システムにはプライベート アセンブリへの読み取り、書き込み、および実行アクセス権が付与されます。他のすべてのプロセスには、実行アクセスと読み取りアクセスのみが付与されます。
- サイド バイ サイド共有のシナリオを使用してアセンブリをテストし、それが有効なサイド バイ サイド アセンブリであることを確認します。 アセンブリの正常なインストールでは、期待どおりに動作することを保証するのに十分ではありません。
- アセンブリの更新の番号付け方法を採用します。 各アセンブリは、4 部構成のバージョン番号に関連付けられています。 左から右、メジャー、マイナー、ビルド、リビジョンの各部分はピリオドで区切られています。 以前のバージョンと互換性のないバージョンのアセンブリのメジャー番号またはマイナー番号を変更します。 アセンブリに対して下位互換性のある変更を行うには、ビルド パーツとリビジョン パーツのみを変更します。 たとえば、開発者は、すべての 1.0.0.* バージョン番号がアセンブリ バージョン 1.0.0.0 への更新バージョンを参照する番号付け方法を採用する場合があります。