展開方法を選択する

配置には Windows インストーラーを使用することをお勧めします。 Windows インストーラーでは、インストール、修復、およびアンインストールのほか、アプリケーション ファイル、依存関係、およびレジストリ エントリの分割不可能な更新もサポートされています。 Visual C++ アプリケーションを単体で使用できない場合や、コピー コマンドを使用して配置できない場合は、Windows インストーラーを使用してください。

Note

Visual C++ ネイティブ アプリケーションの ClickOnce 配置は Visual Studio でも可能ですが、追加の手順が必要になります。 詳細については、「Visual C++ アプリケーションの ClickOnce 配置」を参照してください。

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

Visual Studio インストーラーでは、Visual C++ ライブラリが %windir%\system32\ ディレクトリにインストールされるため、これらに依存する Visual C++ アプリケーションを開発すると、これは意図したとおりに実行されます。 ただし、ほとんどのコンピューターには Visual Studio がインストールされていません。 このようなコンピューターにアプリケーションを配置する場合は、ライブラリがアプリケーションと共にインストールされていることを確認することをお勧めします。

Visual C++ 再頒布可能ライブラリ

ご利用の配置に、再頒布用にライセンスされた任意のバージョンの Visual C++ ライブラリを再頒布できます。 配置する方法は 3 つあります。

  • Visual C++ 再頒布可能パッケージを使用した集中配置。 この方法をお勧めします。 Visual C++ 再頒布可能パッケージは、%windir%\system32\ の共有 DLL として Visual C++ ライブラリをインストールする実行可能ファイルです。 (このフォルダーへのインストールには管理者権限が必要です。ターゲット コンピューターにアプリケーションを インストールする前に、再頒布可能パッケージを実行するブートストラップ、スクリプト、またはセットアップ プログラムを作成できます。 再頒布可能パッケージは、x86、x64、ARM64、ARM の各プラットフォームで使用できます。 パッケージ ファイルの検索場所の詳細については、「再頒布可能ファイルの検出」を参照してください。 再頒布可能パッケージの使用方法については、「チュートリアル: Visual C++ 再頒布可能パッケージを使用した Visual C++ アプリケーションの配置」を参照してください。

  • マージ モジュールを使用した集中配置。 この方法でデプロイされたライブラリは、Windows Update では自動的に更新できないため、このメソッドは非推奨です。 マージ モジュールを使用して、%windir%\system32\ の共有 DLL として特定の Visual C++ ライブラリをインストールできます。 (このフォルダーへのインストールには管理者権限が必要です。マージ モジュールは、アプリケーションの .msi インストーラー ファイルの一部になります。 これらは非推奨になったため、Visual C++ 再頒布可能パッケージマージ モジュールは、Visual Studio 2022 および 2019 のオプションのインストール可能なコンポーネントです。 Visual Studio 2017 と 2015 では、既定でインストールされます。 詳細については、「マージ モジュール ファイルの検索場所」を参照してください。

  • ローカル配置。 ローカル配置は、ほとんどの状況でお勧めされません。 ローカル配置では、Visual Studio インストール (通常は \%VCINSTALLDIR%Redist\MSVC\<version>\<target-platform>\ 内) から特定の Visual C++ DLL をコピーし、ターゲット コンピューターで、アプリケーションの実行可能ファイルと同じフォルダーにインストールします。 この展開方法を使用して、管理者権限を持たないユーザーによるインストールを有効にすることができます。 または、サム ドライブまたはネットワーク共有から実行できるアプリケーションの場合です。

配置で再頒布可能マージ モジュールを使用する場合、アプリをインストールするユーザーには管理者権限が必要です。 それ以外の場合は、Visual C++ DLL はインストールされず、アプリケーションが実行されない可能性があります。 ユーザー単位でのインストールを許可するアプリケーション インストーラーでは、システムのすべてのユーザーに影響を及ぼす共有の場所にライブラリがインストールされます。 ローカル配置を使用すると、必要な Visual C++ DLL を特定のユーザーのアプリケーションのディレクトリにインストールできます。 この方法では、他のユーザーに影響を与えたり、管理者権限が必要になったりしません。 これによりサービス性に問題が発生する可能性があるため、Visual C++ 再頒布可能パッケージ DLL のローカル配置はお勧めしません。

Visual C++ ライブラリの配置が不適切だと、そのライブラリに依存するアプリケーションの実行時に実行時エラーが発生する可能性があります。 オペレーティング システムは、アプリケーションを読み込むときに、次で説明されている LoadLibraryEx検索順序を使用します。

動的リンクは静的リンクよりも優れています

Visual C++ ライブラリを再配布する場合、静的リンクは使用しないことをお勧めします。 アプリケーションのパフォーマンスが静的リンクによって大きく向上することはほぼありませんが、サービスのコストは、ほとんどの場合、高くなります。 たとえば、セキュリティの強化によって更新されたライブラリに静的にリンクされているアプリケーションについて考えます。 このアプリケーションは、再コンパイルして再配置しない限りメリットがありません。 代わりに、依存しているライブラリにアプリケーションを動的にリンクさせることをお勧めします。 その後、配置されるすべての場所でライブラリを更新できます。

関連項目

デスクトップ アプリケーションの配置
ClickOnce のセキュリティと配置
配置例