Aracılığıyla paylaş


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

Birkaç yazılmış, MSBuild proje dosyalarını, bulunan, aynı görevleri ve hedefleri farklı proje dosyaları kullanmanız gerekebilir.Bu görevler veya hedeflerin tam açıklaması her proje dosyasında dahil olmak üzere yerine ayrı proje dosyasında bir hedef kaydedebilir ve sonra bu projenin hedefi kullanmak için gereken herhangi bir başka projeye alma.

İçe aktar öğesini kullanma

Import Öğesi bir proje dosyasını başka bir proje dosyasına eklemek için kullanılır.Alınmakta olan proje dosyası geçerli bir olması MSBuild proje dosyasını ve iyi biçimlendirilmiş xml içermesi.Project Özniteliği, alınan proje dosyasının yolunu belirtir.Daha fazla bilgi için Import öğesi, bkz: İçe aktar öğesini (MSBuild).

Bir proje almak için

  1. Proje dosya alınırken, tüm özellikleri ve özellikleri için parametre olarak kullanılan maddeler ve alınan proje öğeleri tanımlayın.

  2. Use Import proje almak için öğe.Örne?in:

    <Import Project="MyCommon.targets"/>

  3. Aşağıdaki Import öğesi, tüm özelliklerini ve özelliklerinin varsayılan tanımları geçersiz kılmalıdır öğeleri ve öğeleri alınan proje tanımlayın.

Değerlendirme sırası

Zaman MSBuild ulaştığında bir Import öğesine, alınan proje etkili bir şekilde eklenir yerini alma bir proje Import öğesi.Bu nedenle, yerini Import öğesi özellikleri ve öğeleri değerleri etkileyebilir.Özellikleri ve alınan proje ve özellikleri ve öğeleri tarafından alınan proje kullanan kümesi öğeleri anlamak önemlidir.

Proje oluşturduğunda, tüm özellikleri öğeleri ve ardından ilk olarak değerlendirilir.Örneğin, aşağıdaki xml MyCommon.targets alınan proje dosyası tanımlar:

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

    <Target Name="Go">
        <Message Text="Name=$(Name)"/>
    </Target>
</Project>

Aşağıdaki xml MyCommon.targets alır MyApp.proj tanımlar:

<Project
    DefaultTargets="Go"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Name>MyApp</Name>
    </PropertyGroup>
    <Import Project="MyCommon.targets"/>
</Project>

Proje oluşturduğunda, aşağıdaki ileti görüntülenir:

Name="MyCommon"

Proje özelliğinden sonra alınmış olduğundan Name MyApp.proj, tanımını tanımlanan Name MyApp.proj tanımında MyCommon.targets içinde geçersiz kılar.Proje adı tanımlanır özelliğinden önce içe aktarılırsa yapı aşağıdaki iletiyi görüntüler:

Name="MyApp"

Projeler alırken aşağıdaki yaklaşım kullanın

  1. , Proje dosyası, tüm özellikleri ve özellikleri için parametre olarak kullanılan maddeler ve alınan proje öğeleri tanımlayın.

  2. Projeyi alın.

  3. Proje dosyasında tüm özelliklerini ve özelliklerinin varsayılan tanımları geçersiz kılmalıdır maddeler ve alınan proje öğeleri tanımlayın.

Örnek

İkinci kod örnek alır MyCommon.targets dosyası aşağıdaki kod örneği gösterir..Targets dosya alma projeden yapı yapılandırmak için özellikler değerlendirir.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Flavor Condition="'$(Flavor)'==''">DEBUG</Flavor>
        <Optimize Condition="'$(Flavor)'=='RETAIL'">yes</Optimize>
        <appname>$(MSBuildProjectName)</appname>
    <PropertyGroup>
    <Target Name="Build">
        <Csc Sources="hello.cs"
            Optimize="$(Optimize)"
            OutputAssembly="$(appname).exe"/>
    </Target>
</Project>

Aşağıdaki kod örneği, MyCommon.targets dosyasını içe aktarır.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <Flavor>RETAIL</Flavor>
    </PropertyGroup>
    <Import Project="MyCommon.targets"/>
</Project>

Ayrıca bkz.

Başvuru

İçe aktar öğesini (MSBuild)

Kavramlar

MSBuild hedefleri