Aracılığıyla paylaş


MSBuild Özellikleri

Özellikler, yapıları yapılandırmak için kullanılabilen ad-değer çiftleridir.Özellikler, proje dosyası içinde başvurulacak görevlere, değerlendirme koşullarına ve depolama değerlerine değerler geçirmek için yararlıdır.

Proje Dosyasındaki Özellikleri Tanımlama ve Başvurma

Özellikler, proje dosyasında, özelliğin adını bir PropertyGroup öğesinin alt öğesi olarak içeren bir öğe oluşturularak bildirilir.Örneğin aşağıdaki XML, bir Build değeri içeren BuildDir adında bir özellik oluşturur.

<PropertyGroup>
    <BuildDir>Build</BuildDir>
</PropertyGroup>

Özelliklere proje dosyası üzerinden söz dizimi $(PropertyName) kullanılarak başvurulabilir.Örneğin, önceki örnekteki özellik $(BuildDir) kullanılarak başvurulur.

Özellik değerlerini özelliği yeniden tanımlayarak değiştirebilirsiniz.Bu BuildDir özelliğine bu XML'i kullanarak yeni bir değer verilebilir.

<PropertyGroup>
    <BuildDir>Alternate</BuildDir>
</PropertyGroup>

Özellikler, proje dosyasında göründükleri sırayla değerlendirilir.Bu BuildDir öğesi için olan yeni bir değer eski değer atandıktan sonra bildirilmesi gerekir.

Ayrılmış Özellikler

MSBuild, proje dosyası ve MSBuild ikili dosyaları hakkındaki bilgileri saklamak için bazı özellik adları rezerve eder.Bu özellikler herhangi bir özellik gibi $ gösterimi kullanılarak başvurulur.Örneğin, $(MSBuildProjectFile) dosya adı uzantısı ile birlikte proje dosyasının dosya adının tamamını döner.

Daha fazla bilgi için, bkz. Nasıl Yapılır: Proje Dosyasının Adına veya Konumuna Başvurma ve MSBuild Ayrılmış ve Tanınmış Özellikleri.

Ortam Özellikleri

Ayrılmış özelliklere başvurduğunuz gibi proje dosyasındaki ortam değişkenlerine başvurabilirsiniz.Örneğin, PATH ortam değişkenini proje dosyanızda kullanmak için, $(yol) kullanın.Proje ortam özelliği ile aynı ada sahip bir özellik tanımı içeriyorsa projedeki özellik ortam değişkeninin değerini geçersiz kılar.

Her MSBuild projesini bir yalıtılmış ortam bloğu vardır: yalnızca kendi bloğuna olan okumaları ve yazmaları görür. MSBuild, Proje dosyasını değerlendirilmeden veya oluşturulmadan önce özellik koleksiyonunu başlattığında yalnızca ortam değişkenlerini okur.Bundan sonra bu ortam özellikleri statiktir, yani aynı adlar ve değerler ile her araç başlar.

Oluşturulan bir aracın içinden gelen ortam değişkeninin geçerli değerini almak Özellik İşlevleri System.Environment.GetEnvironmentVariable öğesini kullanın.Tercih edilen yöntem, ancak EnvironmentVariables görev parametresini kullanmak içindir.Bu dize dizisinde ayarlanan ortam özellikleri sistem ortamı değişkenlerini etkilemeden oluşturulan araca gönderilebilir.

İpucuİpucu

Tüm ortam değişkenleri, başlangıç özellikleri olmak için okunmadı.Adı geçerli bir MSBuild özellik adı olmayan herhangi bir ortam değişkeni, "386" gibi, göz ardı edilir.

Daha fazla bilgi için bkz. Nasıl Yapılır: Derlemede Ortam Değişkenlerini Kullanma.

Kayıt defteri özellikleri

Bu Hive öğesinin kayıt defteri kovanı olduğu(örneğin, HKEY_LOCAL_MACHINE), Key öğesinin anahtar adı olduğu, SubKey öğesinin alt anahtar adı olduğu ve Value öğesinin alt anahtarın değeri olduğu yerde aşağıdaki söz dizimi kullanarak sistem kayıt değerlerini okuyabilirsiniz.

$(registry:Hive\MyKey\MySubKey@Value)

Varsayılan alt anahtar değerini almak için Value öğesini atın.

$(registry:Hive\MyKey\MySubKey)

Bu kayıt defteri değeri oluşturma özelliğini başlatmak için kullanılabilir.Örneğin, Visual Studio web tarayıcınızın giriş sayfasını temsil eden bir yapı özelliği oluşturmak için bu kodu kullanın:

<PropertyGroup>
  <VisualStudioWebBrowserHomePage>
    $(registry:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebBrowser@HomePage)
  </VisualStudioWebBrowserHomePage>
<PropertyGroup>

Genel Özellikler

MSBuild /property (veya /p) anahtarını kullanarak komut satırındaki özellikleri ayarlamanızı sağlar.Bu genel özellik değerleri proje dosyasında ayarlanan özellik değerlerini geçersiz kılar.Bu ortam özellikleri içerir, ancak değiştirilemez ayrılmış özellikleri içermez.

Aşağıdaki örnek genel Configuration özelliğini DEBUG olarak ayarlar.

msbuild.exe MyProj.proj /p:Configuration=DEBUG

Genel özellikler, MSBuild görevinin Properties özniteliğini kullanarak çoklu proje yapısındaki alt projeler için ayarlanabilir veya değiştirilebilir.Daha fazla bilgi için bkz. MSBuild Görevi.

Genel özelliğin proje dosyasında ayarlanan özellik değerini geçersiz kılmadığı proje etiketi içindeki TreatAsLocalProperty özniteliğini kullanarak bir özellik belirtebilirsiniz.Daha fazla bilgi için, bkz. Proje Öğesi (MSBuild) ve Nasıl Yapılır: Farklı Seçeneklerle Aynı Kaynak Dosyaları Derleme.

Özellik İşlevleri

.NET Framework sürüm 4'ten başlayarak, MSBuild komut dosyalarınızı değerlendirmek için özellik işlevlerini kullanabilirsiniz.MSBuild görevleri kullanmadan yapı komut dosyanızın sistem saatini okuyabilir, dizeleri karşılaştırabilir, normal ifadeleri eşleştirebilir ve başka birçok eylemi gerçekleştirebilirsiniz.

Herhangi bir özelliğin üzerinde gerçekleştirmek için dize (örnek) kullanabilirsiniz ve birçok sistem sınıfının statik yöntemlerini çağırabilirsiniz.Örneğin, bir derleme özelliğini bugüne aşağıdaki gibi ayarlayabilirsiniz.

<Today>$([System.DateTime]::Now.ToString("yyyy.MM.dd"))</Today>

Daha fazla bilgi ve özellik işlevlerin listesi için bkz: Özellik İşlevleri.

Çalıştırma Sırasında Özellik Oluşturma

Bu Target öğeleri dışında konumlanan özelliklere yapı aşamasının değerlendirme aşamasında değerler atanır.Sonraki yürütme aşamasında özellikler oluşturulabilir veya aşağıdaki gibi değiştirilebilir:

  • Bir özellik herhangi bir görev tarafından yayılabilir.Bir özellik yaymak için görev öğesi PropertyName özniteliğine sahip bir alt Çıktı öğesine sahip olmalıdır.

  • Bir özellik CreateProperty görevi tarafından yayılabilir.Bu kullanım önerilmiyor.

  • .NET Framework 3.5 içinde başlayarak, Target öğeleri özellik bildirimleri içeren PropertyGroup öğeleri içerebilir.

Özellikler içinde XML Depolamak

Özellikler, değerleri görevlere geçirmede ve günlük bilgileri görüntülemede yardım edebilecek rasgele bir XML içerebilir.Aşağıdaki örnek XML ve diğer özellik başvurularını içeren bir değere sahip olan ConfigTemplate özelliğini gösterir.MSBuild ilgili özellik değerlerini kullanarak özellik başvurularını değiştirir.Özellik değerleri göründükleri sırayla atanır.Bu nedenle, bu örnekte, $(MySupportedVersion), $(MyRequiredVersion) ve $(MySafeMode) önceden tanımlanmıştır.

<PropertyGroup>
    <ConfigTemplate>
        <Configuration>
            <Startup>
                <SupportedRuntime
                    ImageVersion="$(MySupportedVersion)"
                    Version="$(MySupportedVersion)"/>
                <RequiredRuntime
                    ImageVersion="$(MyRequiredVersion)
                    Version="$(MyRequiredVersion)"
                    SafeMode="$(MySafeMode)"/>
            </Startup>
        </Configuration>
    </ConfigTemplate>
</PropertyGroup>

Ayrıca bkz.

Görevler

Nasıl Yapılır: Derlemede Ortam Değişkenlerini Kullanma

Nasıl Yapılır: Proje Dosyasının Adına veya Konumuna Başvurma

Nasıl Yapılır: Farklı Seçeneklerle Aynı Kaynak Dosyaları Derleme

Başvuru

MSBuild Ayrılmış ve Tanınmış Özellikleri

Özellik Öğesi (MSBuild)

Diğer Kaynaklar

MSBuild Kavramları

MSBuild