Aracılığıyla paylaş


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

Projeleri oluşturduğunuzda, sık sık aynı bileşenleri farklý yapý seçenekleri ile derleyin.Örneğin, hata ayıklama yapı simge bilgilerini veya sembol bilgisi yok ama en iyi duruma getirme etkin bir yayın yapısı oluşturabilirsiniz.Veya x 86 gibi belirli bir platformda çalıştırmak için bir proje oluşturabilirsiniz veya x64.Bu durumlarda, yapı seçeneklerin çoğu aynı kalır; yapı yapılandırmasını denetlemek için yalnızca birkaç seçenekleri değişir.İle MSBuild, özellikleri ve koşulları farklı yapı yapılandırmaları oluşturmak için kullanın.

Projeleri değiştirmek için özelliklerini kullanma

Property Kullanılan özelliklere iliþkin deðerleri ayarlamak için hata ayıklama yapı ve bir yayın gibi birkaç yapılandırmaları oluşturmak veya birkaç kez bir geçici dizin konumu gibi bir proje dosyası içinde başvurulan bir değişken tanımlar.Özellikler hakkında daha fazla bilgi için bkz: MSBuild Özellikleri.

Proje dosyasını değiştirmek zorunda kalmadan yapı yapılandırmasını değiştirmek için özelliklerini kullanın.Condition Özniteliği Property öğesi ve PropertyGroup öğe özelliklerinin değerini değiştirmenize olanak verir.Hakkında daha fazla bilgi için MSBuild koşulları, bkz: MSBuild Koşulları.

Bir grubu başka bir özelliğe dayalı özellikleri ayarlamak için

  • Kullanım bir Condition özniteliğini bir PropertyGroup öğesinde aşağıdakine benzer:

    <PropertyGroup Condition="'$(Flavor)'=='DEBUG'">
        <DebugType>full</DebugType>
        <Optimize>no</Optimize>
    </PropertyGroup>
    

Başka bir özelliğini temel alan bir özellik tanımlamak için

  • Kullanım bir Condition özniteliğini bir Property öğesinde aşağıdakine benzer:

    <DebugType Condition="'$(Flavor)'=='DEBUG'">full</DebugType>
    

Komut satırında özellikleri belirleme

Birden çok yapılandırmaları kabul etmek için proje dosyanızı yazıldıktan sonra projenizi derlediğiniz zaman bu yapılandırmaları değiştirme yeteneği olması gerekir.MSBuildkomut satırını kullanarak belirtilen özellikleri sağlayarak bu yeteneği sağlar /property veya /p geçin.

Komut satırında bir proje özelliğini ayarlamak için

  • Kullanım /property geçiş özelliğini ve özellik değeri.Örne?in:

    msbuild file.proj /property:Flavor=Debug
    

    - veya -

    Msbuild file.proj /p:Flavor=Debug
    

Komut satırında birden fazla proje özelliği belirtmek için

  • Kullanmak /property veya /p özelliği ve özellik değerleri ile birden çok kez geçebilir veya kullanmak /property veya /p geçiş ve birden çok özellik noktalı virgülle (;) ayırın.Örne?in:

    msbuild file.proj /p:Flavor=Debug;Platform=x86
    

    - veya -

    msbuild file.proj /p:Flavor=Debug /p:Platform=x86
    

Ortam değişkenleri, özellikleri olarak kabul edilir ve otomatik olarak eklenen MSBuild.Ortam değişkenlerini kullanma hakkında daha fazla bilgi için bkz: Nasıl Yapılır: Derlemede Ortam Değişkenlerini Kullanma.

Komut satırında belirtilen özellik değeri proje dosyasında aynı özelliğini ayarlamak ve proje dosyasındaki değer bir ortam değişkenine değer önceliklidir değeri daha önceliklidir.

Kullanarak bu davranışı değiştirebilirsiniz TreatAsLocalProperty proje etiketinde öznitelik.Bu öznitelik ile listelenen özellik adları, komut satırında belirtilen özellik değeri proje dosyasındaki değer önceliklidir değildir.Bu konudaki örnek bulabilirsiniz.

Örnek

Aşağıdaki kod örneği, "Hello World" projesi, hata ayıklama yapı ve yayın yapısı oluşturmak için kullanılan iki yeni özellik gruplarını içerir.

Bu projenin hata ayıklama sürümünü oluşturmak için aşağıdakileri yazın:

msbuild consolehwcs1.proj /p:flavor=debug

Bu proje perakende sürümü oluşturmak için aşağıdakileri yazın:

msbuild consolehwcs1.proj /p:flavor=retail

<Project DefaultTargets = "Compile"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <!-- Sets the default flavor of an environment variable called 
    Flavor is not set or specified on the command line -->
    <PropertyGroup>
        <Flavor Condition="'$(Flavor)'==''">DEBUG</Flavor>
    </PropertyGroup>

    <!-- Define the DEBUG settings -->
    <PropertyGroup Condition="'$(Flavor)'=='DEBUG'">
        <DebugType>full</DebugType>
        <Optimize>no</Optimize>
    </PropertyGroup>

    <!-- Define the RETAIL settings -->
    <PropertyGroup Condition="'$(Flavor)'=='RETAIL'">
        <DebugType>pdbonly</DebugType>
        <Optimize>yes</Optimize>
    </PropertyGroup>

    <!-- Set the application name as a property -->
    <PropertyGroup>
        <appname>HelloWorldCS</appname>
    </PropertyGroup>

    <!-- Specify the inputs by type and file name -->
    <ItemGroup>
        <CSFile Include = "consolehwcs1.cs"/>
    </ItemGroup>

    <Target Name = "Compile">
        <!-- Run the Visual C# compilation using input files
        of type CSFile -->
        <CSC  Sources = "@(CSFile)"
            DebugType="$(DebugType)"
            Optimize="$(Optimize)"
            OutputAssembly="$(appname).exe" >

            <!-- Set the OutputAssembly attribute of the CSC
            task to the name of the executable file that is 
            created -->
            <Output TaskParameter="OutputAssembly"
                ItemName = "EXEFile" />
        </CSC>
        <!-- Log the file name of the output file -->
        <Message Text="The output file is @(EXEFile)"/>
    </Target>
</Project>

Aşağıdaki örnek, nasıl kullanılacağını gösterir TreatAsLocalProperty özniteliği.Color Özellik değeri olan Blue proje dosyasında ve Green komut satırında.İle TreatAsLocalProperty="Color" komut satırı özelliği proje etiketinde (Green) proje dosyasında tanımlanmış özellik geçersiz kılmaz (Blue).

Projeyi oluşturmak için aşağıdaki komutu girin:

msbuild colortest.proj /t:go /property:Color=Green

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="4.0" 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
-->

Ayrıca bkz.

Başvuru

Proje Öğesi (MSBuild)

Diğer Kaynaklar

MSBuild

MSBuild Kavramları

MSBuild Başvurusu