Share via


配置方法の選択

ほとんどの場合、Visual C++ アプリケーションを配置するには Windows インストーラーを使用します。Visual Studio でサポートされている配置方法とその代替策の詳細については、「配置ストラテジの選択」および「Deployment Alternatives」を参照してください。ClickOnce を使用して Visual C++ ネイティブ アプリケーションを配置することは、Visual Studio 2010 ではサポートされていません。ただし、コマンド ラインでは、ClickOnce を使用して Visual C++ アプリケーションを配置できます。詳細については、「Visual C++ アプリケーションの ClickOnce 配置」を参照してください。

Visual C++ ライブラリの共有 DLL

Visual Studio 2010 では、%windir%\system32 ディレクトリに、共有 DLL として Visual C++ ライブラリがインストールされます。Visual C++ がインストールされていないコンピューター上で Visual C++ アプリケーションを実行するには、アプリケーションと共に Visual C++ DLL を再配布し、そのコンピューターにインストールすることが必要な場合があります。

Visual C++ ライブラリの再配布

Visual C++ の DLL を再配布する場合、次の 3 つの方法があります。

  • Visual C++ の再頒布可能パッケージ (VCRedist_x86.exeVCRedist_x64.exeVCRedist_ia64.exe) を使用して、すべての Visual C++ ライブラリを共有 DLL として %windir%\system32 にインストールすることをお勧めします。Visual Studio は、このパッケージを %WindowsSdkDir%\Bootstrapper\Packages フォルダーにインストールします。または、Microsoft ダウンロード センター からダウンロードします。このパッケージの使用方法のサンプルについては、「チュートリアル: Visual C++ 再頒布可能パッケージを使用した Visual C++ アプリケーションの配置」を参照してください。

  • %windir%\system32 に特定の Visual C++ ライブラリを共有 DLL としてインストールするには、Visual C++ の再頒布可能なマージ モジュールを使用します。このフォルダーにアクセスするには、管理権限を持つユーザーがインストーラー アプリケーションを実行する必要があります。詳細については、「マージ モジュールを使用した再配布」を参照してください。配置例については、「チュートリアル: セットアップ プロジェクトを使用した Visual C++ アプリケーションの配置」を参照してください。

  • 特定の Visual C++ DLL をアプリケーションと同じフォルダーにインストールするには、Program Files\Microsoft Visual Studio 10.0\VC\Redist ディレクトリにあるファイルを使用します。管理者権限のないユーザーでもアプリケーションをインストールできるようにする場合や、アプリケーションを共有場所から実行できるようにする場合は、この方法をお勧めします。

再頒布可能なマージ モジュールを使用して Visual C++ ライブラリをインストールすると、DLL は %windir%\system32 に共有 DLL として配置されます。このフォルダーにアクセスするには、管理権限を持つユーザーがインストーラー アプリケーションを実行する必要があります。

管理者権限を持たないユーザーがインストールを実行すると、インストール時に Visual C++ DLL の配置が失敗するため、アプリケーションが実行されません。また、製品によっては、ユーザー単位でのインストールが許可されていますが、マージ モジュールでは、共有の場所にライブラリがインストールされるため、システムのすべてのユーザーが影響を受けます。このような状況、またはこれと似た状況で、必要な DLL を特定のユーザーのアプリケーションのディレクトリにインストールする方法がサポートされています。

この方法では、DLL をアプリケーションのローカル フォルダーにコピーするだけです。アプリケーションの実行時、オペレーティング システムのローダーは LoadLibraryEx(LoadLibraryEx) で説明されている検索順序を使用します。

Visual C++ ライブラリの再配布の方法が不適切な場合、そのライブラリに依存するアプリケーションの実行時に実行時エラーが発生します。

静的リンクよりも望ましい動的リンク

Visual C++ ライブラリに静的にリンクする C/C++ アプリケーションを再配布することはお勧めしません。一般的に、プログラムを Visual C++ ライブラリに静的にリンクすると、アプリケーションのパフォーマンスが大幅に向上すると誤って認識されています。しかし、ほとんどの場合、Visual C++ ライブラリを動的に読み込むことによるパフォーマンスへの影響は微々たるものです。さらに、静的にリンクした場合は、アプリケーションの作成者も Microsoft も、アプリケーションおよびその依存するライブラリにサービスを提供できません。たとえば、特定のライブラリに静的にリンクしたアプリケーションが、そのライブラリの新しいバージョンを持つクライアント コンピューター上で実行される場合を考えます。この場合、アプリケーションは以前のバージョンのライブラリからコードを使用するため、セキュリティ強化など、ライブラリの改良による恩恵を受けることができません。C/C++ アプリケーションを作成するときは、サービスを提供する状況について十分に考慮したうえで、依存するライブラリに静的にリンクするかどうかを判断し、可能な場合は動的なリンクを使用することを強くお勧めします。

参照

概念

配置ストラテジの選択

ClickOnce のセキュリティと配置

配置例

その他の技術情報

デスクトップ アプリケーションの配置 (Visual C++)

Windows Installer Deployment Overview