Derlemede ortam değişkenleri kullanma

Projeleri oluştururken, genellikle proje dosyasında olmayan bilgileri veya projenizi oluşturan dosyaları kullanarak derleme seçeneklerini ayarlamak gerekir. Bu bilgiler genellikle ortam değişkenlerinde depolanır.

Başvuru ortamı değişkenleri

Geçerli MSBuild özellik adları olan tüm ortam değişkenleri, Microsoft Build Engine (MSBuild) proje dosyasında özellik olarak kullanılabilir. Geçerli özellik adları MSBuild özelliklerinde açıklanmıştır. Örneğin, bir sayı ile başlayan ortam değişkenleri MSBuild'de kullanılamaz.

Dekont

Proje dosyası, ortam değişkeniyle aynı ada sahip bir özelliğin açık tanımını içeriyorsa, proje dosyasındaki özellik ortam değişkeninin değerini geçersiz kılar.

MSBuild projesinde ortam değişkeni kullanmak için

  • Ortam değişkenine, proje dosyanızda bildirilen bir değişkenle aynı şekilde başvurun. Örneğin, aşağıdaki kod BIN_PATH ortam değişkenine başvurur:

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

    Ortam değişkeni ayarlanmadıysa bir özellik için varsayılan değer sağlamak üzere bir öznitelik kullanabilirsiniz Condition .

Bir özellik için varsayılan değer sağlamak için

  • Condition Yalnızca özelliğin değeri yoksa değeri ayarlamak için bir özellikte özniteliğini kullanın. Örneğin, aşağıdaki kod yalnızca ortam değişkeni ayarlanmadıysa özelliğini c:\tools olarak ayarlarToolsPath:ToolsPath

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

    Dekont

    Özellik adları büyük/küçük harfe duyarlı değildir, bu nedenle her ikisi de $(ToolsPath) aynı $(TOOLSPATH) özelliğe veya ortam değişkenine başvurur.

Örnek

Aşağıdaki proje dosyası, dizinlerin konumunu belirtmek için ortam değişkenlerini kullanır.

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