Aracılığıyla paylaş


MSBuild görevi

Yapılar MSBuild projeleri başka bir MSBuild proje.

Parametreler

Parametreleri aşağıdaki tabloda açıklanmıştır MSBuild görev.

Parametre

Tanımlama

BuildInParallel

İsteğe bağlı Boolean parametresi.

true, Belirtilen projeleri Projects parametresi, mümkünse paralel olarak yapılandırılır.Varsayılan, false değeridir.

Projects

Gerekli ITaskItem[] parametresi.

Yapı proje dosyaları belirtir.

Properties

İsteğe bağlı String parametresi.

Özellik ad/değer çiftleri genel özellikleri alt projeye uygulamak için noktalı virgülle ayrılmış listesi.Bu parametre belirtirseniz, işlevsel olarak eşdeğer olan özellikleri ayarlamak /property ile oluşturma sırasında geçiş MSBuild.exe.Örne?in:

Properties="Configuration=Debug;Optimize=$(Optimize)"

Geçirdiğiniz zaman özellikleri üzerinden proje için Properties parametresi, MSBuild proje dosyası yüklenmiş olsa da, projenin yeni bir örneğini oluşturur.Projeye yeni bir örneğini oluşturduğunuzda MSBuild genel farklı özelliklere sahip olan ve projenin diğer örnekleri ile paralel oluşturulabilir farklı bir proje olarak nitelendirir.Örneğin, aynı zamanda hata ayıklama Yapılandırması sürümü yapılandırma oluşturabilir.

RebaseOutputs

İsteğe bağlı Boolean parametresi.

true, Göreli yollar hedef çıktı öğeleriniz yerleşik projelerinden yollarının göre arama projesi olacak şekilde ayarlandı.Varsayılan, false değeridir.

RemoveProperties

İsteğe bağlı String parametresi.

Kaldırmak için genel özellikler kümesini belirtir.

RunEachTargetSeparately

İsteğe bağlı Boolean parametresi.

true, MSBuild Çağıran her hedef için geçirilen listesinde görev MSBuild birer birer, yerine aynı anda.Bu parametreyi ayarlamak true daha önce çağrılan hedefleri başarısız olsa bile izleyen hedefler çağrılan garanti eder.Aksi takdirde, bir yapı hatasına tüm izleyen hedefler çağrılmasını durdurur.Varsayılan, false değeridir.

SkipNonexistentProjects

İsteğe bağlı Boolean parametresi.

true, Disk üzerinde bulunmayan proje dosyalarını atlanacak.Aksi takdirde, bu tür projelerin bir hataya neden olur.

StopOnFirstFailure

İsteğe bağlı Boolean parametresi.

true, Bir proje oluşturmak başarısız olduğunda başka proje oluşturulacaktır.Şu anda bu (birden çok işlemci ile) paralel oluştururken desteklenmiyor.

TargetAndPropertyListSeparators

İsteğe bağlı String[] parametresi.

Hedefler ve özellikler olarak listesini belirtir Project öğe meta).Ayırıcılar işleme önce çıkış olacaktır.e.g. % 3B (Kaçýrýlmýþ bir ';') bir çıkış gibi kabul edilir ';'.

TargetOutputs

İsteğe bağlı ITaskItem[] salt okunur bir çıkış parametresi.

Tüm proje dosyalarından yerleşik hedefleri çıkış verir.Yalnızca belirtilen hedefleri çıktıları döndürülür, hedeflerin bağımlı hedefleri var olabilir değil herhangi bir çıkış.

TargetOutputs Parametresi aşağıdaki meta verileri de içerir:

  • MSBuildSourceProjectFile: MSBuild Çıktılar kümesi hedef içeren proje dosyası.

  • MSBuildSourceTargetName: Çıktıları ayarlayın hedef.

NotNot
Her proje dosyasının çıktıları tanımlamak veya ayrı olarak hedeflemek, çalıştırmak istediğiniz, MSBuild her proje dosyasını veya hedef için ayrı ayrı görev.Çalıştırırsanız, MSBuild yalnızca tüm proje dosyaları oluşturmak için Çıktı hedefleri bir diziye toplandıktan sonra görev.

Targets

İsteğe bağlı String parametresi.

Hedef veya proje dosyaları oluşturmak için hedefler belirler.Hedef adların bir listesini ayırmak için noktalı virgül kullanın.Hedef yok belirtilirse MSBuild , görevin proje dosyalarında belirtilen varsayılan hedefler yapılandırılır.

NotNot
Hedefleri tüm proje dosyalarında bulunması gerekir.Aksi takdirde, bir yapı hatası oluşur.

ToolsVersion

İsteğe bağlı String parametresi.

Belirtir ToolsVersion bu göreve geçirilen proje oluşturma sırasında kullanmak için.

Sağlayan bir MSBuild farklı bir sürümünü hedefleyen bir proje oluşturmak için görev .NET Framework projede belirtilenin dışında.Valid values are 2.0, 3.0 and 3.5.Varsayılan değer 3.5'dur.

UnloadProjectsOnCompletion

İsteğe bağlı Boolean parametresi.

true, İşlem tamamlandıktan sonra proje kaldırılacak.

UseResultsCache

İsteğe bağlı Boolean parametresi.

true, Önbelleğe alınmış sonucu, varsa döndürülür.TheMSBuild görev çalıştırırsanız, bir kapsamda (ProjectFileName, GlobalProperties) sonucu önbelleğe alınır [TargetNames]

Yapı öğelerinin bir listesi

Notlar

Yukarıda listelenen parametrelere ek olarak, bu görevi parametrelerinden devralan TaskExtension sınıfı, hangi kendisi devraldığı Task sınıf.Bu ek parametreler ve açıklamalarının listesi için bkz: TaskExtension temel sınıf.

Kullanarak farklı olarak Exec görev MSBuild.exe'yi başlatmak için bu görevi aynı kullanır MSBuild alt projeleri oluşturmak üzere işlem.Atlanabilir zaten yerleşik hedeflerin listesini üst ve alt yapı arasında paylaşılır.Bu görevi de daha hızlı, çünkü Hayır yeni MSBuild işlem oluşturulur.

Bu görev yalnızca proje dosyaları aynı zamanda çözüm dosyalarını işleyebilir.

Tarafından gereken herhangi bir yapılandırma MSBuild projelerin aynı zamanda yapı yapılandırmasını uzak oluşsa da etkinleştirmek için altyapı (örneğin, bağlantı noktaları, iletişim kuralları, zaman aşımları, yeniden deneme ve benzeri), bir yapılandırma dosyası kullanarak yapılandırılabilir yapılması gerekir.Mümkün olduğunda, yapılandırma öğeleri üzerinde görev parametreleri olarak belirtilmesi gerektiğine MSBuild görev.

Öğesinden başlayarak MSBuild 3.5, çözüm projeleri tüm yapıların projeler şimdi yüzey TargetOutputs.

Projeler için geçirme özellikleri

Sürümlerinde MSBuild öncesinde MSBuild farklı geçen 3.5, listelenen farklı projeler için özellikleri ayarlar MSBuild madde zor.Özellikler özniteliğini kullandıysanız MSBuild görevi, onun ayarı tüm projeler, yığınlanacağı mıdır sürece yerleşik uygulandığı sonra MSBuild görevi ve koşullu olarak öğe listesindeki her proje için farklı özellikler sağlanan.

MSBuild3.5, ancak sağlayan iki yeni ayrılmış meta verisi öğeleri, özellikleri ve farklı özellikleri farklı geçirmek için esnek bir yol sağlayan AdditionalProperties olmanın projelerde kullanılarak oluşturulan MSBuild görevi.

[!NOT]

Bu yeni meta veri öğeleri projelerine özniteliğinde geçirilen öğeleri uygulanabilir MSBuild görevi.

Birden çok işlemcili yapı avantajları

Bu yeni meta verileri kullanmanın en önemli avantajlarından biri, projelerinizi paralel olarak birden çok işlemcili bir sistemde yapı ortaya çıkar.Tüm projelerin tek bir konsolide etmek meta verileri verir MSBuild görevi herhangi bir toplu işleme gerçekleştirmek zorunda veya Koşullu çağrı MSBuild görevler.Ve yalnızca tek bir çağırdığınızda MSBuild görevi, tüm projeler öznitelikte listelenen projeler paralel olarak oluşturulacaktır.(Sadece, ancak, BuildInParallel=true özniteliği, mevcut MSBuild görevi.) Daha fazla bilgi için bkz. MSBuild ile Paralel Olarak Birden Çok Proje Derleme.

Meta veri özellikleri

Kullanarak birden fazla çözüm dosyalarını oluştururken sık karşılaşılan bir senaryodur MSBuild görevi, yalnızca farklı yapı yapılandırmaları kullanarak.Çözüm a1 oluşturmak isteyebilir kullanarak hata ayıklama yapılandırması ve çözüm a2 Yayın Yapılandırması'nı kullanarak.İçinde MSBuild 2.0, bu proje dosyası aşağıdaki gibi görünecektir:

[!NOT]

Aşağıdaki örnekte, "..." ek çözüm dosyalarını temsil eder.

z7f65y0d.collapse_all(tr-tr,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">
        <MSBuild Projects="a1.sln..." Properties="Configuration=Debug"/>
        <MSBuild Projects="a2.sln" Properties="Configuration=Release"/>
    </Target>
</Project>

Özellik meta verileri kullanarak, ancak, bu tek bir kullanmak için basitleştirebilirsiniz MSBuild görevi, aşağıda gösterildiği gibi:

z7f65y0d.collapse_all(tr-tr,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectToBuild Include="a1.sln…">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>
        <ProjectToBuild Include="a2.sln">
            <Properties>Configuration=Release</Properties>
        </ProjectToBuild>
    </ItemGroup>
    <Target Name="Build">
        <MSBuild Projects="@(ProjectToBuild)"/>
    </Target>
</Project>

- veya -

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectToBuild Include="a1.sln…"/>
        <ProjectToBuild Include="a2.sln">
            <Properties>Configuration=Release</Properties>
        </ProjectToBuild>
    </ItemGroup>
    <Target Name="Build">
        <MSBuild Projects="@(ProjectToBuild)" 
          Properties="Configuration=Debug"/>
    </Target>
</Project>

Meta veri AdditionalProperties

Burada oluşturduğunuz iki çözüm dosyalarını kullanarak aşağıdaki senaryoyu düşünün MSBuild görevi, her iki sürüm yapılandırma'yı kullanarak, ancak bir x 86 mimarisine ve diğer IA64 mimarisi kullanarak kullanarak.İçinde MSBuild 2.0, birden çok nesnesini yaratmayı gerek MSBuild görevi: x 86 sürümü yapılandırma'yı kullanarak projeyi oluşturmak için bir mimari ile IA64 mimarisi sürüm yapılandırma'yı kullanarak diğer.Proje dosyanızı aşağıdaki gibi görünecektir:

z7f65y0d.collapse_all(tr-tr,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">
        <MSBuild Projects="a1.sln…" Properties="Configuration=Release; 
          Architecture=x86"/>
        <MSBuild Projects="a2.sln" Properties="Configuration=Release; 
          Architecture=ia64"/>
    </Target>
</Project>

AdditionalProperties meta verileri kullanarak, tek bir kullanmak için bunu basitleştirebilirsiniz MSBuild görevi aşağıdakileri kullanarak:

z7f65y0d.collapse_all(tr-tr,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectToBuild Include="a1.sln…">
            <AdditionalProperties>Architecture=x86
              </AdditionalProperties>
        </ProjectToBuild>
        <ProjectToBuild Include="a2.sln">
            <AdditionalProperties>Architecture=ia64
              </AdditionalProperties>
        </ProjectToBuild>
    </ItemGroup>
    <Target Name="Build">
        <MSBuild Projects="@(ProjectToBuild)" 
          Properties="Configuration=Release"/>
    </Target>
</Project>

Örnek

Aşağıdaki örnek MSBuild tarafından belirtilen projeleri oluşturmak üzere görev ProjectReferences öğe koleksiyonu.Sonuçta elde edilen hedef çıktı depolanmış olan AssembliesBuiltByChildProjects öğe koleksiyonu.

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

    <ItemGroup>
        <ProjectReferences Include="*.*proj" />
    </ItemGroup>

    <Target Name="BuildOtherProjects">
        <MSBuild
            Projects="@(ProjectReferences)"
            Targets="Build">
            <Output
                TaskParameter="TargetOutputs"
                ItemName="AssembliesBuiltByChildProjects" />
        </MSBuild>
    </Target>

</Project>

Ayrıca bkz.

Kavramlar

MSBuild görevleri

Diğer Kaynaklar

MSBuild görevi başvurusu