Visual C++ ファイルの再配布
更新 : 2007 年 11 月
Visual C++ を使用してアプリケーションを開発すると、コンピュータを優れた開発環境として使用できるだけでなく、アプリケーションを実行およびテストする便利な環境としても使用できるという利点があります。ただし、アプリケーションを他のコンピュータに配置する場合は、配置先のシステムでアプリケーションをサポートするのに必要なすべてのファイルを再配布する必要があります。アプリケーションと共に再配布が必要なファイルの詳細については、「配置例」および「再配布する DLL の決定」を参照してください。
アプリケーションと共に再配布できるのは一部の Visual C++ ファイルだけです。アプリケーションと共に再配布できるファイルについては、Visual Studio 2005 のマイクロソフト ソフトウェア ライセンス条項および Redist.txt ファイルを参照してください。EULA.txt は、最初の Visual C++ 2008 製品 CD-ROM または DVD の \Setup ディレクトリにあり、Redist.txt は 2 枚目の CD-ROM または DVD の Program Files\Microsoft Visual Studio 2005 ディレクトリにあります。
Visual C++ ファイルを再配布するには、用意されている再配布可能マージ モジュールまたは Visual C++ 再頒布可能パッケージを使用するか、特定の Visual C++ アセンブリをプライベート side-by-side アセンブリとしてアプリケーション ローカル フォルダに配置します。
メモ : |
---|
アプリケーション ローカル フォルダは、アプリケーション実行可能ファイルを格納するフォルダです。プライベート side-by-side アセンブリは、アプリケーション ローカル フォルダまたはそのサブフォルダの 1 つに配置する必要があります。プライベート side-by-side アセンブリを格納するサブフォルダに適用される名前付け規則の詳細については、「Assembly Searching Sequence」を参照してください。 |
前者の場合は、Windows インストーラ パッケージ、またはこのアプリケーションを別のコンピュータに配置するときに使用する同様のインストール パッケージに、特定の Visual C++ アセンブリのマージ モジュールを含める必要があります。詳細については、「マージ モジュールを使用した再配布」を参照してください。配置例については、「方法 : セットアップおよび配置プロジェクトを配置する」を参照してください。
Visual C++ 再頒布可能パッケージ (VCRedist_x86.exe、VCRedist_x64.exe、VCRedist_ia64.exe) は、アプリケーションのインストール必要条件として、ターゲット システムで実行されなければなりません。このパッケージにより、すべての Visual C++ ライブラリがインストールされ、登録されます。
メモ : |
---|
アプリケーションが Visual C++ Express でビルドされている場合、または、すべての Visual C++ ライブラリを一度に配置する場合は、このパッケージを使用して Visual C++ ライブラリを再配布することをお勧めします。 |
このパッケージの使用例については、「方法 : XCopy を使用して配置する」を参照してください。
Visual C++ ライブラリをプライベート side-by-side アセンブリとして配置する場合は、このアセンブリを形成するすべての DLL およびマニフェスト ファイルを Windows インストーラまたは同様のインストール パッケージに追加し、プライベート アセンブリの配置に関する規則に従って、配置先のコンピュータにあるアプリケーション ローカル フォルダのサブディレクトリ内に配置する必要があります。どの Visual C++ DLL およびマニフェスト ファイルがどの Visual C++ アセンブリに含まれるかについては、「Visual C++ ライブラリの共有 side-by-side アセンブリとしての配布」を参照してください。実行時に読み込むようにプライベート アセンブリを配置する場合に従う必要のある規則については、「Assembly Searching Sequence」を参照してください。Visual C++ ライブラリをプライベート アセンブリとして配置する例については、「方法 : XCopy を使用して配置する」を参照してください。
発生する可能性のあるランタイム エラー
アプリケーションにマニフェストが存在するとき、必要な Visual C++ ライブラリが WinSxS フォルダにインストールされていない場合、次のいずれかのエラー メッセージが表示される場合があります。表示されるエラー メッセージは、アプリケーションを実行する Windows のバージョンにより異なります。
アプリケーションを正しく初期化できませんでした (0xc0000135)。
このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。アプリケーションを再度インストールすることにより問題が解決する場合があります。
指定されたプログラムは実行できません。
アプリケーションにマニフェストが存在しない場合、アプリケーションに使用されている Visual C++ ライブラリを、アプリケーションのローカル フォルダに配置するか、共有フォルダ (システム フォルダや WinSxS フォルダなど) に配置するかによって、表示されるエラーが異なります。
メモ : |
---|
マニフェストを使用せずにビルドされた C/C++ アプリケーションの再配布はサポートされていません。Visual C/C++ アプリケーションは、Visual C++ ライブラリとアプリケーションをバインドするマニフェストなしで、これらのライブラリを使用できません。詳細については、「配置方法の選択」を参照してください。 |
Visual C++ ライブラリ DLL (MSVCR90.DLL など) にアクセスできる場合 (アプリケーションのローカル フォルダやシステム フォルダにインストールされている場合など) でも、次のエラー メッセージが表示されることがあります。
R6034 アプリケーションが C ランタイム ライブラリを不正に読み込もうとしました。
DLL に到達できず、Windows がアプリケーションの DLL を読み込めなかった場合は、次のエラー メッセージが表示されます。
MSVCR90.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。
これらのエラーを解決するには、アプリケーションが正しくビルドされていること、および、Visual C++ ライブラリがターゲット システムに正しく配置されていることを確認する必要があります。これらのランタイム エラーの根本的な原因を突き止めるには、「C/C++ 分離アプリケーションおよび side-by-side アセンブリのトラブルシューティング」に記載されている手順に従ってください。
このセクションの内容
マージ モジュールを使用した再配布
Visual C++ の再配布可能マージ モジュールを使用すると、Visual C++ アセンブリを共有 side-by-side アセンブリとしてネイティブ アセンブリ キャッシュ (WinSxS フォルダ) にインストールできます。Visual C++ ActiveX コントロールの再配布
ActiveX コントロールを使用するアプリケーションを再配布する方法について説明します。データベース サポート ファイルの再頒布
データ アクセス オブジェクト (DAO: Data Access Object) 用のサポート ファイルの再配布、および Microsoft Data Access SDK のデータベース テクノロジのサポート ファイルの再配布について説明します。MFC ライブラリの再配布
MFC を使用するアプリケーションを再配布する方法について説明します。ATL および OLE DB テンプレートの再配布
ATL および OLE DB テンプレートを使用するアプリケーションを再配布する方法について説明します。コモン コントロールの再配布
最新バージョンの Internet Explorer で使用できる最新の Windows コモン コントロール (Comctl32.dll) を使用したアプリケーションを再配布する方法を説明します。アプリケーションの再配布と特定のライブラリへのバインド
以前のバージョンのライブラリが使用されているコンピュータでアプリケーションが実行されないように、アプリケーションを再配布して特定バージョンの Visual C++ ライブラリにバインドする方法を説明します。
参照
概念
C/C++ 分離アプリケーションおよび side-by-side アセンブリのトラブルシューティング