Aracılığıyla paylaş


Derlemede ortam değişkenlerini kullanma

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

Uyarı

MSBuild, ortam değişkenlerini güvenilir girişler olarak değerlendirir. MSBuild'in özel konumlardan görevler, .targetsveya dosyalar gibi derleme mantığını yüklemesine veya .props derlemenin yürütüliş biçimini değiştirmesine neden olabilirler.

Başvuru ortamı değişkenleri

Geçerli MSBuild özellik adları olan tüm ortam değişkenleri, 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.

Uyarı

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 ToolsPath özelliğini c:\tools olarak ayarlarToolsPath:

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

    Uyarı

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