Bagikan melalui


Menggunakan variabel lingkungan dalam build

Saat Anda membuat proyek, sering kali perlu mengatur opsi build menggunakan informasi yang tidak ada dalam file proyek atau file yang terdiri dari proyek Anda. Informasi ini biasanya disimpan dalam variabel lingkungan.

Variabel lingkungan referensi

Semua variabel lingkungan yang merupakan nama properti MSBuild yang valid tersedia untuk file proyek Microsoft Build Engine (MSBuild) sebagai properti. Nama properti yang valid dijelaskan dalam properti MSBuild. Misalnya, variabel lingkungan yang dimulai dengan angka tidak tersedia di MSBuild.

Catatan

Jika file proyek berisi definisi eksplisit dari properti yang memiliki nama yang sama dengan variabel lingkungan, properti dalam file proyek akan menggantikan nilai variabel lingkungan.

Untuk menggunakan variabel lingkungan dalam proyek MSBuild

  • Referensikan variabel lingkungan dengan cara yang sama seperti Anda akan mendeklarasikan variabel dalam file proyek Anda. Misalnya, kode berikut mereferensikan variabel lingkungan BIN_PATH:

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

    Anda dapat menggunakan atribut Condition untuk memberikan nilai default untuk properti jika variabel lingkungan tidak diatur.

Untuk memberikan nilai default untuk properti

  • Gunakan atribut Condition pada properti untuk mengatur nilai hanya jika properti tidak memiliki nilai. Misalnya, kode berikut mengatur properti ToolsPath ke c:\tools hanya jika variabel lingkungan ToolsPath tidak diatur:

    <ToolsPath Condition="'$(TOOLSPATH)' == ''">c:\tools</ToolsPath>

    Catatan

    Nama properti tidak peka huruf besar/kecil sehingga $(ToolsPath) dan $(TOOLSPATH) mereferensikan variabel properti atau lingkungan yang sama.

Contoh

File proyek berikut menggunakan variabel lingkungan untuk menentukan lokasi direktori.

<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>