MSBuild のコマンドとプロパティの共通マクロ
Visual Studio のインストール オプションによっては、MSBuild に基づいた .vcxproj
Visual Studio プロジェクトで数百のマクロを使用できるようにすることができます。 マクロは、既定で設定されている MSBuild プロパティ、.props
または .targets
ファイル内の MSBuild プロパティ、またはお使いのプロジェクトの設定内にある MSBuild プロパティに対応しています。 次のマクロは、プロジェクトの [プロパティ ページ] ダイアログ ボックス内の、文字列を入力できるどの場所にも使用できます。 これらのマクロは大文字と小文字が区別されません。
現在のプロパティとマクロを表示する
現在使用可能なすべてのマクロを表示するには、メイン メニューから Project>Properties を選択してプロジェクト のプロパティ ページを開きます。 [ プロパティ ページ ダイアログで、マクロが含まれるエントリを選択します。 名前を囲むドル記号とかっこでマクロを認識できます。
たとえば、左側のウィンドウで Configuration Properties>VC++ Directories を選択し、右側のウィンドウで Include directories を選択します。 ディレクトリを含むの値は$(VC_IncludePath);$(WindowsSDK_IncludePath);
。
これら 2 つの値を囲むドル記号とかっこは、マクロであることを示します。 これら 2 つのマクロを拡張すると、検索するインクルード ディレクトリが設定されます。
[ディレクトリを含む]を選択すると行の末尾にドロップダウンが表示されます。 ドロップダウン ボタンを選択し、 Edit を選択します。 表示された [ディレクトリを含む] ダイアログ ボックスで、[Macros>>] ボタンを選択します。
ダイアログが展開され、Visual Studio に表示されているプロパティとマクロの現在のセットと、それぞれの現在の値が表示されます。 詳細については、C++ プロジェクトのプロパティ ページのリファレンスのユーザー定義の値の指定に関するセクションを参照してください。
右側には、$(AllowLocalNetworkLoopback) などの Visual Studio マクロの一覧があります。 左側のウィンドウには、include ディレクトリ プロパティの評価された値が表示されます。 下部のウィンドウには、インクルード ディレクトリ プロパティ値を生成するために展開されたマクロ (存在する場合) が表示されます。 インクルード ディレクトリ マクロは、$(VC_IncludePath) と $(WindowsSDK_IncludePath) という他の 2 つのマクロの組み合わせであるため、下のペインには [継承された値] というラベルが付き、これら 2 つのマクロが一覧表示されます。
一般的なマクロの一覧
次の表は、使用可能なマクロの中でよく使われるサブセットを示しています。ここに示されていないものも多数あります。 [マクロ] ダイアログにアクセスして、プロジェクトのすべてのプロパティとその現在の値を確認してください。 MSBuild プロパティ定義がどのように作成され、.props
、.targets
、および .vcxproj
ファイル内でマクロとして使用されるかについて詳しくは、「MSBuild プロパティ」を参照してください。
マクロ | 説明 |
---|---|
$(Configuration) |
現在のプロジェクト構成の名前 ("Debug" など)。 |
$(DevEnvDir) |
Visual Studio のインストール ディレクトリ (ドライブ + パスとして定義)。には、末尾の円記号 (\) が含まれます。 |
$(FrameworkDir) |
.NET Framework をインストールしたディレクトリです。 |
$(FrameworkSDKDir) |
.NET Framework をインストールしたディレクトリです。 .NET Framework は、Visual Studio の一部として、または個別にインストールされている可能性があります。 |
$(FrameworkVersion) |
Visual Studio が使用する .NET Framework のバージョンです。 $(FrameworkDir) と組み合わせることで、Visual Studio で使用される .NET Framework のバージョンへの完全なパス。 |
$(FxCopDir) |
fxcop.cmd ファイルへのパス fxcop.cmd ファイルは、Visual Studio のすべてのエディションにインストールされているとは限りません。 |
$(IntDir) |
中間ファイルに指定されたディレクトリへのパスです。 相対パスの場合、中間ファイルはこのパスを通じてプロジェクト ディレクトリに追加されます。 このパスには、末尾に円記号 (\) を付けます。 これは Intermediate Directory プロパティの値に解決されます。 $(OutDir) を使用してこのプロパティを定義しないでください。 |
$(OutDir) |
出力ファイルのディレクトリへのパスです。 相対パスの場合、出力ファイルはこのパスを通じてプロジェクト ディレクトリに追加されます。 このパスには、末尾に円記号 (\) を付けます。 これは、Output Directory プロパティの値に解決されます。 $(IntDir) を使用してこのプロパティを定義しないでください。 |
$(Platform) |
現在のプロジェクト プラットフォームの名前 (例: "Win32") です。 |
$(PlatformShortName) |
現在のアーキテクチャの短い名前 ("x86"、"x64" など)。 |
$(ProjectDir) |
プロジェクトのディレクトリ (ドライブ + パスとして定義)には、末尾の円記号 (\) が含まれます。 |
$(ProjectExt) |
プロジェクトのファイル拡張子。 ファイル拡張子の前にピリオド '.' が付きます。 |
$(ProjectFileName) |
プロジェクトのファイル名 (基本名 + ファイル拡張子で定義) です。 |
$(ProjectName) |
プロジェクトの基本名です。 |
$(ProjectPath) |
プロジェクトの絶対パス名 (ドライブ + パス + 基本名 + ファイル拡張子で定義) です。 |
$(PublishDir) |
発行ターゲットの出力場所。には、末尾の円記号 (\) が含まれます。 既定値は $(OutDir)app.publish\ フォルダーです。 |
$(RemoteMachine) |
[デバッグ] プロパティ ページで Remote Machine プロパティの値を設定します。 詳細については、「C/C++ デバッグ構成のプロジェクト設定」を参照してください。 |
$(RootNameSpace) |
アプリケーションを含む名前空間 (定義されている場合) です。 |
$(SolutionDir) |
ソリューションのディレクトリ (ドライブ + パスとして定義)には、末尾の円記号 (\) が含まれます。 IDE でソリューションをビルドする場合にのみ定義されます。 |
$(SolutionExt) |
ソリューションのファイル拡張子です。 ファイル拡張子の前にピリオド '.' が付きます。 IDE でソリューションをビルドする場合にのみ定義されます。 |
$(SolutionFileName) |
ソリューションのファイル名 (基本名 + ファイル拡張子で定義) です。 IDE でソリューションをビルドする場合にのみ定義されます。 |
$(SolutionName) |
ソリューションの基本名です。 IDE でソリューションをビルドする場合にのみ定義されます。 |
$(SolutionPath) |
ソリューションの絶対パス名 (ドライブ + パス + 基本名 + ファイル拡張子で定義) です。 IDE でソリューションをビルドする場合にのみ定義されます。 |
$(TargetDir) |
ビルドのプライマリ出力ファイルのディレクトリ (ドライブ + パスとして定義)。には、末尾の円記号 (\) が含まれます。 |
$(TargetExt) |
ビルドのプライマリ出力ファイルのファイル拡張子。 ファイル拡張子の前にピリオド '.' が付きます。 |
$(TargetFileName) |
ビルドのプライマリ出力ファイルの名前 (基本名 + ファイル拡張子で定義) です。 |
$(TargetName) |
ビルドのプライマリ出力ファイルの基本名です。 |
$(TargetPath) |
ビルドのプライマリ出力ファイルの絶対パス名 (ドライブ + パス + 基本名 + ファイル拡張子で定義) です。 |
$(VCInstallDir) |
Visual Studio インストールの C++ コンテンツを格納するディレクトリ。 このプロパティにはターゲットの Microsoft C++ (MSVC) ツールセットのバージョンが含まれますが、ホストの Visual Studio とは異なることがあります。 たとえば、$(PlatformToolset) = v140 を設定してビルドした場合、$(VCInstallDir) には Visual Studio 2015 インストールへのパスが含まれます。 |
$(VSInstallDir) |
Visual Studio をインストールしたディレクトリです。 このプロパティにはターゲットの Visual Studio ツールセットのバージョンが含まれますが、ホストの Visual C++ とは異なることがあります。 たとえば、$(PlatformToolset) = v110 を設定してビルドした場合、$(VSInstallDir) には Visual Studio 2012 インストールへのパスが含まれます。 |
$(WebDeployPath) |
Web 配置のルートから、プロジェクト出力が存在するディレクトリへの相対パスです。 |
$(WebDeployRoot) |
<localhost> の場所への絶対パスです。 たとえば、c:\inetpub\wwwroot のようにします。 |
古いマクロ
C++ のビルド システムは、Visual Studio 2008 と Visual Studio 2010 の間で大幅に変更されました。 以前のプロジェクトの種類で使用された多くのマクロが新しいものに変更されました。 これらのマクロは使用されなくなったか、1 つ以上の同等のプロパティまたは item メタデータ マクロ (%(item-name)
) 値に置き換えられます。 移行ツールでは、"移行済み" とマークされたマクロを更新できます。 マクロを含むプロジェクトが Visual Studio 2008 以前から Visual Studio 2010 に移行された場合、Visual Studio はそのマクロを同等の現在のマクロに変換します。 新しいバージョンの Visual Studio は、プロジェクトを Visual Studio 2008 以前から新しいプロジェクトの種類に変換できません。 2 つの手順でこれらのプロジェクトを変換する必要があります。まず Visual Studio 2010 に変換し、Visual Studio の新しいバージョンにその結果を変換します。 詳細については、「Overview of potential upgrade issues」 (アップグレードの潜在的な問題の概要) を参照してください。
マクロ | 説明 |
---|---|
$(InputDir) |
(移行済み)。入力ファイルのディレクトリ (ドライブ + パスとして定義)。には、末尾の円記号 (\) が含まれます。 プロジェクトが入力の場合、このマクロは $(ProjectDir) と同じです。 |
$(InputExt) |
(移行済み)。入力ファイルのファイル拡張子。 ファイル拡張子の前にピリオド '.' が付きます。 プロジェクトが入力の場合、このマクロは $(ProjectExt) と同じです。 ソース ファイルの場合は、%(Extension) と同じです。 |
$(InputFileName) |
(移行済み)。入力ファイルのファイル名 (ベース名 + ファイル拡張子として定義)。 プロジェクトが入力の場合、このマクロは $(ProjectFileName) と同じです。 ソース ファイルの場合は、%(Identity) と同じです。 |
$(InputName) |
(移行済み)。入力ファイルのベース名。 プロジェクトが入力の場合、このマクロは $(ProjectName) と同じです。 ソース ファイルの場合は、%(Filename) と同じです。 |
$(InputPath) |
(移行済み)。入力ファイルの絶対パス名 (ドライブ + パス + ベース名 + ファイル拡張子として定義)。 プロジェクトが入力の場合、このマクロは $(ProjectPath) と同じです。 ソース ファイルの場合は、%(FullPath) と同じです。 |
$(ParentName) |
このプロジェクト項目を含む項目の名前です。 これは、親フォルダー名またはプロジェクト名です。 |
$(SafeInputName) |
有効なクラス名としてのファイル名です。ファイル拡張子は除きます。 このプロパティには、正確に等しいものはありません。 |
$(SafeParentName) |
有効な名前形式で指定された、直接の親の名前です。 たとえば、フォームは .resx ファイルの親です。 このプロパティには、正確に等しいものはありません。 |
$(SafeRootNamespace) |
プロジェクト ウィザードでコードを追加する名前空間の名前。 この名前空間名に含まれるのは、有効な C++ 識別子で許可される文字列だけです。 このプロパティには、正確に等しいものはありません。 |
関連項目
Visual Studio プロジェクト - C++
Visual C++ 移植とアップグレードのガイド
アップグレード時の潜在的な問題の概要
MSBuild の既知の項目メタデータ