MSBuild (Visual C++) genel bakış
MSBuild standart yapı sistemi için Visual C++ projelerinin ' dir.Visual Studio tümleşik geliştirme ortamını (IDE) bir proje oluştururken,: msbuild.exe aracı, bir xml tabanlı proje dosyası ve isteğe bağlı ayar dosyalarını kullanır.: Msbuild.exe ve proje dosyasını komut satırında kullanabilmenize karşın, IDE böylece daha kolay ayarlarını yapılandırmak ve bir proje oluşturmak için bir kullanıcı arabirimi sağlar.Bu genel bakış, Visual C++ MSBuild sistem nasıl kullandığını açıklar.
Önkoşullar
MSBuild hakkında aşağıdaki belgeleri okuyun.
MSBuild
MSBuild kavramları genel bakış.MSBuild başvurusu
MSBuild sistem hakkında başvuru bilgisi.MSBuild proje dosyası Şeması Başvurusu
MSBuild xml şema öğeleri, öznitelikleri ve üst ve alt öğeleri ile birlikte listeler.Özellikle dikkat ItemGroup, PropertyGroup, hedef, ve görev öğeleri.MSBuild Komut Satırı Başvurusu
Komut satırı bağımsız değişkenleri ve: msbuild.exe ile kullanabileceğiniz seçenekleri açıklar.MSBuild görevi başvurusu
MSBuild görevleri açıklar.Especially note these tasks, which are specific to Visual C++: BscMake görev, cl görev, CPPClean görev, LIB görev, Bağlantı görevi, MIDL görev, mt görev, rc görev, SETENV'ye görev, VCMessage görev, XDCMake görev, xsd görev.
Komut satırında MSBuild
Aşağıdaki ifadesini MSBuild Komut Satırı Başvurusu belge göstermektedir: msbuild.exe aracı örtülü veya açık alır project file bağımsız değişkeni (Visual C++ projeler için .vcxproj dosyası) ve sıfır veya daha fazla komut satırı options.
msbuild.exe [project file] [options]
Use /target (veya /t) ve /property (veya /p) özellikleri ve proje dosyasında belirtilen hedef geçersiz kılmak için komut satırı seçenekleri.
Belirtmek için proje dosyasının önemli bir işlevi olan bir hedef, projenize ve girdi ve bu işlemi gerçekleştirmek için gerekli çıkışları uygulanan belirli bir işlem olduğu.Proje dosyası, varsayılan hedef içerebilen bir veya daha fazla hedefleri belirtebilirsiniz.
Her hedef oluşan bir dizi bir veya daha fazla görevleri.Her görev tarafından temsil edilen bir.net Framework sınıf bir yürütülebilir komutu içerir.Örneğin, cl görev içeren cl.exe komut.
A görev parametre sınıfı görevi özelliğidir ve genellikle bir komut satırı seçeneği yürütülebilir komut temsil eder.Örneğin, FavorSizeOrSpeed parametresi CL karşılık gelen görev /Os ve /Ot derleyici seçenekleri.
Görevle ilgili ek parametreler MSBuild altyapısı desteği.Örneğin, Sources görev parametresi, diğer görevlere göre tüketilen görev kümesini belirtir.MSBuild görevler hakkında daha fazla bilgi için bkz: MSBuild görevi başvurusu.
Giriş ve çıkış, dosya adları, yollar ve dize, sayısal veya Boolean parametrelerini gibi görevlerin çoğu gerektirir.Örneğin, genel bir giriş derlemeye .cpp kaynak dosyasının adıdır.Önemli bir girdi parametresini yapý yapýlandýrmasý ve platform, örneğin, "Debug| belirten bir dizedirWin32 ".Giriş ve çıkış bir veya daha fazla kullanıcı tanımlı xml belirtilmiş Item öğeleri bulunan bir ItemGroup öğesi.
Kullanıcı tanımlı bir proje dosyasını da belirtebilirsiniz özelliklerini ve Madde tanım grubuöğeleri.Özellikleri ve öğeleri Yapı değişkenleri olarak kullanılan ad/değer çiftleri oluşturuyor.Çiftinin ad bileşeni tanımlayan bir makro, değer bileşen bildirir ve makro değeri.Özelliği makro kullanarak erişilen (ad) gösterim ve madde makro erişildiğinde kullanarak %(ad) gösterim.
Diğer xml öğeleri project dosyasındaki makrolar, test ve sonra koşullu olarak herhangi bir makro değerini ayarlayabilir veya yapı yürütülmesini denetlemek.Makro adları ve harflerden oluşan dizeler bir yol ve dosya adı gibi yapılar oluşturmak için birleştirilmiş.Komut satırında /property seçenek ayarlar veya proje özelliği geçersiz kılar.Komut satırında maddeleri başvurulamaz.
Önce veya sonra başka bir hedef MSBuild sistem hedef koşullu olarak çalıştırabilirsiniz.Ayrıca, sistem mi hedef tüketir dosyaları onu gösterir dosyalarından daha yeni olan bağlı bir hedef oluşturabilirsiniz.
IDE içindeki MSBuild
IDE içinde proje özelliklerini ayarlamak ve projeyi kaydetmek, Visual C++ proje ayarlarını proje dosyasına yazar.Proje dosyası projenize özgü ayarlarını içerir, ancak projenizde oluşturmak için gereken tüm ayarları içermez.Proje dosyasını içeren Import ek bir ağ içeren öğelerini Destek dosyaları. Destek dosyaları kalan özellikler, hedefleri ve proje oluşturmak için gerekli ayarları içerir.
Çoğu hedefleri ve Destek dosyalarını özelliklerinde yalnızca oluþturma sistemi uygulamak için mevcut.Aşağıdaki bölümde, bazı yararlı hedefleri ve MSBuild komut satırında belirlediğiniz özellikleri açıklanır.Daha fazla hedefleri ve Özellikleri keşfetmek için destek dosya dizinlerdeki dosyaları keşfedin.
Destek dosya dizinleri
Varsayılan olarak, birincil Visual C++ destek dosyaları aşağıdaki dizinlerde bulunur.
Dizin |
Description |
---|---|
Sürücü: \Program Files\MSBuild\Microsoft.Cpp\v4.0\ |
Birincil hedef dosyaları (.targets) içeren ve hedefleri tarafından kullanılan özellik dosyaları (.props).Varsayılan olarak, bu dizin $(VCTargetsPath) makro başvuruyor. |
Sürücü: \Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\platform\ |
Hedefler ve üst dizinin özelliklerini geçersiz kıl platforma özel hedef ve özellik dosyaları içerir.Bu dizin, bu dizindeki hedefleri tarafından kullanılan görevleri tanımlayan bir .dll dosyası da içerir. Platform gösteren yer tutucu Itanium, Win32, veya x64 alt dizini. |
Sürücü: \Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\platform\ PlatformToolsets\toolset\ |
9.0 Veya Visual C++ 10.0 uygulamalar oluşturmak yapı etkinleştirmek dizinleri içerir. Platform gösteren yer tutucu Itanium, Win32, veya x64 alt dizini.Toolset gösteren yer tutucu v90 veya v100 toolset alt. |
Destek dosyaları
Destek dosya dizinleri aşağıdaki uzantılara sahip dosyalar içerir.
Extension |
Description |
---|---|
.TARGETS |
İçeren Target hedef tarafından yürütülen görevleri belirlemenize xml öğeleri.Ayrıca içerebilir Property Group, Item Group, Item Definition Grouphem de kullanıcı tanımlı Item dosyaları ve komut satırı seçenekleri için parametreler görev atamak için kullanılan öğeleri. Daha fazla bilgi için bkz. Hedef öğe (MSBuild). |
.props |
İçeren Property Group ve kullanıcı tanımlı Property bir yapı oluşturma sırasında kullanılan dosya ve parametre ayarları belirten xml öğeleri. Ayrıca içerebilir Item Definition Group ve kullanıcı tanımlı Item xml öğeleri ek ayarları belirtin.Bir madde tanım grubuna tanımlanan öğelerin özellikleri benzer, ancak komut satırından erişilemiyor.Visual C++ proje dosyalarını sık kullandığı maddeler yerine özellikleri ayarlarını göstermek için. Daha fazla bilgi için, bkz. ItemGroup öğesi (MSBuild), ItemDefinitionGroup öğesi (MSBuild) ve İtem öðesini (MSBuild) |
.XML |
Bildirip IDE kullanıcı arabirimi öğelerinin özellik sayfaları ve özellik sayfaları ve metin kutusu ve liste kutusu denetimleri gibi atayacak xml öğeleri içerir. .Xml dosyaları, IDE, MSBuild değil doğrudan destekler.Ancak, IDE özelliklerinin değerlerini, özellikleri ve öğeleri oluşturmak için atanır. Çoğu .xml dosyaları bölgeye özgü alt dizininde bulunur.Örneğin, İngilizce (ABD) bölgesi için $(VCTargetsPath) \1033\ dosyalarıdır. |
Kullanıcı hedefleri ve özellikleri
Komut satırında MSBuild en verimli şekilde kullanmak için hangi özellikleri ve hedefleri yararlı ve ilgili olduğunu bilmek yardımcı.Çoğu özellikleri ve hedefleri Visual C++ oluþturma sistemi uygulamaya yardımcı olur ve bunun sonucunda kullanıcıyla ilgili değildir.Bu bölümde, bazı kullanıcı odaklı düşünmek faydalı özellikleri ve hedefleri açıklanmaktadır.
PlatformToolset özelliği
PlatformToolset Özelliği olup olmadığını Visual C++ 2010 veya Visual C++ 2008 toolset yapısında kullanılır.Özelliğinin değeri, belirli bir platform için bir proje oluşturmak için gereken özellik ve hedef dosyalarını içeren dizinin yolunu oluşturmak üzere harflerden oluşan dizeler ile birleştirilir.
Set PlatformToolset özelliğine v100 kullanmak için Visual C++ 2010 uygulama oluşturmak için Araçlar.
msbuild myProject.vcxproj /p:PlatformToolset=v100
Set PlatformToolset özelliğine v90 uygulama geliştirmek için Visual C++ 2008 araçlarını kullanma.Visual C++ 2008 toolset zaten bu özelliğin etkin olabilmesi için bilgisayarınızda yüklü olmalıdır.
msbuild myProject.vcxproj /p:PlatformToolset=v90
UseEnv özelliği
Varsayılan olarak, yol, Ekle, LIB, LIBPATH, yapılandırma ve platform ortam değişkenleri geçerli proje için platforma özgü ayarları geçersiz kılar.Set UseEnv özelliğine true ortam değişkenleri değil kılınır emin olmaktır.
msbuild myProject.vcxproj /p:UseEnv=true
Hedefler
Visual C++ destek dosyalarını hedeflerini yüzlerce vardır.Ancak, çoğu kullanıcının sayabilirsiniz sistem odaklı hedefler aittir.Çoğu sistem hedeflerin bir altçizgi (_) öneki veya "" Hesaplamak", PrepareFor ile", "Önce", "Öncesi" veya "Post" "Sonra" başlayan bir ada sahip.
Birkaç kullanılmadıkça kullanıcı odaklı hedefleri aşağıdaki tabloda listelenmektedir.
Target |
Description |
---|---|
BscMake |
Microsoft göz bilgi bakım yardımcı aracı yürütür bscmake.exe. |
Derleme |
Proje oluşturur. Bir proje için varsayılan hedef budur. |
ClCompile |
Visual C++ Derleyici aracını yürütür cl.exe. |
Temizleme |
Dosyaları siler, geçici ve Ara oluşturun. |
Lib |
Microsoft 32-Bit Kitaplık Yöneticisi aracını yürütür lib.exe. |
Bağlantı |
Visual C++ Bağlantı Oluşturucu aracını yürütür link.exe. |
ManifestResourceCompile |
Yayılma dosyasından kaynakların listesini ayıklar ve sonra Microsoft Windows Kaynak derleyici aracını yürütür RC.exe dosyasını. |
Midl |
Arabirim tanımı dili (MIDL) derleyici aracını yürütür midl.exe. |
Yeniden oluşturma |
Temizler ve proje oluşturur. |
ResourceCompile |
Microsoft Windows Kaynak derleyici aracını yürütür RC.exe dosyasını. |
XdcMake |
xml belgeleri aracını yürütür xdcmake.exe. |
XSD |
xml şema tanımı aracını yürütür xsd.exe. |