Sdílet prostřednictvím


Integrace aplikace Visual Studio (MSBuild)

Visual Studio hostitelů MSBuild k načtení a sestavovat projekty spravované.Protože MSBuild je zodpovědný za projekt téměř jakýkoli projekt, v MSBuild formátu lze úspěšně použít v Visual Studio, i v případě, že projekt byl autorem jiný nástroj a má vlastní sestavení proces.

Toto téma popisuje konkrétní aspekty Visual Studio's MSBuild , který je hostitelem zvažte při vlastním nastavení projektů a souborech TARGETS, které chcete načíst a sestavit Visual Studio.To vám umožní Ujistěte se, Visual Studio funkce, například technologie IntelliSense a ladění práce pro svůj vlastní projekt.

Přípony názvů souborů projektu

MSBuild.exe rozpozná jakoukoliv příponou názvu souboru projektu vyhovující vzorci. * proj.Nicméně Visual Studio rozpozná pouze podmnožinu těchto projektu přípony názvů souborů, které určují systém projektu specifické pro jazyk, který bude načtení projektu.Visual Studionemá neutrální jazykové MSBuild systém projektu.

Například Visual C# projektový systém načte .csproj soubory, ale Visual Studio není schopen načíst soubor .xxproj.Soubor projektu pro zdrojové soubory do libovolného jazyka musí používat stejnou příponu jako Visual Basic nebo Visual C# soubory, které mají být načtena v projektu Visual Studio.

Známé názvy cílových

Klepnutím sestavení v Visual Studio spustí výchozí cíl v projektu.Často se také nazývá tento cíl Build.Volba znovu sestavit nebo čištění příkaz pokusí spustit cíl se stejným názvem v projektu.Klepnutím na Publikovat provede cíl s názvem PublishOnly v projektu.

Konfigurace a platformy

Konfigurace jsou reprezentovány v MSBuild seskupení projektů podle vlastností v PropertyGroup element, který obsahuje Condition atribut.Visual StudioChcete-li vytvořit seznam konfigurace projektu a platformy, chcete-li zobrazit vzhled za těchto podmínek.Úspěšně extrahovat tento seznam, musí být podmínky ve formátu podobném následujícímu:

Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "
Condition=" '$(Configuration)' == 'Release' " 
Condition=" '$(Something)|$(Configuration)|$(SomethingElse)' == 'xxx|Debug|yyy' "

Visual Studiovypadá na podmínky PropertyGroup, ItemGroup, Import, vlastnosti a prvky položky pro tento účel.

Další akce sestavení

Visual StudioUmožňuje změnit název položky typu souboru v aplikaci project se Proces sestavení vlastnost Vlastnosti souboru okno.Compile, EmbeddedResource, Content, a None názvy položek typu jsou vždy uvedeny v této nabídce spolu s další položky typu názvy již v projektu.Aby všechny názvy typu vlastní položky jsou vždy k dispozici v této nabídce můžete přidat názvy typu položky s názvem AvailableItemName.Například přidat následující do souboru projektu přidá vlastní typ JScript do této nabídky pro všechny projekty, které jej importovat:

<ItemGroup>
    <AvailableItemName Include="JScript"/>
</ItemGroup>

[!POZNÁMKA]

Některé názvy typu položky jsou speciální na Visual Studio , ale není uveden v tomto rozevíracím seznamu.

Kompilátory v procesu

Pokud je to možné, Visual Studio se pokusí použít verze v procesu Visual Basic nebo Visual C# kompilátory pro zvýšení výkonu.Tento postup fungovat správně musí být splněny následující podmínky:

  • V cíli projektu, musí být úkol s názvem Csc (pro Visual C# projekty) nebo Vbc (pro Visual Basic projektů)

  • UseHostCompilerIfAvailable Parametr úlohy musí být nastavena na hodnotu true.

  • Podporováno pouze parametr, který musí být zadány hodnoty.Vnitroprocesový kompilátor podporuje všechny parametry zadané na úkol, ale některé z parametrů nejsou podporovány.Následující Csc hodnoty parametrů úlohy nejsou podporovány Visual C# vnitroprocesový kompilátor:

    • NoConfig: false a prázdné hodnoty nejsou podporovány.

    • ResponseFiles: neprázdné hodnoty nejsou podporovány.

    • AdditionalLibPaths: neprázdné hodnoty nejsou podporovány.

    • AddModules: neprázdné hodnoty nejsou podporovány.

    • CodePage: nenulové hodnoty nejsou podporovány.

    • GenerateFullPaths: true není podporován.

    • LinkResources: neprázdné hodnoty nejsou podporovány.

Pokud tyto podmínky nejsou splněny, zkompiluje projekt pomocí kompilátoru příkazového řádku namísto vnitroprocesový kompilátor.

Technologie IntelliSense v době návrhu

Chcete-li získat podporu technologie IntelliSense Visual Studio před sestavení generoval výstupu sestavení, musí být splněny následující podmínky:

  • Musí být cíl s názvem Compile.

  • Buď Compile cíl nebo v jednom z jeho závislosti musí volat kompilátoru úkol projektu, jako například Csc nebo Vbc.

  • Buď Compile cíl nebo v jednom z jeho závislosti musí způsobí, že kompilátor zobrazí všechny parametry nezbytné pro technologii IntelliSense, zejména všechny odkazy.

  • Musí být splněny podmínky uvedené v části "Kompilátory v procesu".

Vytváření řešení

V rámci Visual Studio, soubor řešení a pořadí sestavení projektu jsou řízeny Visual Studio sám.Při vytváření řešení s msbuild.exe příkazového řádku, MSBuild analyzuje soubor řešení a objednávky sestavení projektu.V obou případech projekty, které jsou součástí jednotlivě závislost pořadí a nejsou provázán odkazů projekt na projekt.Naopak pokud jsou jednotlivé projekty vytvořené pomocí msbuild.exe, je provázán odkazů projekt na projekt.

Při vytváření uvnitř Visual Studio, vlastnost $(BuildingInsideVisualStudio) je nastavena na true.To lze v souborech projektu nebo TARGETS způsobit sestavení k chovat odlišně.

Zobrazení vlastností a položek

Visual Studiorozpoznává určité názvy vlastností a hodnot.Například následující vlastnosti v projektu způsobí, že Aplikace pro systém Windows v Typ aplikace zadejte do pole Návrháře projektu.

<OutputType>WinExe</OutputType>

Hodnota vlastnosti lze upravovat v Návrháře projektu a uloženy v souboru projektu.Pokud takové vlastnost je neplatná hodnota úpravou rukou, Visual Studio se zobrazit upozornění při načtení projektu a nahradit výchozí hodnotu neplatnou hodnotu.

Visual Studioznalost výchozích hodnot některých vlastností.Tyto vlastnosti nebudou trvalé do souboru projektu, nemají-li jinou než výchozí hodnoty.

Vlastnosti libovolného názvy nejsou zobrazeny v Visual Studio.Chcete-li změnit libovolné vlastnosti v Visual Studio, musíte otevřít soubor projektu v editoru jazyka XML a upravovat ručně.Další informace naleznete Úpravy souborů projektu v aplikaci Visual Studio v pozdějším oddílu tohoto tématu.

Položky definované v projektu s názvy typu libovolné položky jsou ve výchozím nastavení zobrazeny v Průzkumníku řešení pod uzlem jejich projektu.Chcete-li skrýt položku z panelu zobrazení nastavena Visible metadata, aby se false.Například následující položky budou účastnit procesu sestavení, ale zobrazeno v okně Průzkumník řešení.

<ItemGroup>
    <IntermediateFile Include="cache.temp">
        <Visible>false</Visible>
    </IntermediateFile>
</ItemGroup>

Ve výchozím nastavení nejsou zobrazeny položky, které jsou deklarovány v souborech, které jsou dováženy do projektu.Položky, které jsou vytvořeny během procesu sestavení nikdy zobrazených v okně Průzkumník řešení.

Podmínky pro položky a vlastnosti

Během sestavení jsou plně dodrženy všechny podmínky.

Při určování hodnot vlastností pro vlastnosti zobrazení, Visual Studio považuje za závislé na konfiguraci jsou vyhodnocovány jinak než vlastnosti považuje konfiguraci nezávislé.Pro vlastnosti považuje konfigurace závislé, Visual Studio nastaví Configuration a Platform vlastnosti odpovídajícím způsobem a na základě tohoto parametru MSBuild k přehodnocení projektu.Pro vlastnosti považuje konfiguraci nezávislé, že je neurčitá, jak budou vyhodnoceny podmínky.

Podmíněné výrazy na položky jsou vždy ignorovány pro účely rozhodování o tom, zda zboží má být zobrazen v okně Průzkumník řešení.

Ladění

Chcete-li vyhledat a spustit výstupu sestavení a připojit ladicí program, Visual Studio potřebuje vlastnosti OutputPath, AssemblyName, a OutputType správně definovány.Ladicí program se nezdaří v případě, že proces sestavení nejsou způsobeny kompilátor generuje soubor .pdb.

Spuštění cíle návrhu

Visual Studiosystém se pokusí spustit cíle se určitých názvů při načtení projektu.These targets include Compile, ResolveAssemblyReferences, ResolveCOMReferences, GetFrameworkPaths, and CopyRunEnvironmentFiles.Visual StudioTyto cíle se spustí, tak, aby kompilátor může být inicializována na poskytují technologie IntelliSense, ladicí program může být inicializována a odkazy, které jsou zobrazeny v Průzkumníku lze přeložit.V případě, že tyto cíle nejsou k dispozici, projekt načte a správně sestavit, ale zkušenosti návrhu v Visual Studio nebude plně funkční.

Úpravy souborů projektu v aplikaci Visual Studio

Chcete-li upravit MSBuild projektu přímo, můžete otevřít soubor projektu v editoru jazyka XML pro Visual Studio.

Chcete-li uvolnit a upravit soubor projektu v aplikaci Visual Studio

  1. V Průzkumníku, otevřete místní nabídku pro projekt a pak zvolte Uvolnit projekt.

    Projekt je označena jako (nedostupné).

  2. V Průzkumníku, otevřete místní nabídku pro projekt není k dispozici a pak zvolte Upravit < soubor projektu >.

    Soubor projektu se otevře v editoru jazyka XML sady Visual Studio.

  3. Upravovat, uložte a zavřete soubor projektu.

  4. V Průzkumníku, otevřete místní nabídku pro projekt není k dispozici a pak zvolte Znovu načíst projekt.

Technologie IntelliSense a ověřování

Při použití editoru jazyka XML můžete upravit soubory projektu, je řízena technologií IntelliSense a ověřováním MSBuild soubory schémat.Tyto jsou nainstalovány jako Visual Studiov mezipaměti schématu, které lze nalézt v Visual Studio umístění instalace] \Xml\Schemas složky.

Základní MSBuild typy jsou definovány v Microsoft.Build.Core.xsd a běžné typy, použité v Visual Studio jsou definovány v Microsoft.Build.CommonTypes.xsd.K úpravě schémat, tak, aby technologie IntelliSense a ověřování pro vlastní typ názvy položek, vlastnosti a úkoly, můžete upravit Microsoft.Build.xsd nebo vytvořit vlastní schéma, které obsahuje CommonTypes nebo základní schémata.Je-li vytvořit vlastní schéma bude mít přímé XML editoru a vyhledejte jej pomocí Vlastnosti okna.

Úpravy načtené soubory projektu

Visual Studioukládá do mezipaměti obsah projektové soubory a soubory importované soubory projektu.Je-li upravit soubor načíst projektu Visual Studio vás automaticky vyzve k načtení projektu tak, aby se provedené změny projevily.Ale pokud upravíte soubor importovat načtení projektu, budou bez výzvy znovu načíst a musíte odinstalovat a znovu načíst projekt ručně tak, aby se změny projevily.

Skupiny výstupu

Mají názvy končící, několik cílů, které jsou definovány v Microsoft.Common.targets OutputGroups nebo OutputGroupDependencies.Visual Studiovolá tyto cíle získat určité seznamy výstupů projektu.Například SatelliteDllsProjectOutputGroup cíl vytvoří seznam všechny satelitní sestavení bude vytvořeno nové sestavení.Tyto skupiny výstupu jsou používány funkce publikování, nasazení a odkazů projekt na projekt.Projekty, které nejsou jejich definování načte a sestavit Visual Studio, ale některé funkce nemusí fungovat správně.

Referenční řešení

Referenční řešení je proces vyhledání skutečné sestavení pomocí referenčních položek uložených v souboru projektu.Visual Studiomusíte aktivovat rozlišení odkaz chcete-li zobrazit podrobné vlastnosti pro každý odkaz v Vlastnosti okna.Následující seznam popisuje tři druhy odkazů a způsob jejich řešení.

  • Odkazy na sestavení:

    Projektový systém volá cíl známý název ResolveAssemblyReferences.Tento cíl by měl vytvářet položky s názvem položky typu ReferencePath.Každá z těchto položek by měl mít specifikaci zboží (hodnota Include atributu položky) obsahuje úplnou cestu k odkazu.Položky by měly mít všechna metadata ze vstupních položek prošla kromě následující nová metadata:

    • CopyLocal, označující, zda sestavení by měly být zkopírovány do složky výstup nastaven na hodnotu true nebo false.

    • OriginalItemSpec, obsahující původní položku specifikace odkazu.

    • ResolvedFrom, nastavte na "{TargetFrameworkDirectory}", pokud byl vyřešen z .NET Framework adresáře.

  • COM odkazy:

    Projektový systém volá cíl známý název ResolveCOMReferences.Tento cíl by měl vytvářet položky s názvem položky typu ComReferenceWrappers.Každá z těchto položek by měl mít specifikaci zboží obsahuje úplnou cestu k sestavení InterOp modulů COM odkazu.Položky by měly mít všechna metadata z metadat předaná prostřednictvím, navíc nové vstupní položky s názvem CopyLocal, označující, zda sestavení by měly být zkopírovány do složky výstup nastaven na hodnotu true nebo false

  • Nativní odkazy

    Projektový systém volá cíl známý název ResolveNativeReferences.Tento cíl by měl vytvářet položky s názvem položky typu NativeReferenceFile.Položky by měly mít všechna metadata ze vstupních položek prošla kromě nějaký nový metadat s názvem OriginalItemSpec, obsahující původní položku specifikace odkazu.

Výkon zkratky

Pokud spustíte ladění v aplikaci ve Visual Studiu (buď výběrem klávesu F5 nebo výběrem ladění, Spuštění ladění na panelu nabídek), proces vytváření používá rychlé aktualizace kontrolu ke zlepšení výkonu.V některých případech, kde přizpůsobená sestavení vytvořit soubory, které získat zase sestaveny kontrola rychlé aktualizace nesprávně identifikuje změněné soubory.Projekty, které je nutné důkladnější kontroly aktualizací můžete vypnout rychlé kontroly nastavením proměnné prostředí DISABLEFASTUPTODATECHECK=1.Alternativně projekty lze nastavit jako vlastnost MSBuild projektu nebo v souboru, který importuje projektu.

Pro pravidelné sestavení v sadě Visual Studio kontrola rychlé aktualizace se nevztahuje a projekt bude stavět jakoby vyvolán sestavování v příkazovém řádku.

Viz také

Úkoly

Jak: rozšířit procesu vytváření aplikace Visual Studio

Referenční dokumentace

Element typu položka (MSBuild)

Vlastnosti prvku (MSBuild)

Cílový prvek (MSBuild)

CSC úkolu

Soubor VBC úkolu

Koncepty

Zahájení sestavení z v rámci IDE

Registrace rozšíření.NET Framework

Další zdroje

Nástroj MSBuild koncepty