Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Projeleri oluştururken, aynı bileşenleri sık sık farklı derleme seçenekleriyle derlersiniz. Örneğin, sembol bilgileri içeren bir hata ayıklama derlemesi veya sembol bilgisi olmayan ancak iyileştirmeler etkinleştirilmiş bir sürüm derlemesi oluşturabilirsiniz. Alternatif olarak, x86 veya x64 gibi belirli bir platformda çalışacak bir proje oluşturabilirsiniz. Tüm bu durumlarda derleme seçeneklerinin çoğu aynı kalır. Derleme yapılandırmasını denetlemek için yalnızca birkaç seçenek değiştirilir. MSBuild ile, kaynak dosyalarınız için farklı derleme yapılandırmaları oluşturmak üzere özellikleri ve koşulları kullanırsınız.
Derleme ayarlarını denetlemek için özellikleri kullanma
öğesi, Property proje dosyasında birden çok başvuru içeren bir değişken tanımlar. değişkeni geçici bir dizinin konumunu belirleyebilir veya Hata Ayıklama ve Yayın derlemeleri gibi çeşitli yapılandırmalarda kullanılan özelliklerin değerlerini ayarlayabilir. Özellikler hakkında daha fazla bilgi için bkz. MSBuild özellikleri.
Proje dosyasını değiştirmek zorunda kalmadan derlemenizin yapılandırmasını değiştirmek için özellikleri kullanabilirsiniz.
Condition ve PropertyGroup öğelerinin Property özniteliği, özelliklerin değerini değiştirmenize olanak tanır.
Başka bir özelliğe bağımlı bir özellik tanımlamak için özniteliğini
ConditionbirPropertyöğesinde ayarlayın:<DebugType Condition="'$(Flavor)'=='DEBUG'">full</DebugType>Başka bir özelliğe bağımlı olan bir özellik grubu tanımlamak için özniteliğini
ConditionbirPropertyGroupöğesinde ayarlayın:<PropertyGroup Condition="'$(Flavor)'=='DEBUG'"> <DebugType>full</DebugType> <Optimize>no</Optimize> </PropertyGroup>
MSBuild koşulları hakkında daha fazla bilgi için bkz. Koşullar.
Komut satırında özellikleri belirtme
Proje dosyanız birden çok yapılandırmayı kabul ettiğinde, projenizi her derlediğinizde yapılandırmaları değiştirme olanağına sahip olmanız gerekir. MSBuild, komut satırında -property veya -p anahtarlarıyla özellikleri belirlemenize izin vererek bu eylemi destekler.
Komut satırında bir proje özelliği ayarlamak için
-property(veya-p) anahtarıyla özellik adını ve değerini kullanın.msbuild file.proj -property:Flavor=DebugKomut satırını kullanarak birden fazla proje özelliği belirtmek için, her bir özellik adı ve değeriyle birlikte
-property(-p) seçeneğini kullanın.msbuild file.proj -p:Flavor=Debug -p:Platform=x86Komut satırında birden çok özellik belirtmek için bir kısayol vardır.
-property(-p) anahtarını bir kez girin ve özellik adları ve değerleri listesini noktalı virgül (;) kullanarak ayırın:msbuild file.proj -p:Flavor=Debug;Platform=x86;Verbose=True
Ortam değişkenleri ve özellikler arasında öncelik tanıma
MSBuild, ortam değişkeni değerlerini özellikleri işlediği şekilde işler. Derleme bir özellik için birden çok değerle karşılaştığında, değeri öncelik sırasına göre ayarlar: komut satırı (en yüksek), proje dosyası ve ortam değişkeni (en düşük).
Komut satırında belirtilen özellik değeri, proje dosyasında veya ortam değişkeninde aynı özellik için ayarlanan herhangi bir değerden önceliklidir.
Proje dosyasında ayarlanan özellik değeri, ortam değişkeninde tanımlanan karşılık gelen değerden önceliklidir.
Öncelik davranışını, özniteliğini bir proje etiketinde kullanarak TreatAsLocalProperty değiştirebilirsiniz. Bu öznitelikle özellik adlarını listelediğinizde, komut satırında belirtilen özellik değeri proje dosyasındaki değerden öncelikli değildir. Örnek için bkz . TreatAsLocalProperty özniteliğiyle önceliği değiştirme.
Daha fazla bilgi için bkz. Derlemede ortam değişkenlerini kullanma.
Derleme yapılandırmalarını değiştirmek için özellik gruplarını kullanma
Aşağıdaki örnekte, projenin Hata Ayıklama veya Yayın sürümü oluşturmak için iki özellik grubunu tanımlayan bir proje dosyası gösterilmektedir.
Hata ayıklama sürümünü oluşturmak için
-propertyanahtarını-pile birlikte kullanın veflavorözellik değerinidebugolarak ayarlayın:msbuild consolehwcs1.proj -p:flavor=debugYayın sürümünü oluşturmak için,
flavorözelliğinin değeriretailolarak ayarlanmış-propertyanahtarı (-p) kullanın.msbuild consolehwcs1.proj -p:flavor=retail
İşte proje dosyası:
<Project DefaultTargets = "Compile">
<!-- Set default flavor, if env variable 'Flavor' not set or specified on command line -->
<PropertyGroup>
<Flavor Condition="'$(Flavor)'==''">DEBUG</Flavor>
</PropertyGroup>
<!-- Define DEBUG settings -->
<PropertyGroup Condition="'$(Flavor)'=='DEBUG'">
<DebugType>full</DebugType>
<Optimize>no</Optimize>
</PropertyGroup>
<!-- Define RETAIL settings -->
<PropertyGroup Condition="'$(Flavor)'=='RETAIL'">
<DebugType>pdbonly</DebugType>
<Optimize>yes</Optimize>
</PropertyGroup>
<!-- Set application name as a property -->
<PropertyGroup>
<appname>HelloWorldCS</appname>
</PropertyGroup>
<!-- Specify inputs by type and file name -->
<ItemGroup>
<CSFile Include = "consolehwcs1.cs"/>
</ItemGroup>
<Target Name = "Compile">
<!-- Run Visual C# compilation using input file of type CSFile -->
<CSC Sources = "@(CSFile)"
DebugType="$(DebugType)"
Optimize="$(Optimize)"
OutputAssembly="$(appname).exe" >
<!-- Set OutputAssembly attribute of CSC task to name of created executable file -->
<Output TaskParameter="OutputAssembly"
ItemName = "EXEFile" />
</CSC>
<!-- Log file name of output file -->
<Message Text="The output file is @(EXEFile)"/>
</Target>
</Project>
TreatAsLocalProperty özniteliğiyle önceliği değiştirme
Aşağıdaki örnekte özniteliğinin nasıl kullanılacağı gösterilmektedir TreatAsLocalProperty .
Color özelliği, proje dosyasında Blue ve komut satırında Green değerine sahiptir. Proje etiketindeki TreatAsLocalProperty="Color" öznitelik ayarıyla, komut satırı özelliği (), proje dosyasında (GreenBlue) tanımlanan özellik değerini geçersiz kılmaz.
Projeyi oluşturmak için aşağıdaki komutu girin:
msbuild colortest.proj -t:go -property:Color=Green
İşte proje dosyası:
<Project TreatAsLocalProperty="Color">
<PropertyGroup>
<Color>Blue</Color>
</PropertyGroup>
<Target Name="go">
<Message Text="Color: $(Color)" />
</Target>
</Project>
<!--
Output with TreatAsLocalProperty="Color" in project tag:
Color: Blue
Output without TreatAsLocalProperty="Color" in project tag:
Color: Green
-->
İlgili içerik
- MSBuild
- MSBuild kavramları
- MSBuild referans
- Project öğesi (MSBuild)