Aracılığıyla paylaş


Visual Studio Integration (MSBuild)

Visual Studio ana MSBuild yüklemek ve yönetilen projeleri oluşturmak için.Çünkü MSBuild neredeyse herhangi bir projede proje için sorumlu olan MSBuild biçimi başarıyla kullanılabilmesi için Visual Studiobile projeyi farklı bir araç tarafından yazılmıştır ve özelleştirilmiş yapı işlemi vardır.

Bu konuda, belirli yönleri açıklanmaktadır Visual Studio's MSBuild , barındırma sayılacağı özelleştirme projeleri ve .targets dosyalarını yüklemek ve yapı içinde istediğiniz zaman Visual Studio.Bunlar, emin olun yardımcı olacaktır Visual Studio IntelliSense ve hata ayıklama özel projeniz için çalışma gibi özellikler.

Proje dosya adı uzantıları

MSBuild.exe deseniyle eşleşen herhangi bir proje dosya adı uzantısını tanır. * proj.Ancak, Visual Studio yalnızca bir alt proje yükleyen dile özgü proje sistemi belirlemek bu proje dosya adı uzantılarını algılar.Visual Studiobir dilden yok MSBuild proje sistemi tabanlı.

Örneğin, Visual C# proje sistem .csproj dosyaları yükler, ancak Visual Studio .xxproj dosyasını yüklemek mümkün değildir.Kaynak dosyaları rasgele bir dil için bir proje dosyasına eskisiyle aynı uzantı adı kullanmanız gerekir Visual Basic veya Visual C# proje, yüklenecek dosyaları Visual Studio.

İyi bilinen hedef adları

' İ tıklatarak Yapı komutunu Visual Studio varsayılan hedef projedeki yürütülecektir.Genellikle, bu hedefe de adlı Build.Seçme yeniden veya temiz projede aynı ada sahip bir hedef yürütülecek komut deneyecek.' İ tıklatarak Yayımla adlı bir hedef yürütülür PublishOnly projesinde.

Yapılandırmalar ve platformlar

Yapılandırmaları içinde temsil MSBuild projeleri özelliklerine göre gruplandırılmış bir PropertyGroup öğesinin içerdiği bir Condition özniteliği.Visual StudioProje yapılandırmalar ve platformlar görüntülemek için bir listesini oluşturmak için bu koşulların arar.Bu liste başarıyla ayıklamak için koşullar aşağıdakine benzer bir biçimde olması gerekir:

Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
Condition=" '$(Configuration)' == 'Release' " 
Condition=" '$(Something)|$(Configuration)|$(SomethingElse)' == 'xxx|Debug|yyy' "

Visual Studioat koşulları arar PropertyGroup, ItemGroup, Import, özellik ve bu amaçla item öðelerinin.

Ek yapı eylemleri

Visual StudioMadde türü içeren bir proje dosyasında adını değiştirmenize izin verir Yapı eylemi özelliğini Dosya Özellikleri: pencere.Compile, EmbeddedResource, Content, ve None zaten projede başka bir öğe türü adları ile birlikte bu menüdeki her zaman öğesi türü adları listelenir.Herhangi bir özel öğe türü adları her zaman bu menüde kullanılabilir emin olmak için adları adlı bir öğe türü ekleyebilirsiniz AvailableItemName.Örneğin, aşağıdaki proje dosyanıza ekleyerek özel bir tür ekler JScript almak tüm projeler için bu menü için:

<ItemGroup>
    <AvailableItemName Include="JScript"/>
</ItemGroup>

[!NOT]

Bazı öğe türü adları için özel Visual Studio , ancak bu açılan menüsünde listelenmiyor.

İşlem içi derleyicileri

Mümkün olduğunda, Visual Studio iþlem içi sürümlerini kullanmayı dener Visual Basic veya Visual C# derleyiciler performansı artırmak için.Bu düzgün çalışması, aşağıdaki koşulların sağlanması gerekir:

  • Proje bir hedefi olmalıdır adında bir görev Csc (için Visual C# projeleri) veya Vbc (için Visual Basic projeleri)

  • UseHostCompilerIfAvailable Görev'in parametresi ayarlanmış olmalıdır true.

  • Sadece parametre değerleri belirtilmelidir desteklenir.Görev belirtilen tüm parametreleri işlem içi derleyicisi tarafından desteklenir, ancak bazı parametre değerleri desteklenmez.Aşağıdaki Csc görev parametre değerleri tarafından desteklenmiyor Visual C# işlem içi derleyicisi:

    • NoConfig: false ve boş değerler desteklenmeyen.

    • ResponseFiles: boş olmayan değerlere desteklenmeyen.

    • AdditionalLibPaths: boş olmayan değerlere desteklenmeyen.

    • AddModules: boş olmayan değerlere desteklenmeyen.

    • CodePage: Desteklenmeyen sıfır olmayan değerler.

    • GenerateFullPaths: true desteklenmiyor.

    • LinkResources: boş olmayan değerlere desteklenmeyen.

Bu koşulların tümü sağlanmışsa proje işlem içi derleyicisi komut satırı derleyicisi kullanarak derleyin.

Tasarım zamanı IntelliSense

IntelliSense desteği almak Visual Studio bir yapı çıktı derleme üretti önce aşağıdaki koşulların karşılanması gerekir:

  • Adlı bir hedef olmalıdır Compile.

  • Ya da Compile hedef veya bağımlılıklarından biri çağırmalıdır derleyici görev proje için aþaðýdaki gibi Csc veya Vbc.

  • Ya da Compile hedef veya bağımlılıklarından biri derleyici IntelliSense, özellikle tüm başvuruları için gerekli tüm parametreleri almak neden gerekir.

  • "İşlem derleyiciler" bölümünde listelenen koşulların karşılanması gerekir.

Çözümler oluşturma

İçinde Visual Studio, çözüm dosyası ve yapı proje sipariş tarafından kontrol edilen Visual Studio kendisi.Komut satırında bir çözüm olan MSBuild.exe'yi oluştururken, MSBuild çözüm dosyayı ayrıştırmak ve siparişleri proje oluşturulur.Her iki durumda da bağımlılık sırasına göre ayrı ayrı projeler yerleşiktir ve proje için proje başvurularını değil yaptırılır.Buna karşılık, MSBuild.exe'yi ile tek tek projeler oluşturulduklarında, proje için proje başvurularını yaptırılır.

İçinde oluştururken Visual Studio, özellik $(BuildingInsideVisualStudio) ayarlamak true.Bu proje ya da .targets dosyalarınızı farklı davranır yapı neden kullanılabilir.

Özellikleri ve öğeleri görüntüleme

Visual Studiobelirli özellik adlarını ve değerlerini tanır.Örneğin, aşağıdaki özellik projesinde neden Windows Application görünmesini Uygulama türü kutusunu Proje Tasarımcısı.

<OutputType>WinExe</OutputType>

Özellik değeri düzenlenebilecek Proje Tasarımcısı ve proje dosyasında kaydedilir.Böyle bir özellik el-düzenleyerek, geçersiz bir değer verilirse, Visual Studio proje yüklenirken bir uyarı görüntüler ve geçersiz değeri varsayılan bir değerle değiştirin.

Visual StudioBazı özellikler için varsayılan ayarları anlar.Varsayılan olmayan değerlere sahip olmadıkları sürece bu özellikler proje dosyasına kalıcı olmayacak.

Özellikleri ile rasgele adlar içinde görüntülenmez Visual Studio.Rasgele özelliklerinde değişiklik yapmak için Visual Studio, proje dosyasını xml düzenleyicisinde açın ve bunları el ile düzenleyin.Daha fazla bilgi için bkz: Visual Studio'da proje dosyalarını düzenleme bu konunun ilerleyen bölümlerinde.

Solution Explorer'da, proje düğümü altında görüntülenen varsayılan proje rasgele öğe türü adları ile tanımlanan öğeler vardır.Görüntü bir öğeyi gizlemek için Visible meta verileri false.Örneğin, aşağıdaki öğeyi Yapı işleminde yer alacak ancak Solution Explorer'da gösterilmeyecek.

<ItemGroup>
    <IntermediateFile Include="cache.temp">
        <Visible>false</Visible>
    </IntermediateFile>
</ItemGroup>

Projesine aktarılan dosyaları bildirilen öğeler varsayılan olarak görüntülenmez.Oluşturma işlemi sırasında oluşturulan öğeler hiçbir zaman Çözüm Gezgini'nde görüntülenir.

Öğeleri ve özellikleri koşulları

Bir yapı sırasında tüm koşulları tam olarak dikkate alır.

Görüntülemek için özellikler, özellik değerlerini belirlerken, Visual Studio yapılandırma bağımlı farklı değerlendirilir dikkate özellikler, yapılandırma bağımsız düşünür.Özellikleri için yapılandırma bağımlı, kabul ettiği Visual Studio ayarlar Configuration ve Platform özelliklerini uygun şekilde ve söyler MSBuild proje değerlendirmeniz.Özellikleri için yapılandırma bağımsız belirsiz koşullar nasıl değerlendirilecektir kabul ettiği.

Koşullu deyimler maddeler madde Solution Explorer'da gösterilen karar verme amacıyla her zaman dikkate alınmaz.

Hata Ayıklama

Bul ve çıktı derleme başlatma ve hata ayıklayıcısını için Visual Studio özelliklere sahip olması OutputPath, AssemblyName, ve OutputType doğru.Hata ayıklayıcı yapı işleminin bir .pdb dosyası üretmek derleyici neden değil, iliştirmek başarısız olur.

Tasarım zamanı hedef yürütme

Visual Studiobir proje yüklediğinde, belirli adları hedeflerle yürütmeyi denediğinde.These targets include Compile, ResolveAssemblyReferences, ResolveCOMReferences, GetFrameworkPaths, and CopyRunEnvironmentFiles.Visual StudioBu hedeflerin IntelliSense sağlamak için derleyici başlatıldı, hata ayıklayıcı başlatılabilir ve Solution Explorer'da gösterilen başvuruları çözülebilir için çalışır.Bu hedeflerin yoksa, proje yük ve tasarım zamanı deneyimi ancak doğru yapı Visual Studio tam olarak işlevsel olmayacak.

Visual Studio'da proje dosyalarını düzenleme

Düzenlemek için bir MSBuild doğrudan project, Visual Studio xml Düzenleyicisi'nde proje dosyasını açabilirsiniz.

Visual Studio proje dosyasını düzenlemek ve kaldırmak için

  1. İçinde Çözüm Gezgini, proje için kısayol menüsünü açın ve sonra seçin Unload Project.

    Proje olarak işaretlenmiş (kullanılamaz).

  2. İçinde Çözüm Gezginikullanılabilir proje için kısayol menüsünü açın ve sonra seçin Düzenle < proje dosyası >.

    Proje dosyası Visual Studio xml düzenleyicisinde açar.

  3. Düzenlemek, kaydetmek ve sonra proje dosyasını kapatın.

  4. İçinde Çözüm Gezginikullanılabilir proje için kısayol menüsünü açın ve sonra seçin Projeyi yeniden yükle.

IntelliSense ve doğrulama

Proje dosyalarını düzenlemek için xml Düzenleyicisi'ni kullanırken, IntelliSense ve doğrulama kullanımlı tarafından MSBuild şema dosyaları.Bunlar tarafından yüklenir Visual Studioşema önbelleğinde hangi bulunabilir Visual Studio yükleme konumu] \Xml\Schemas klasör.

Çekirdek MSBuild Microsoft.Build.Core.xsd ve ortak türleri tarafından kullanılan türleri tanımlanmış Visual Studio Microsoft.Build.CommonTypes.xsd tanımlanır.Böylece IntelliSense ve özel öğe türü adları, özellikleri ve görevleri için doğrulama sahip şemaları özelleştirmek için Microsoft.Build.xsd düzenlemek veya CommonTypes veya çekirdek şemaları içeren kendi şeması oluşturun.Düzenleyicisi'ni kullanarak bulmak için kendi şeması xml doğrudan olacaktır oluşturursanız, özelliklerini pencere.

Yüklenen proje dosyalarını düzenleme

Visual StudioProje ve proje dosyalarını tarafından alınan dosyaları içeriği önbelleğe alır.Bir dolu proje dosyasını düzenlerseniz, Visual Studio otomatik olarak proje değişiklikler etkili olacak şekilde yeniden ister.Ancak yüklenen bir projeye göre alınan bir dosyayı düzenliyorsanız, yeniden sorgu yok olur ve kaldırma ve el ile etkili değişiklik yapmak için projeyi yeniden yükleyin.

Çıkış grupları

Microsoft.Common.targets içinde tanımlanan çeşitli hedefler biten adlara sahip OutputGroups veya OutputGroupDependencies.Visual StudioProje çıktıları belirli listelerini almak için bu hedeflerin çağırır.Örneğin, SatelliteDllsProjectOutputGroup hedef bir yapı oluşturmak tüm uydu derlemelerini listesini oluşturur.Bu çıktı grupları, yayımlama ve dağıtım projesi için proje başvuruları gibi özellikleri tarafından kullanılır.Bunları tanımlamayın projeleri yükleyin ve yapı içinde Visual Studio, fakat bazı özellikleri doğru çalışmayabilir.

Başvuru çözümleme

Başvuru çözünürlük gerçek derlemeleri bulmak için bir proje dosyasında depolanan başvuru maddelerinin kullanma işlemidir.Visual Studioher başvuru için ayrıntılı özelliklerini göstermek için başvuru çözümleme tetiklemek gerekir özelliklerini pencere.Aşağıdaki listede üç tür başvuruları ve bunların nasıl çözüleceğini açıklar.

  • Derleme başvuruları:

    İyi bilinen adı ile hedef proje sistemi çağırır ResolveAssemblyReferences.Bu hedef öğesi türü adı öğeleriyle üretmesi gerektiğini ReferencePath.Bu öğelerin her biri madde belirtimi olmalıdır (değeri Include bir öğenin özniteliği) başvuru tam yolunu içeren.Maddelerin yanı sıra aşağıdaki yeni meta veriler geçtiğini giriş öğelerinden meta veri olmalıdır:

    • CopyLocal, derlemenin çıktı klasörüne kopyalanan gösteren ayarlamak true veya false.

    • OriginalItemSpec, özgün öğe belirtiminin başvuru içeren.

    • ResolvedFrom, "{TargetFrameworkDirectory}" den çözümlenmiş ayarlayın .NET Framework dizin.

  • com başvuruları:

    İyi bilinen adı ile hedef proje sistemi çağırır ResolveCOMReferences.Bu hedef öğesi türü adı öğeleriyle üretmesi gerektiğini ComReferenceWrappers.Bu öğelerin her biri, com başvuru için birlikte çalışma derlemesinin tam yolunu içeren bir öğe belirtimi olması gerekir.Maddelerin giriş öğeleri üzerinden geçti, ayrıca yeni meta veri adı ile tüm meta verileri olmalıdır CopyLocal, derlemenin çıktı klasörüne kopyalanan gösteren ayarlamak true veya false

  • Yerel referanslar

    İyi bilinen adı ile hedef proje sistemi çağırır ResolveNativeReferences.Bu hedef öğesi türü adı öğeleriyle üretmesi gerektiğini NativeReferenceFile.Maddelerin geçtiğini, meta veri adlı yeni bir parçasını yanı sıra giriş öğelerinden meta veri olmalıdır OriginalItemSpec, özgün öğe belirtiminin başvuru içeren.

Performans kısayolları

İçinde Visual STUDİO'da hata ayıklama başlatırsanız (ya da F5 tuşuna seçerek veya seçerek hata ayıklama, Start Debugging komutunu menü çubuğunda), yapı işlemi performansını artırmak için hızlı güncelleştirme denetimini kullanır.Özelleştirilmiş yapıları sırayla oluşturulan dosyaları nerede oluşturmak bazı durumlarda, değişen dosyaları hızlı güncelleştirme denetimi doğru belirlemez.Daha kapsamlı güncelleştirmesi denetimlerini gereken projeleri kapatma hızlı ortam değişkenini ayarlayarak denetimini devre dışı DISABLEFASTUPTODATECHECK=1.Alternatif olarak, projeleri bu proje veya proje alır dosyasında bir MSBuild özellik olarak ayarlayabilirsiniz.

Düzenli yapılar Visual Studio hızlı güncelleştirme denetimi uygulanmaz ve komut isteminde yapı çağrılan sanki projesi oluşturacaksınız.

Ayrıca bkz.

Görevler

Nasıl yapılır: Visual Studio oluşturma işlemi genişletir

Başvuru

İtem öðesini (MSBuild)

Özellik öğesi (MSBuild)

Hedef öğe (MSBuild)

CSC görev

Vbc görev

Kavramlar

Gelen bir yapı IDE içinden başlatma

Uzantıları kaydediliyor.net Framework

Diğer Kaynaklar

MSBuild kavramları