次の方法で共有


サイド バイ サイド アセンブリの作成に関するガイドライン

次のガイドラインでは、独自の COM または Win32 のサイド バイ サイド アセンブリを作成する方法について説明します。 必要な機能が、サポートされている Microsoft のサイド バイ サイド アセンブリ の 1 つによって提供されている場合は、独自のサイド バイ サイド アセンブリを作成する必要がない場合があります。 この場合は、Microsoft が提供するアセンブリを使用し、分離アプリケーションとサイドバイサイドアセンブリを使用する手順に従うために、分離アプリケーションとサイドバイサイドアセンブリの使用に従います。

コンポーネントがサイド バイ サイド アセンブリに適した候補であるかどうかを最初に検討します。 詳細については、「サイド バイ サイド アセンブリとして共有コンポーネントを指定する必要がありますか?」を参照してください。

サイド バイ サイド アセンブリを作成するには、次のガイドラインに従います。

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