Sdílet prostřednictvím


Import – element (MSBuild)

Importuje obsah jednoho souboru projektu do jiného souboru projektu.

<Import projektu><>

Syntaxe

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

Atributy a prvky

Následující části popisují atributy, podřízené prvky a nadřazené prvky.

Atributy

Atribut Popis
Project Požadovaný atribut.

Cesta k souboru projektu, který chcete importovat. Cesta může obsahovat zástupné cardy. Odpovídající soubory se importují v seřazených pořadích. Pomocí této funkce můžete do projektu přidat kód pouze přidáním souboru kódu do adresáře.
Condition Nepovinný atribut.

Podmínka, která se má vyhodnotit. Další informace naleznete v tématu Podmínky.
Label Nepovinný atribut.

Použije identifikátor pro tento prvek importu.
Sdk Nepovinný atribut.

Odkazuje na sadu SDK projektu.

Podřízené prvky

Žádné

Nadřazené prvky

Element (Prvek) Popis
Projekt Povinný kořenový prvek souboru projektu MSBuild.
ImportGroup Obsahuje kolekci Import prvků seskupených podle volitelné podmínky.

Poznámky

Pomocí elementu Import můžete opakovaně používat kód, který je společný pro mnoho souborů projektu. Použití importů usnadňuje údržbu kódu, protože všechny aktualizace, které uděláte pro sdílený kód, se rozšíří do všech projektů, které ho importují.

Podle konvence se sdílené importované soubory projektu ukládají jako .targets soubory, ale jsou to standardní soubory projektu MSBuild. NÁSTROJ MSBuild vám nebrání v importu projektu, který má jinou příponu názvu souboru, ale doporučujeme použít .targets rozšíření pro konzistenci.

Relativní cesty v importovaných projektech jsou interpretovány vzhledem k adresáři importovaného projektu (s několika výjimkami popsanými dále v tomto odstavci). Proto pokud je soubor projektu importován do několika souborů projektu v různých umístěních, relativní cesty v importovaném souboru projektu budou interpretovány odlišně pro každý importovaný projekt. Existují dvě výjimky. Jednou z výjimek je, že v Import prvcích je cesta vždy interpretována vzhledem k projektu, který obsahuje Import prvek. Další výjimkou je, že UsingTask vždy interpretuje relativní cestu atributu AssemblyFile vzhledem k souboru, který obsahuje UsingTask prvek.

Všechny rezervované vlastnosti nástroje MSBuild, které se vztahují k souboru projektu, na který odkazuje importovaný projekt (například MSBuildProjectDirectory a MSBuildProjectFile) jsou přiřazeny hodnoty založené na importovaném souboru projektu.

Pokud importovaný projekt nemá DefaultTargets atribut, importované projekty se zkontrolují v pořadí, v jakém se importují, a použije se hodnota prvního zjištěného DefaultTargets atributu. Pokud ProjectA například importuje ProjectB a ProjectC (v tomto pořadí) a ProjectB importuje ProjectD, nástroj MSBuild nejprve vyhledá DefaultTargets zadaný v ProjectA, pak ProjectB, potom ProjectD a nakonec ProjectC.

Schéma importovaného projektu je stejné jako u standardního projektu. Přestože nástroj MSBuild může být schopen sestavit importovaný projekt, je nepravděpodobné, že importovaný projekt obvykle neobsahuje informace o tom, které vlastnosti se mají nastavit, nebo pořadí, ve kterém se mají cíle spouštět. Importovaný projekt závisí na projektu, do kterého se importuje, aby poskytl dané informace.

Zástupné znaky

V rozhraní .NET Framework 4 nástroj MSBuild umožňuje zástupné cardy v atributu Projektu. Pokud existují zástupné cardy, všechny nalezené shody se seřadí (kvůli reprodukovatelnosti) a pak se naimportují v daném pořadí, jako by bylo pořadí explicitně nastaveno.

To je užitečné, pokud chcete nabídnout bod rozšiřitelnosti, aby někdo jiný mohl importovat soubor, aniž byste museli explicitně přidat název souboru do importujícího souboru. Pro tento účel obsahuje Microsoft.Common.Targets v horní části souboru následující řádek.

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

Příklad

Následující příklad ukazuje projekt, který má několik položek a vlastností a importuje obecný soubor projektu.

<Project DefaultTargets="Compile"
    xmlns="http://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é