Sdílet prostřednictvím


Jak: použití stejného cíle ve více souborech projektu

Pokud máte vytvořen několik MSBuild soubory projektu vám může mít zjištěných potřebujete použít stejné úkoly a cíle v různé soubory projektu.Místo včetně úplný popis těchto úkolů nebo cíle v každém souboru projektu, můžete uložit do samostatného souboru cíl a pak importovat do jiného projektu, který potřebuje používat cíl projektu.

Pomocí prvek importu

Import Element se používá k vložení jednoho souboru projektu do jiného souboru projektu.Importovaného souboru projektu musí být platný MSBuild souboru projektu a obsahují XML ve správném formátu.Project Atribut určuje cestu k importovaný soubor projektu.Další informace týkající Import prvku, viz Prvek importu (MSBuild).

Importovat projekt

  1. Definujte v importu souboru projektu, všechny vlastnosti a položky, které slouží jako parametry pro vlastnosti a položky importované projektu.

  2. Použití Import prvek importu projektu.Příklad:

    <Import Project="MyCommon.targets"/>

  3. Následující Import prvku, definovat všechny vlastnosti a položky, které musí přepsat výchozí definice vlastnosti a v importovaných projektu.

Pořadí vyhodnocování

Při MSBuild dosáhne Import prvek importovaný projekt efektivně vložen v místě dovozu projektu Import prvku.Proto umístění Import prvku mohou ovlivnit hodnoty vlastnosti a položky.Je důležité pochopit vlastnosti a položky, které jsou nastaveny importovaný projekt vlastnosti a položky, které používá importovaný projekt.

Při sestavení projektu, jsou nejprve vyhodnoceny všechny vlastnosti položky následuje.Například následující kód XML definuje importovaný soubor projektu MyCommon.targets:

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

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

Následující kód XML definuje MyApp.proj, který importuje MyCommon.targets:

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

Při sestavení projektu, zobrazí se následující zpráva:

Name="MyCommon"

Protože vlastnost po importu projektu Name byla definována v MyApp.proj definici Name v MyCommon.targets přepíše definici v MyApp.proj.Pokud importu projektu před vlastnost, kterou je definován název sestavení zobrazí následující zpráva:

Name="MyApp"

Použít následující postup při importu projektů

  1. Definujte v souboru projektu, všechny vlastnosti a položky, které slouží jako parametry pro vlastnosti a položky importované projektu.

  2. Importujte projektu.

  3. V souboru projektu definujte všechny vlastnosti a položky, které musí přepsat výchozí definice vlastnosti a položky importované projektu.

Příklad

Následující příklad kódu ukazuje druhý příklad kódu importuje soubor MyCommon.targets.Soubor .targets vyhodnotí vlastnosti z projektu Import konfigurace sestavení.

<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>

Následující příklad kódu importuje soubor MyCommon.targets.

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

Viz také

Referenční dokumentace

Prvek importu (MSBuild)

Koncepty

Nástroj MSBuild cíle