Share via


在組建中使用環境變數

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

參考環境變數

所有屬於有效 MSBuild 屬性名稱的環境變數都可作為屬性供 Microsoft Build Engine (MSBuild) 專案檔使用。 MSBuild 屬性中描述何為有效的屬性名稱。 例如,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>