配置と依存関係
更新 : 2007 年 11 月
Visual Studio の配置ツールは、プロジェクトにプロジェクト出力グループ、アセンブリ、またはマージ モジュールが追加されるたびに、自動的に依存関係を検出し、配置プロジェクトに追加します。ただし、依存関係を検出できない場合もあります。
ヒント : |
---|
配置プロジェクトにアセンブリを直接追加するのではなく、アセンブリを含むプロジェクト出力グループを追加することをお勧めします。配置ツールでは、プロジェクト出力グループの方が簡単に依存関係を検出できます。 |
アセンブリの場合は、ほかのアセンブリとの依存関係が検出されます。ただし、アセンブリが COM .dll などのアンマネージ コンポーネントを参照する場合、そのコンポーネントの依存関係は検出されません。同様に、配置プロジェクトに直接追加されたファイルについても、依存関係が検出されないことがあります。アプリケーションの実行には通常は依存ファイルが必要ですが、どちらの場合も、インストーラの実行は妨げられません。
この問題を防ぐため、まず依存関係の種類を見極め、適切な処置を行う必要があります。
参照先のコンポーネントが、他の製品の一部としてだけインストールされている場合。たとえば、Web Browser コントロール (shdocvw.dll) は、Internet Explorer の一部としてインストールされています。
この場合は、まず配置プロジェクトからコンポーネントを除外します。次に、起動条件を追加して、ターゲット コンピュータでのコンポーネントの有無をチェックし、存在しない場合はインストールを行わないようにします。エンド ユーザーは、アプリケーションをインストールする前に、コンポーネントを提供する製品をインストールする必要があります。
追加しようとしているアンマネージ コンポーネントが、依存関係のすべてを公開していない場合。たとえば、MFC (Microsoft Foundation Class) は、ローカライズしたサテライト ファイルを依存関係として含んでいません。
この場合は、可能な依存関係をすべて調べ、配置プロジェクトに追加する必要があります。コンポーネントのドキュメントを調べるか、またはコンポーネントの作成者から依存関係の一覧を入手してください。
メモ : Depends.exe など、大部分の依存関係チェック ツールは、事前バインディングされた依存関係だけを見つけます。遅延バインディングされる依存関係は、実行時にだけ現れます。
参照先のアセンブリが、アンマネージ コンポーネントとの依存関係を持つ場合。たとえば、System.Data.dll は、MDAC (Microsoft Data Access Components) バージョン 2.8 との依存関係を持ちます。詳細については、「方法 : Microsoft Data Access Components の起動条件を追加する」を参照してください。
すべての依存ファイルがインストールされるようにするには、コンポーネントとその依存関係を含むマージ モジュールを追加します。場合によっては、コンポーネントの作者に問い合わせて、マージ モジュールが使用できるかどうかを確認する必要があります。Microsoft コンポーネントの多くは、Microsoft の Web サイトでマージ モジュールを入手できます。
マージ モジュールを入手できない場合は、起動条件を追加して、インストール時にコンポーネントの有無をチェックし、存在しない場合はインストールを行わないようにすることもできます。
参照
処理手順
方法 : Microsoft Data Access Components の起動条件を追加する