プロジェクトをビルドするときは、多くの場合、プロジェクト ファイルまたはプロジェクトを構成するファイルに含まれていない情報を使用してビルド オプションを設定する必要があります。 通常、この情報は環境変数に格納されます。
環境変数を参照する
有効な MSBuild プロパティ名である環境変数はすべて、MSBuild プロジェクト ファイルでプロパティとして使用できます。 有効なプロパティ名については、 MSBuild プロパティで説明されています。 たとえば、数値で始まる環境変数は MSBuild では使用できません。
注
プロジェクト ファイルに環境変数と同じ名前のプロパティの明示的な定義が含まれている場合、プロジェクト ファイル内のプロパティは環境変数の値をオーバーライドします。
MSBuild プロジェクトで環境変数を使用するには
プロジェクト ファイルで宣言した変数と同じ方法で環境変数を参照します。 たとえば、次のコードはBIN_PATH環境変数を参照しています。
<FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>
環境変数が設定されていない場合は、
Condition
属性を使用してプロパティの既定値を指定できます。
プロパティの既定値を指定するには
プロパティに値がない場合にのみ、プロパティに
Condition
属性を使用して値を設定します。 たとえば、次のコードでは、ToolsPath
環境変数が設定されていない場合にのみ、ToolsPath
プロパティを c:\tools に設定します。<ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>
注
プロパティ名では大文字と小文字が区別されないため、
$(ToolsPath)
と$(TOOLSPATH)
の両方が同じプロパティまたは環境変数を参照します。
例
次のプロジェクト ファイルでは、環境変数を使用してディレクトリの場所を指定します。
<Project DefaultTargets="FakeBuild">
<PropertyGroup>
<FinalOutput>$(BIN_PATH)\myassembly.dll</FinalOutput>
<ToolsPath Condition=" '$(ToolsPath)' == '' ">
C:\Tools
</ToolsPath>
</PropertyGroup>
<Target Name="FakeBuild">
<Message Text="Building $(FinalOutput) using the tools at $(ToolsPath)..."/>
</Target>
</Project>