ビルドで環境変数を使用する

プロジェクトをビルドするとき、プロジェクト ファイルまたはプロジェクトを構成するファイルに含まれていない情報を使用してビルド オプションを設定する必要がある場合があります。 通常、この情報は環境変数に格納されます。

環境変数を参照する

有効な MSBuild プロパティ名である環境変数はすべて、Microsoft Build Engine (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>