Aracılığıyla paylaş


İçe aktar öğesini (MSBuild)

Bir proje dosyası içeriği başka bir proje dosyasına aktarır.

<Import Project="ProjectPath"
    Condition="'String A'=='String B'" />

Öznitelikler ve Öğeler

Öznitelikler, alt ve üst ögeler aşağıdaki bölümlerde açıklanmaktadır.

Öznitelikler

Öznitelik

Description

Project

Gerekli öznitelik.

Alınacak proje dosyasının yolu.Yol, joker karakterler içerebilir.Eşleşen dosyaları sıralanmış olarak içe aktarılır.Bu özelliği kullanarak, kod dosyasının yalnızca bir dizine ekleyerek bir projeye kod ekleyebilirsiniz.

Condition

İsteğe bağlı öznitelik.

Değerlendirilmesi için bir koşul.Daha fazla bilgi için bkz. MSBuild koşulları.

Alt Öğeler

None

Üst Öğeler

Öge

Description

Proje

Gerekli kök öğesi bir MSBuild proje dosyası.

ImportGroup

Topluluğu içeren Import öğeleri, isteğe bağlı bir koşul altında gruplanır.

Notlar

Kullanarak Import öðesi yeniden birçok proje dosyaları için ortak olan kodu.Paylaşılan koda yaptığınız tüm güncelleştirmeleri almak için tüm projeler yayılan için kod bakımını kolaylaştırır.

Kural gereği, paylaşılan alınan proje dosyaları .targets dosyaları olarak kaydedilir, ancak standart MSBuild proje dosyaları.MSBuilddeğil, farklı dosya adı uzantısına sahip bir proje alma engeller, ancak tutarlılık için .targets uzantısı kullanmanızı öneririz.

Göreceli yollar alınan projelerdeki alma proje dizine göre yorumlanır.Bu nedenle, proje dosyasını farklı konumlarda bulunan birkaç proje dosyalarını'a içe aktarılan, alınan proje dosyası içinde göreli yollar farklı içe aktarılan her proje için yorumlanacaktır.

Tüm MSBuild proje dosyasına gibi ilgili özellikleri ayrılmış MSBuildProjectDirectory ve MSBuildProjectFile, başvuru alınan projesinde alma proje dosyasını temel alan değerler atanır.

Alınan proje yoksa, bir DefaultTargets özniteliği, içe içe aktarılır ve değeri ilk sırada projeleri incelenen DefaultTargets özniteliği kullanılır.Örneğin, ProjectA (bu sırayla) ProjectB ve ProjectC alır ve ProjectB alır, ProjectD, MSBuild önce arar DefaultTargets ProjectA, sonra ProjectB, sonra ProjectD ve ProjectC üzerinde son belirtilen.

Alınan bir proje şeması, standart proje aynıdır.Ancak MSBuild olabilir alınan bir proje genellikle kümesi veya hedefleri çalıştırmak hangi sırayla hangi özellikleri hakkında bilgi içermediği için alınan bir proje oluşturmak mümkün, bunu düşüktür.Alınan proje içine bu bilgileri sağlamak için alınır proje üzerinde bağlıdır.

[!NOT]

Koşullu import deyimleri Komut satırı MSBuilds içinde çalışırken, MSBuild içinde birlikte çalıştıklarını değil Visual Studio tümleşik geliştirme ortamı (IDE).Koşullu Imports proje yüklendiğinde belirlenen yapılandırma ve platform değerleri kullanılarak değerlendirilir. Değişiklikleri daha sonra proje dosyasında bilgi almak, bir yeniden Değerlendirme gerektiren yapılırsa, örneğin, platform değiştirme Visual Studio özellikleri ve öğeleri, ancak değil İthalatlar koşullar reevaluates.Alma alma koşullu yenidendeðerlendirilir değil çünkü atlanır.

Bu sorunu gidermek için koşullu Imports .targets dosyalarında koymak veya koşullu bloğunda kodu yerleştirin: gibi bir (MSBuild) öğesini seçin. blok.

Joker karakterler

İçinde.net Framework 4, MSBuild proje öznitelik joker karakterler sağlar.Joker karakterler, bulunan tüm eşleşmeleri (reproducibility) için sıralanır ve sipariş açıkça ayarlanmış gibi daha sonra o sırada aktarıldıktan.

Başkasının açıkça içe aktarma dosyası için dosya adı eklemek gerek kalmadan bir dosyayı alabilirsiniz, genişletilebilirlik noktası sunmak istiyorsanız, bu kullanışlıdır.Bu amaçla aşağıdaki satırı dosyanın en üstündeki Microsoft.Common.Targets içerir.

<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == 'true' and exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore')"/>

Örnek

Aşağıdaki örnekte çeşitli öğeleri ve özelliklerini ve genel proje dosyasını alır bir projeyi gösterir.

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

    <PropertyGroup>
        <resourcefile>Strings.resx</resourcefile>

        <compiledresources>
            $(O)\$(MSBuildProjectName).Strings.resources
        </compiledresources>
    </PropertyGroup>

    <ItemGroup>
        <CSFile Include="*.cs" />

        <Reference Include="System" />
        <Reference Include="System.Data" />
    </ItemGroup>

    <Import Project="$(CommonLocation)\General.targets" />
</Project>

Ayrıca bkz.

Görevler

Nasıl yapılır: aynı hedefte birden çok proje dosyalarında kullanma

Kavramlar

MSBuild proje dosyası Şeması Başvurusu