[詳細] プロパティ ページは、Visual Studio 2019 以降で使用できます。 そのバージョンのドキュメントを表示するには、この記事の Visual Studio の [バージョン] セレクター コントロールを Visual Studio 2019 以降に設定してください。 このページの目次の一番上にあります。 以前のバージョンの Visual Studio では、これらのプロパティは [全般] プロパティ ページに表示されます。
[詳細] プロパティ ページは、Visual Studio 2019 以降で使用できます。 表示される具体的なプロパティは、プロジェクトの種類によって異なります。 Windows ランタイム (ユニバーサル Windows プラットフォーム、または UWP) プロジェクトでは、このページは表示されません。
高度なプロパティ
[ターゲット ファイルの拡張子]
ビルド出力に使用するファイル拡張子を指定します。 既定値は、アプリケーションの場合は .exe、スタティック ライブラリの場合は .lib、DLL の場合は .dll です。
消去時に削除する拡張子
[ビルド]>[消去] メニュー コマンドを選択すると、プロジェクトの構成がビルドされる中間ディレクトリからファイルが削除されます。
[消去] コマンドを実行するか、リビルドを行うと、ビルド システムによって指定した拡張子を持つファイルが削除されます。 ビルド システムは、ビルドの場所に関係なく、ビルドの既知の出力も削除します。 削除されるファイルには、.obj ファイルなどのあらゆる中間出力も含まれます。 拡張子を区切るには、セミコロン (;) を使用してください。 拡張子ではワイルドカード文字 (*、?) を指定できます。
プログラムを使用してこのプロパティにアクセスする方法については、「DeleteExtensionsOnClean」を参照してください。
ビルド ログ ファイル
プロジェクトをビルドしたときに作成されるログ ファイルの、既定以外の場所を指定できます。 既定の場所はマクロ $(IntDir)$(MSBuildProjectName).log によって指定されます。
プロジェクト マクロを使用して、ディレクトリの場所を変更できます。 詳細については、ビルドのコマンドとプロパティの共通マクロに関する記事を参照してください。
優先するビルド ツール アーキテクチャ
x86 と x64 のビルド ツールのどちらを使うかを指定します。
デバッグ ライブラリの使用
デバッグ ビルドとリリース ビルドのどちらを作成するかを指定します。 名前にもかかわらず、 デバッグ ライブラリの使用 は、"デバッグ ビルドの作成" または "リリース ビルドの作成" の略語であるビルド システム固有のプロパティです。ライブラリの設定を含め、デバッグ ビルドまたはリリース ビルドのコンパイラとリンカーのプロパティをいくつか設定します。 これを使用して、新しいプラットフォームまたは新しいテンプレートのデバッグ構成またはリリース構成を作成できます。 既存の構成でこのプロパティを変更することはお勧めしません。 代わりに、個々のコンパイラプロパティとリンカープロパティを使用してください。
Unity (JUMBO) ビルドを有効にする
コンパイル前に多数の C++ ソース ファイルを 1 つ以上のファイルに結合する、より高速なビルド処理を可能にします。
OutDir へのコンテンツのコピー
プロジェクトで content としてマークされている項目を、プロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 この設定により、配置が簡単になります。 このプロパティは、Visual Studio 2019 バージョン 16.7 以降で使用できます。
OutDir へのプロジェクト参照のコピー
実行可能ファイル (DLL および EXE ファイル) のプロジェクト参照項目を、プロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 C++/CLI (/clr) プロジェクトでは、このプロパティは無視されます。 代わりに、各プロジェクト参照の Copy Local プロパティは、項目を出力ディレクトリにコピーするかどうかを制御します。 この設定により、ローカル配置が簡単になります。 Visual Studio 2019 バージョン 16.7 以降で使用できます。
OutDir へのプロジェクト参照のシンボルのコピー
プロジェクト参照項目の PDB ファイルを、プロジェクト参照の実行可能項目と共に、プロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 このプロパティは、C++/CLI プロジェクトに対して常に有効になります。 この設定により、デバッグ配置が簡単になります。 Visual Studio 2019 バージョン 16.7 以降で使用できます。
OutDir への C++ ランタイムのコピー
C++ ランタイム DLL をプロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 この設定により、ローカル配置が簡単になります。 Visual Studio 2019 バージョン 16.7 以降で使用できます。
MFC の使用法
MFC プロジェクトが MFC DLL に静的にリンクするか動的にリンクするかを指定します。 MFC 以外のプロジェクトでは、[標準 Windows ライブラリを使用する] を選択します。
プログラムを使用してこのプロパティにアクセスする方法については、「useOfMfc」を参照してください。
文字セット
_UNICODE または _MBCS プリプロセッサ マクロを設定するかどうかを指定します。 該当する場合は、リンカーのエントリ ポイントにも影響します。
_UNICODEの場合、想定されるコード エントリ ポイントはwmainまたはwWinMain。
_MBCSの場合、想定されるコード エントリ ポイントはmainまたはWinMain。
プログラムを使用してこのプロパティにアクセスする方法については、「CharacterSet」を参照してください。
プログラム全体の最適化
/GL コンパイラ オプションと /LTCG リンカー オプションを指定します。 既定では、このプロパティはデバッグ構成に対しては無効、リリース構成に対しては有効になります。
MSVC ツールセット バージョン
プロジェクトのビルドに使う MSVC ツールセットの完全なバージョンを指定します。 さまざまな更新プログラムやプレビュー版のツールセットがインストールされている場合があります。 ここでは、そのどれを使用するかを指定できます。
LLVM ツールセット バージョン
プロジェクトのビルドに使う LLVM ツールセットの完全なバージョンを指定します。 このプロパティは、Visual Studio 2019 バージョン 16.9 以降で、LLVM (clang-cl) がプラットフォーム ツールセットとして選択されている場合に使用できます。 詳細については、「カスタム LLVM ツールセットのバージョンを設定する」を参照してください。
MSVC 構造化出力を有効にする
Visual Studio で 構造化 SARIF 出力を有効にするかどうかを指定します。これにより、Visual Studio の Output ウィンドウでProblem Details ウィンドウ階層出力が有効になります。
C++/CLI プロパティ
共通言語ランタイムのサポート
/clr コンパイラ オプションが使用されます。
プログラムを使用してこのプロパティにアクセスする方法については、「ManagedExtensions」を参照してください。
.NET Framework 対象バージョン
このプロパティは、共通言語ランタイム サポート プロパティが .NET Framework ランタイム サポートに設定されている場合にのみ適用されます。 つまり、プロジェクトが .NET Framework を対象とし、.NET Framework のバージョンを指定する場合です。
.NET ターゲット フレームワーク
このプロパティは、共通言語ランタイム サポート プロパティが .NET ランタイム サポートに設定されている場合にのみ適用されます。 つまり、プロジェクトが.NETを対象とする場合です。
このプロパティは、このプロジェクトが対象とする .NET 5+ ターゲット フレームワーク モニカー ( net6.0-windows や net7.0-windows8.0など) を指定します。
マネージド インクリメンタル ビルドを有効にする
このプロパティは、変更によって他のアセンブリまたはプロジェクトが参照および操作できるコードの部分が変更されない場合に依存プロジェクトが再構築されないようにすることで、大規模なソリューションのビルド時間を大幅に短縮するのに役立ちます。
個々のファイルに対する CLR サポートを有効にする
このオプションでは、プロジェクト内の一部のファイルのみをマネージド コードとしてビルドできるようにする ManagedAssembly ビルド プロパティを設定します。 全部ではなく一部のプロジェクト ファイルをマネージド コードとしてビルドする場合は、[個々のファイルに対する CLR サポートを有効にする] を [はい] に設定する必要があります。 このプロパティは、Visual Studio 2022 以降と v143 以降のプラットフォーム ツールセットを使用するプロジェクトでのみ使用できます。
.NET ターゲット Windows のバージョン
このプロパティは、共通言語ランタイム サポート プロパティが .NET ランタイム サポートに設定されている場合にのみ適用されます。 つまり、プロジェクトが.NETを対象とする場合です。
このプロパティは、プロジェクトがサポートする Windows の最小バージョンを指定します。 この値は、プロジェクトと NuGet パッケージの依存関係の互換性を判断するために NuGet によって使用されます。 プロジェクト A がプロジェクト B に依存している場合、プロジェクト A の .NET ターゲット Windows バージョンはプロジェクト B 以上である必要があります。
[詳細] プロパティ ページは、Visual Studio 2019 以降で使用できます。 表示される具体的なプロパティは、プロジェクトの種類によって異なります。 Windows ランタイム (ユニバーサル Windows プラットフォーム、または UWP) プロジェクトでは、このページは表示されません。
高度なプロパティ
[ターゲット ファイルの拡張子]
ビルド出力に使用するファイル拡張子を指定します。 既定値は、アプリケーションの .exe 、静的ライブラリの .lib 、DLL の .dll です。
消去時に削除する拡張子
[ビルド]>[消去] メニュー コマンドを選択すると、プロジェクトの構成がビルドされる中間ディレクトリからファイルが削除されます。
[消去] コマンドを実行するか、リビルドを行うと、ビルド システムによって指定した拡張子を持つファイルが削除されます。 ビルド システムは、ビルドの場所に関係なく、ビルドの既知の出力も削除します。 削除されるファイルには、.obj ファイルなどのあらゆる中間出力も含まれます。 拡張子を区切るには、セミコロン (;) を使用してください。 拡張子ではワイルドカード文字 (*、?) を指定できます。
プログラムを使用してこのプロパティにアクセスする方法については、「DeleteExtensionsOnClean」を参照してください。
ビルド ログ ファイル
プロジェクトをビルドしたときに作成されるログ ファイルの、既定以外の場所を指定できます。 既定の場所はマクロ $(IntDir)$(MSBuildProjectName).log によって指定されます。
プロジェクト マクロを使用して、ディレクトリの場所を変更できます。 詳細については、ビルドのコマンドとプロパティの共通マクロに関する記事を参照してください。
優先するビルド ツール アーキテクチャ
ARM64、x86、または x64 ビルド ツールを使用するかどうかを指定します。
デバッグ ライブラリの使用
デバッグ ビルドとリリース ビルドのどちらを作成するかを指定します。 名前にもかかわらず、 デバッグ ライブラリの使用 は、"デバッグ ビルドの作成" または "リリース ビルドの作成" の略語であるビルド システム固有のプロパティです。ライブラリの設定を含め、デバッグ ビルドまたはリリース ビルドのコンパイラとリンカーのプロパティをいくつか設定します。 これを使用して、新しいプラットフォームまたは新しいテンプレートのデバッグ構成またはリリース構成を作成できます。 既存の構成でこのプロパティを変更することはお勧めしません。 代わりに、個々のコンパイラプロパティとリンカープロパティを使用してください。
Unity (JUMBO) ビルドを有効にする
コンパイル前に多数の C++ ソース ファイルを 1 つ以上のファイルに結合する、より高速なビルド処理を可能にします。
OutDir へのコンテンツのコピー
プロジェクトで content としてマークされている項目を、プロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 この設定により、配置が簡単になります。 このプロパティは、Visual Studio 2019 バージョン 16.7 以降で使用できます。
OutDir へのプロジェクト参照のコピー
実行可能ファイル (DLL および EXE ファイル) のプロジェクト参照項目を、プロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 C++/CLI (/clr) プロジェクトでは、このプロパティは無視されます。 代わりに、各プロジェクト参照の Copy Local プロパティは、項目を出力ディレクトリにコピーするかどうかを制御します。 この設定により、ローカル配置が簡単になります。 Visual Studio 2019 バージョン 16.7 以降で使用できます。
OutDir へのプロジェクト参照のシンボルのコピー
プロジェクト参照項目の PDB ファイルを、プロジェクト参照の実行可能項目と共に、プロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 このプロパティは、C++/CLI プロジェクトに対して常に有効になります。 この設定により、デバッグ配置が簡単になります。 Visual Studio 2019 バージョン 16.7 以降で使用できます。
OutDir への C++ ランタイムのコピー
C++ ランタイム DLL をプロジェクトの出力ディレクトリ ($(OutDir)) にコピーします。 この設定により、ローカル配置が簡単になります。 Visual Studio 2019 バージョン 16.7 以降で使用できます。
MFC の使用法
MFC プロジェクトが MFC DLL に静的にリンクするか動的にリンクするかを指定します。 MFC 以外のプロジェクトでは、[標準 Windows ライブラリを使用する] を選択します。
プログラムを使用してこのプロパティにアクセスする方法については、「useOfMfc」を参照してください。
文字セット
_UNICODE または _MBCS プリプロセッサ マクロを設定するかどうかを指定します。 該当する場合は、リンカーのエントリ ポイントにも影響します。
_UNICODEの場合、想定されるコード エントリ ポイントはwmainまたはwWinMain。
_MBCSの場合、想定されるコード エントリ ポイントはmainまたはWinMain。
プログラムを使用してこのプロパティにアクセスする方法については、「CharacterSet」を参照してください。
プログラム全体の最適化
/GL コンパイラ オプションと /LTCG リンカー オプションを指定します。 既定では、このプロパティはデバッグ構成に対しては無効、リリース構成に対しては有効になります。
C++ 動的デバッグの使用
C++ 動的デバッグを使用するかどうかを指定します。 最適化されたコードをデバッグするには、このモードを使用します。 この設定を有効にすると、プログラム全体の最適化がオフになります。 詳細については、「 C++ 動的デバッグ」を参照してください。
MSVC 構造化出力を有効にする
Visual Studio で 構造化 SARIF 出力を有効にするかどうかを指定します。これにより、Visual Studio の Output ウィンドウでProblem Details ウィンドウ階層出力が有効になります。
C++/CLI プロパティ
共通言語ランタイムのサポート
/clr コンパイラ オプションが使用されます。
プログラムを使用してこのプロパティにアクセスする方法については、「ManagedExtensions」を参照してください。
.NET Framework 対象バージョン
このプロパティは、共通言語ランタイム サポート プロパティが .NET Framework ランタイム サポートに設定されている場合にのみ適用されます。 つまり、プロジェクトが .NET Framework を対象とし、.NET Framework のバージョンを指定する場合です。
.NET ターゲット フレームワーク
このプロパティは、共通言語ランタイム サポート プロパティが .NET ランタイム サポートに設定されている場合にのみ適用されます。 つまり、プロジェクトが.NETを対象とする場合です。
このプロパティは、このプロジェクトが対象とする .NET 5+ ターゲット フレームワーク モニカー ( net6.0-windows や net7.0-windows8.0など) を指定します。
マネージド インクリメンタル ビルドを有効にする
このプロパティは、変更によって他のアセンブリまたはプロジェクトが参照および操作できるコードの部分が変更されない場合に依存プロジェクトが再構築されないようにすることで、大規模なソリューションのビルド時間を大幅に短縮するのに役立ちます。
個々のファイルに対する CLR サポートを有効にする
このオプションでは、プロジェクト内の一部のファイルのみをマネージド コードとしてビルドできるようにする ManagedAssembly ビルド プロパティを設定します。 全部ではなく一部のプロジェクト ファイルをマネージド コードとしてビルドする場合は、[個々のファイルに対する CLR サポートを有効にする] を [はい] に設定する必要があります。 このプロパティは、Visual Studio 2022 以降と v143 以降のプラットフォーム ツールセットを使用するプロジェクトでのみ使用できます。
.NET ターゲット Windows のバージョン
このプロパティは、共通言語ランタイム サポート プロパティが .NET ランタイム サポートに設定されている場合にのみ適用されます。 つまり、プロジェクトが.NETを対象とする場合です。
このプロパティは、プロジェクトがサポートする Windows の最小バージョンを指定します。 この値は、プロジェクトと NuGet パッケージの依存関係の互換性を判断するために NuGet によって使用されます。 プロジェクト A がプロジェクト B に依存している場合、プロジェクト A の .NET ターゲット Windows バージョンはプロジェクト B 以上である必要があります。