Share via


MSBuild

Microsoft Build Engine Uygulamaları geliştirmek için bir platformdur. MSBuild olarak bilinir, bu alt yapı platformunu nasıl işler ve yazılım oluşturur denetleyen bir proje dosyası bir xml şeması sağlar. Visual Studio MSBuild kullanır, ancak Visual Studio üzerinde bağımlı değildir. Proje veya çözüm dosyası üzerinde MSBuild.exe'yi çağırarak nerede Visual Studio yüklü olmayan ortamlarda ürünler oluşturmasına ve yönetirler.

Visual Studio Yük ve yönetilen projeleri oluşturmak için MSBuild kullanır. Proje dosyalarını (.csproj, .vbproj, vcxproj ve diğerleri) Visual Studio IDE kullanarak bir proje oluştururken, yürütülen MSBuild xml kodu içerir. Visual Studio projeleri gerekli tüm ayarları alın ve tipik geliştirme çalışması yapmak için süreçleri oluşturmanıza, ancak genişletmek veya onlardan Visual Studio içinde veya bir xml Düzenleyicisi kullanarak değiştirin.

Visual Studio IDE bir MSBuild komut satırını kullanarak çalıştırdığınızda yapılar aşağıdaki örneklerde gösterilmektedir.

  • Visual Studio yüklü değildir.

  • MSBuild 64-bit sürümünü kullanmak istiyorsunuz. Bu sürümü, MSBuild genellikle gerekli değildir, ancak daha fazla belleğe erişmek MSBuild sağlar.

  • Birden çok işlem içinde bir yapı tanımını çalıştırmak istiyorsunuz. Ancak, IDE içinde c++, Visual Studio 2012 ile C# başlangıç ve projelerde aynı sonucu elde etmek için kullanabilirsiniz.

  • Yapı sistemi değiştirmek istiyorsunuz. Örneğin, aşağıdaki eylemleri etkinleştirmek isteyebilirsiniz:

    • Bunlar derleyici geçebilmek dosyaları önişlem.

    • Yapı çıktıları farklı bir yere kopyalayın.

    • Sıkıştırılmış dosyaları yapı çıkışları oluşturur.

    • Son İşlemci adım yapın. Örneğin, farklı bir sürümüne sahip bir derleme damga isteyebilirsiniz.

Visual Studio IDE içinde kod yazabilirsiniz ancak çalışma MSBuild kullanarak oluşturur. Başka bir alternatif olarak, IDE içindeki kod geliştirme bilgisayarında yapı ancak bir MSBuild komut satırı birden fazla geliştiricilerden tümleşik kodu oluşturmak için kullanın.

Not

Team Foundation Yapı otomatik olarak derlemek, test ve uygulamanızı dağıtmak için kullanabilirsiniz.Otomatik olarak geliştiriciler (örneğin, sürekli tümleştirme stratejisinin bir parçası) kod içinde denetlediğinizde, oluşturmaları çalıştırabilir veya bir zamanlama (örneğin, bir gecelik yapı doğrulama testleri yapı) göre yapı sistemi can.Team Foundation Yapısı, MSBuild kullanarak kodunuzu derler.Daha fazla bilgi için bkz. Uygulama oluşturma.

Bu konu, MSBuild genel bir bakış sağlar. Tanıtıcı bir eğitim için bkz: İzlenecek yol: MSBuild kullanma.

Bu konuda

  • Komut satırında MSBuild kullanma

  • Proje dosyası

    • Özellikler

    • Öğeler

    • Görevler

    • Hedefler

  • Günlükleri oluşturma

  • MSBuild kullanarak Visual Studio

  • Çoklu Sürüm Desteği

Komut satırında MSBuild kullanma

Çalıştırmak için MSBuild bir komut isteminde, uygun komut satırı seçenekleri ile birlikte bir proje dosyası MSBuild.exe'yi için geçirin. Komut satırı seçenekleri, özelliklerini ayarlamak için belirli hedefleri yürütme ve oluşturma işlemi denetleyen başka seçenekleri ayarlamak sağlar. Örneğin, dosyayı oluşturmak için aşağıdaki komut satırı sözdizimi kullanırsınız MyProj.proj ile Configuration özelliğini Debug.

MSBuild.exe MyProj.proj /property:Configuration=Debug

Hakkında daha fazla bilgi için MSBuild komut satırı seçenekleri Bkz: MSBuild Komut Satırı Başvurusu

Güvenlik NotuGüvenlik Notu

Bir proje karşıdan yüklemeden önce kod parçalarıdır belirler.

Proje dosyası

MSBuildkolay anlaşılan ve genişletilebilir bir proje xml tabanlı dosya biçimi kullanır. MSBuild Proje dosya biçimi oluşturulacak olan maddeleri açıklamak geliştiriciler sağlar ve aynı zamanda nasıl olduklarından farklı işletim sistemleri ve yapılandırmaları için oluşturulacak. Ayrıca, proje dosyası biçimine yapılar üründeki farklı projeler arasında tutarlı bir şekilde gerçekleştirilebilir olacak şekilde ayrı dosyalara çarpanlarına geliştiriciler Yazar yeniden kullanılabilir yapı kuralları sağlar.

Bazı temel öğelerini aşağıdaki bölümlerde açıklanmıştır MSBuild proje dosya biçimi. Temel Proje dosyası oluşturma hakkında bir eğitim için bkz: İzlenecek yol: MSBuild proje dosyasını sıfırdan oluşturma.

Dd393574.collapse_all(tr-tr,VS.110).gifÖzellikler

Yapılar yapılandırmak için kullanılan anahtar/değer çifti özelliklerini temsil eder. Özellikler, özellik adını alt öğesi olarak sahip bir öğe oluşturarak bildirilir bir PropertyGroup öğesi. Örneğin, aşağıdaki kod adında bir özellik oluşturur BuildDir değerine sahip olan Build.

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

Yerleştirerek bir özellik koşullu olarak tanımlayabilirsiniz bir Condition öğesinde öznitelik. İçeriği koşullu öğeler için koşulu değerlendirir yoksayılır true. Aşağıdaki örnekte, Configuration öğesi henüz tanımlanmamışsa tanımlanır.

<Configuration  Condition=" '$(Configuration)' == '' ">Debug</Configuration>

Özellikler başvurulabilir proje dosyası $ biçiminde bir sözdizimi kullanılarak (PropertyName). Örneğin kullanarak özellikleri önceki örneklerde başvuruda bulunabilir $(BuildDir) ve $(Configuration).

Özellikler hakkında daha fazla bilgi için bkz: MSBuild özellikleri.

Dd393574.collapse_all(tr-tr,VS.110).gifÖğeler

Öğeler Yapı sistemine giriş ve genellikle dosyaları gösterir. Öğeleri öğe türleri, kullanıcı tanımlı öğe adlarına dayalı olarak gruplandırılır. Bu öğe türleri tek tek öğeler Yapı işleminin adımları gerçekleştirmek için kullanacağınız görevler için parametreleri olarak kullanılabilir.

Öğeleri bir alt öğe türünün adını sahip bir öğe oluşturarak proje dosyasında bildirilen bir ItemGroup öğesi. Örneğin, aşağıdaki kod adlı bir öğe türü oluşturur Compile, iki dosya içerir.

<ItemGroup>
    <Compile Include = "file1.cs"/>
    <Compile Include = "file2.cs"/>
</ItemGroup>

Öğe türleri başvurulabilir proje dosyası sözdizimi kullanarak @(ItemType). Örneğin, örnekteki madde türü kullanarak başvurulması @(Compile).

MSBuild öğe ve öznitelik adları büyük/küçük harf duyarlıdır. Ancak, meta veri özelliği ve madde adları değildir. Aşağıdaki örnek, madde tipi oluşturur Compile, comPile, veya herhangi bir diğer büyük değişim ve madde türü "one.cs;two.cs" değerini verir.

<ItemGroup>
  <Compile Include="one.cs" />
  <comPile Include="two.cs" />
</ItemGroup>

Öğeler joker karakterleri kullanarak bildirilen ve yapı daha gelişmiş senaryolar için ek meta veriler içerebilir. Öğeleri hakkında daha fazla bilgi için bkz: MSBuild öğeleri.

Dd393574.collapse_all(tr-tr,VS.110).gifGörevler

Görevleri olan birim yürütülebilir kod MSBuild projeleri yapı işlemleri gerçekleştirmek için kullanın. Örneğin, bir görev bir giriş dosyalarını derlemek veya harici bir aracı çalıştırmak. Görevleri yeniden kullanılabilir ve bunlar farklı projelerde farklı geliştiriciler tarafından paylaşılabilir.

Bir görevin yürütme mantığı içinde yönetilen kod yazılan ve eşlenmiş MSBuild kullanarak UsingTask öğesi. Kendi görev uygulayan yönetilen tür yazarak yazma ITask arabirim. Görevleri yazma hakkında daha fazla bilgi için bkz: Görev yazma.

MSBuildgereksinimlerinize uyacak şekilde değiştirebilirsiniz ortak görevleri içerir. Örnekler kopya, dosyaları kopyalar MakeDir, dizinleri oluşturur ve Csc, Visual C# kaynak kodu dosyaları derler. Kullanım bilgilerinin yanı sıra kullanılabilir görevler listesi için bkz: MSBuild görevi başvurusu.

Bir görev olarak yürütülen bir MSBuild alt öğesi olarak görevin adını içeren bir öğe oluşturarak proje dosyası bir hedef öğesi. Görevler genellikle öğesinin öznitelikleri geçirilen parametreleri kabul eder. Her ikisi de MSBuild özellikleri ve öğeleri parametreleri olarak kullanılabilir. Örneğin, çağrıları aşağıdaki kod MakeDir değeri geçirir ve görev BuildDir özelliği önceki örnekte bildirildi.

<Target Name="MakeBuildDirectory">
    <MakeDir  Directories="$(BuildDir)" />
</Target>

Görevler hakkında daha fazla bilgi için bkz: MSBuild görevleri.

Dd393574.collapse_all(tr-tr,VS.110).gifHedefler

Hedefler görevleri belirli bir sıraya göre gruplamak ve proje dosyasının bölümleri yapı işlemine giriş noktası kullanır. Hedefleri, genellikle genişletme için izin veren ve okunabilirliği artırmak için mantıksal bölümlere gruplandırılır. Yapı adımları hedefleri bölme her hedef içinde o bölümün kodunun kopyalamadan yapı sürecinin bir parçası diğer hedeflerden çağrı olanak sağlar. Örneğin, yapı işlemine birkaç giriş noktaları oluşturulacak başvurular gerektirir, başvuru oluşturur bir hedef oluşturmak ve hedefleyen burada gerekli her giriş noktasından çalıştırın.

Hedefleri kullanarak proje dosyasında bildirilmiş hedef öğesi. Örneğin, aşağıdaki kod adlı bir hedef oluşturur Compile, sonra hangi çağrıları Csc önceki örnekte bildirilen öğe listesi olan görev.

<Target Name="Compile">
    <Csc Sources="@(Compile)" />
</Target>

Daha gelişmiş senaryolarda hedefleri birbirine arasındaki ilişkileri açıklamak ve böylece hedefleyen güncel ise tam bölümleri oluşturma işlemi atlanabilir bağımlılık çözümlemesini gerçekleştirmek için kullanılabilir. Hedefleri hakkında daha fazla bilgi için bkz: MSBuild hedefleri.

Günlükleri oluşturma

Konsol veya başka bir çıkış aygıtına için yapı hataları, uyarıları ve iletileri kaydedebilirsiniz. Daha fazla bilgi için, bkz. MSBuild ile Yapı Günlükleri Alma ve MSBuild, günlüğe kaydetme.

MSBuild kullanarak Visual Studio

Visual Studiokullanan MSBuild yönetilen projeleri proje hakkındaki yapılandırma bilgilerini depolamak için dosya biçimi. Proje eklenen veya değiştirilen kullanarak ayarları Visual Studio arabirimi yansıtılır. * her proje için oluşturulan proj dosyası. Visual Studiobarındırılan bir örneğini kullanır MSBuild yönetilen projeleri oluşturmak üzere. Yönetilen bir projesi oluşturulmadan, yani Visual Studio veya bir komut isteminde (bile Visual Studio yüklü değilse), ve sonuçlarını aynı olacaktır.

Visual Studio'da MSBuild kullanma hakkında bir eğitim için bkz: İzlenecek yol: MSBuild kullanma.

Çoklu Sürüm Desteği

Visual Studio kullanarak çeşitli sürümlerinde .NET Framework'ün herhangi biri üzerinde çalışacak bir uygulama derleyebilirsiniz. Örneğin, 32-bit platform üzerinde .NET Framework 2.0 üzerinde çalışacak bir uygulama derleyebilir ve 64-bit platform üzerinde .NET Framework 4.5 çalıştırmak için aynı uygulamayı derleyebilir. Birden fazla framework derleme becerisini çoklu sürüm adı verilir.

Çoklu sürüm desteği avantajlarından bazıları şunlardır:

  • .net Framework'ün önceki sürümleri, sürüm 2.0, 3.0 ve 3.5 hedefleyen uygulamaları geliştirebilirsiniz.

  • Çerçeveleri dışında .NET Framework, örneğin, Silverlight hedefleyebilirsiniz.

  • Hedef alabilirsiniz bir framework profili, önceden tanımlanmış bir alt hedef framework'ün.

  • .net Framework'ün güncel sürümü için bir hizmet paketi yayımlanırsa, hedef olabilir.

  • Bir uygulamayı yalnızca hedef Framework'ü ve platform için kullanılabilir işlevleri kullanan çoklu sürüm desteği garanti eder.

Daha fazla bilgi için bkz. MSBuild Multitargeting genel bakış.

İlgili Konular

Başlık

Tanımlama

İzlenecek yol: MSBuild proje dosyasını sıfırdan oluşturma

Temel Proje dosyası indirilirken, bir metin düzenleyicisi kullanarak oluşturmanız gösterilmiştir.

İzlenecek yol: MSBuild kullanma

MSBuild bina bloklarını tanıtır ve nasıl yazmak, yönetmek ve MSBuild projeleri Visual Studio IDE kapatmanıza gerek kalmadan hata ayıklama gösterir.

MSBuild kavramları

MSBuild dört bina bloklarını sunar: özellikler, öğeleri, hedefleri ve görevleri.

MSBuild öğeleri

Genel kavramları açıklar MSBuild dosya biçimi ve nasıl parçaları bir araya geldiğine.

MSBuild özellikleri

Özellik koleksiyonları ve özelliklerini tanıtır. Yapılandırmak için kullanılan anahtar/değer çiftlerini yapılar özelliklerdir.

MSBuild hedefleri

Belirli bir sırada birlikte Görevleri gruplandırın ve komut satırı üzerinde çağrılacak yapı işleminin bölümleri etkinleştirmek açıklar.

MSBuild görevleri

Bir birimi tarafından kullanılan yürütülebilir kod oluşturmak nasıl gösterir MSBuild atomik yapı işlemleri gerçekleştirmek için.

MSBuild koşulları

Nasıl kullanılacağı açıklanır Condition bir MSBuild öğesinde öznitelik.

Gelişmiş kavram MSBuild

Toplu işleme, dönüşümler, çoklu sürüm desteği ve diğer gelişmiş teknikler gerçekleştirme sunar.

MSBuild, günlüğe kaydetme

Yapý olaylarý, iletileri ve hataları günlüğe nasıl açıklar.

MSBuild ek kaynaklar

MSBuild hakkında daha fazla bilgi için destek ve topluluk kaynakları listeler.

Reference