Prvek importu (MSBuild)
Importuje obsah jednoho souboru projektu do jiného souboru projektu.
<Import Project="ProjectPath"
Condition="'String A'=='String B'" />
Atributy a elementy
Následující části popisují atributy, podřízené prvky a rodičovské prvky.
Atributy
Atribut |
Description |
---|---|
Project |
Požadovaný atribut. Cesta pro import souboru projektu.Cesta může obsahovat zástupné znaky.Odpovídající soubory jsou importovány v seřazeném pořadí.Pomocí této funkce můžete přidat kód projektu pouhým přidáním kódu souboru do adresáře. |
Condition |
Nepovinný atribut. Podmínka pro vyhodnocení.Další informace naleznete v tématu Nástroj MSBuild podmínky. |
Podřízené elementy
Žádná
Nadřazené elementy
Element |
Description |
---|---|
Požadované kořenový prvek MSBuild souboru projektu. |
|
Obsahuje kolekci Import prvky seskupeny pod volitelné podmínky. |
Poznámky
Pomocí Import prvku, můžete znovu použít kód, který je společný pro mnoho souborů projektu.To usnadňuje údržbu kódu, protože všechny aktualizace provedené sdílenému kódu získat předány všechny projekty, které jej importovat.
Úmluvou, sdíleném projektu importované soubory jsou uloženy jako soubory .targets, ale jsou standardní MSBuild soubory projektu.MSBuildnelze zabránit importu projektu, který má jinou příponou, ale doporučujeme použít rozšíření .targets konzistence.
Relativní cesty v importované projekty jsou interpretovány relativní k adresáři dovážející projektu.Proto pokud importu souboru projektu do několika souborů projektu v různých umístěních, relativní cesty v importovaný soubor projektu budou interpretovány odlišně pro každý importovaný projekt.
Všechny MSBuild vyhrazena vlastnosti, které se vztahují k souboru projektu, například MSBuildProjectDirectory a MSBuildProjectFile, který odkazuje importované projektu jsou přiřazeny hodnoty na základě importu souboru projektu.
Pokud importovaný projekt nemá DefaultTargets atribut, importovat projekty jsou kontrolovány v pořadí, které jsou dováženy a zjištěné hodnoty prvního DefaultTargets použít atribut.Například pokud dovozy ProjectA ProjectB a ProjectC (v uvedeném pořadí) a dovoz ProjectB ProjectD MSBuild hledá nejprve DefaultTargets na ProjectA, pak ProjectB, pak ProjectD a nakonec ProjectC.
Schéma importovaný projekt je stejná jako standardní projektu.Přestože MSBuild může být schopen sestavit importovaný projekt, nepravděpodobné protože importovaný projekt obvykle neobsahuje informace o vlastnosti, které chcete nastavení nebo pořadí, v jakém spustit cíle.Importovaný projekt závisí na projektu, do které je dovezeno poskytnout tyto informace.
[!POZNÁMKA]
Příkazy import podmíněné práci ve příkazového řádku MSBuilds, nefungují s MSBuild v Visual Studio integrované vývojové prostředí (IDE).Podmíněné dovozů vyhodnoceny pomocí konfigurace a platformy hodnoty, které jsou nastaveny při načtení projektu. Pokud jsou následně provedeny změny vyžadující nové vyhodnocení z podmíněné v souboru projektu, například změna platformu, Visual Studio reevaluates podmínek na vlastnosti a položek, ale není na dovoz.Protože podmíněné import není reevaluated, import vynechán.
Chcete-li tento problém vyřešit, podmíněné dovozy do souborů .targets nebo vložte kód podmíněného bloku jako Zvolte prvek (MSBuild) bloku.
Zástupné znaky
V.NET Framework 4, umožňuje MSBuild zástupné znaky v atributu projektu.Je-li zástupné znaky, všech nalezených řadit (pro reprodukovatelnost) a pak jsou dováženy v uvedeném pořadí jako v případě, že pořadí bylo explicitně nastavit.
To je užitečné, pokud chcete nabídnout k rozšíření bodu tak, že někdo jiný může importovat soubor bez nutnosti explicitně přidat název souboru k importu souboru.Pro tento účel Microsoft.Common.Targets obsahuje následující řádek v horní části souboru.
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore\*" Condition="'$(ImportByWildcardBeforeMicrosoftCommonTargets)' == 'true' and exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\$(MSBuildThisFile)\ImportBefore')"/>
Příklad
Následující příklad ukazuje projektu, který má několik položek a vlastnosti a importuje soubor projektu Obecné.
<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>
Viz také
Úkoly
Jak: použití stejného cíle ve více souborech projektu