Sdílet prostřednictvím


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

Project

Požadované kořenový prvek MSBuild souboru projektu.

ImportGroup

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

Koncepty

Odkaz na projekt MSBuild soubor schématu