Visual C++ 2010 での配置
アプリケーションを別のコンピューターに配置する場合、アプリケーションと、アプリケーションが依存するすべてのライブラリ ファイルをインストールする必要があります。 Visual C++ 2010 には、Visual C++ ランタイムとともにアプリケーションを配置する方法として、集中配置、ローカル配置、静的リンクの 3 つが用意されています。
集中配置
集中配置とは、Visual C++ DLL を System32 ディレクトリにインストールすることを表します。 アプリケーションを集中配置するには、次のどちらかを使用できます。
VCRedist_<アーキテクチャ>.exe コマンド ライン ツール (<アーキテクチャ> は x32、x64、または ia64)。
マージ モジュール。
VCRedist_<アーキテクチャ>.exe を実行すると、ハードウェア プラットフォーム固有のすべてのライブラリがインストールされます。 マージ モジュール (.msm ファイル) は、開発者が共有 Windows Installer コンポーネントを配置するための標準的な方法とセットアップ ロジックをアプリケーションに提供します。
集中配置の最大の利点は、緊急時のサービス性です。 重大なセキュリティ上の脆弱性が見つかった場合、集中配置されたライブラリ ファイルはマイクロソフトによって自動的に更新されます。
ローカル配置
ローカル配置とは、アプリケーションのライブラリ ファイルをアプリケーション フォルダーにインストールすることを表します。 アプリケーションをローカル配置する場合は、実行可能ファイルとこれに関連付けられているライブラリ ファイルをフォルダーにコピーするだけです。
ファイル名にバージョン番号が含まれているため (たとえば、バージョン 10 の CRT DLL ファイル名は msvcr100.dll)、異なるバージョンのライブラリを共存させることができます。
集中配置されたライブラリと異なり、ローカル ライブラリはマイクロソフトによって自動的に更新されません。 ローカル配置を使用する場合は、ライブラリを更新する独自の方法も実装する必要があります。
静的リンク
アプリケーションを任意のライブラリ (CRT、MFC、ATL など) に静的にリンクして、DLL への依存関係を持たない実行可能ファイルを作成できます。 静的リンクの利点は、アプリケーションを配置するときに、実行可能ファイルをコンピューター間でコピーでき、ライブラリ ファイルをコピーする必要もないことです。 静的リンクを使用する場合、リンクされたライブラリがマイクロソフトによって更新されたときにも、更新されたライブラリをアプリケーションで使用することはできません。
セキュリティ上の脆弱性
セキュリティ上の脆弱性が見つかった場合、マイクロソフトでは、影響を受けるライブラリの修正済みバージョンを修正プログラムとして提供します。 脆弱性のあるライブラリが存在するコンピューターに修正プログラムを配置するのは、アプリケーションの作成者の役割です。
セキュリティ上の脆弱性が重大なものであると判断され、緊急に対応する必要がある場合、マイクロソフトでは Microsoft Update を使用して、集中配置によって特定の Visual C++ ライブラリがインストールされているすべてのコンピューターに修正プログラムを提供します。 アプリケーションでローカル ライブラリ ファイルを使用する場合は、緊急時の独自のプロビジョニング方法を用意する必要があります。
Visual C++ 2008 と Visual C++ 2010 の相違点
Visual C++ 2008 と Visual C++ 2010 との大きな相違点は次のとおりです。
Visual C++ ライブラリは、マニフェストに依存しなくなり、WinSxS フォルダーにインストールされることもなくなります。
依存するアプリケーションとライブラリは、マニフェスト情報を必要としなくなります。
ローカル配置において、サテライト マニフェストが不要になります。
ローカルの Visual C++ ライブラリを読み込む場合に、集中配置の場所にリダイレクトすることはできません。
緊急時のサービス提供は、集中配置されたライブラリのみが対象となります。
トラブルシューティング
ローダーの問題を診断するには、depends.exe または where.exe を使用します。 Visual C++ ライブラリの読み込み順序は、LoadLibraryEx によって定義される順序になります。