Postupy: 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 Import – element (MSBuild).
Importovat projekt
Definujte v importu souboru projektu, všechny vlastnosti a položky, které slouží jako parametry pro vlastnosti a položky importované projektu.
Použití Import prvek importu projektu.Příklad:
<Import Project="MyCommon.targets"/>
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ů
Definujte v souboru projektu, všechny vlastnosti a položky, které slouží jako parametry pro vlastnosti a položky importované projektu.
Importujte projektu.
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>