如何:在組建中使用環境變數

當您建置專案時,通常需要使用專案檔或構成專案之檔案中沒有的資源來設定組建選項。 此資訊通常會儲存於環境變數中。

參考環境變數

Microsoft Build Engine (MSBuild) 專案檔作為屬性時,所有環境變數都可以使用。

注意

如果專案檔包含與環境變數相同名稱之專案的明確定義,則專案檔中的屬性會覆寫環境變數的值。

在 MSBuild 專案中使用環境變數

  • 參考環境變數的方式,與您對專案檔中宣告之變數所做的相同。 例如,下列程式碼會參考 BIN_PATH 環境變數:

    <FinalOutput>$(BIN_PATH)\MyAssembly.dll</FinalOutput>

    如果未設定環境變數,您可以使用 Condition 屬性 (Attribute) 來提供屬性 (Property) 的預設值。

提供屬性的預設值

  • 只有當屬性 (Property) 沒有任何值,才能在屬性 (Property) 上使用 Condition 屬性 (Attribute) 來設定值。 例如,只有在未設定環境變數時 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>

另請參閱