Integrace sady Visual Studio (MSBuild)
Visual Studio hostuje MSBuild k načtení a vytvářet spravované projekty.Protože MSBuild je zodpovědná za projekt, téměř jakoukoli projekt v MSBuild formátu úspěšně lze v Visual Studio, i když projekt byl vytvořen pomocí jiné nástroje a má vlastní sestavení proces.
Toto téma popisuje konkrétní aspekty Visual Studiona MSBuild hostování, které by měly být považovány při přizpůsobení projektů a souborech TARGETS, které chcete načíst a sestavení Visual Studio.To vám pomůže Přesvědčte se, Visual Studio funkce, jako jsou technologie IntelliSense a ladění práci pro svůj vlastní projekt.
Informace o projekty v jazyce C++ naleznete v tématu Soubory projektu.
Přípony názvů souborů projektu
MSBuild.exe rozpozná jakékoli projektu příponu názvu souboru odpovídající vzor. * proj.Nicméně Visual Studio rozpozná pouze podmnožinu tyto projektu přípon názvů souborů, které určují systém projektu pro konkrétní jazyk, který bude za účelem načtení projektu.Visual Studionení nainstalován jazykově MSBuild na základě systém projektu.
Můžete například Visual C# systém projektu načte .csproj soubory, ale Visual Studio není možné načíst soubor .xxproj.Soubor projektu pro zdrojové soubory v libovolné jazyce musí používat stejnou příponu jako Visual Basic nebo Visual C# soubory, které má být načten v projektu Visual Studio.
Známé názvy cílů
Klepnutím sestavení v Visual Studio spustí výchozí cíl v projektu.Často je také s názvem Tento cíl Build.Volba znovu vytvořit nebo Vyčistit příkaz se pokusí spustit cíl se stejným názvem v projektu.Klepnutím na publikovat spustí cíl s názvem PublishOnly v projektu.
Konfigurace a platformy
Konfigurace jsou vyjádřena v MSBuild projekty podle vlastností seskupeny do PropertyGroup element, který obsahuje Condition atributu.Visual Studiozjistí-li vytvořit seznam konfigurace projektu a platformy, chcete-li zobrazit tyto podmínky.Úspěšně extrahujte tento seznam, musí mí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 Studiozjistí podmínky PropertyGroup, ItemGroup, Import, vlastnosti a prvky položky k tomuto účelu.
Další akce sestavení
Visual StudioUmožňuje změnit název položky typu souboru v projektu s proces sestavení vlastnost Vlastnosti souboru okna.Compile, EmbeddedResource, Content, a None názvy typů položky jsou vždy uvedeny v této nabídce spolu s další položku typu názvy již v projektu.Aby libovolné názvy typů vlastní položky jsou vždy k dispozici v této nabídce, můžete přidat názvy typ položky s názvem AvailableItemName.Můžete například přidáním následující do souboru projektu přidáte vlastní typ JScript k této nabídce pro všechny projekty, které jej importovat:
<ItemGroup>
<AvailableItemName Include="JScript"/>
</ItemGroup>
[!POZNÁMKA]
Názvy typů některé položky jsou speciální k Visual Studio , ale není uveden v této rozevírací nabídce.
Vnitroprocesové kompilátory
Pokud je to možné, Visual Studio se pokusí použít v procesu verze Visual Basic kompilátoru za účelem zvýšení výkonu.(Netýká se Visual C#.) Tento postup fungovala správně musí být splněny následující podmínky:
V cílovém projektu, musí být úkol s názvem Vbc pro Visual Basic projekty.
UseHostCompilerIfAvailable Parametr úlohy musí být nastavena na hodnotu true.
Technologie IntelliSense v době návrhu
Chcete-li získat podporu technologie IntelliSense Visual Studio před sestavení vygenerovala 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 jedna z jeho závislé součásti musí volat kompilátoru úloha projektu, jako například Csc nebo Vbc.
Buď Compile cíl nebo jedna z jeho závislé součásti musíte zajistit, aby kompilátor získání potřebných parametrů pro technologii IntelliSense, zejména všechny odkazy.
Musí být splněny podmínky uvedené v části "V rámci procesu kompilátorů".
Sestavování řešení
V rámci Visual Studio, soubor řešení a projektu sestavení řazení jsou ovládány Visual Studio sám.Při vytváření řešení s msbuild.exe v příkazovém řádku MSBuild analyzuje soubor řešení a řadí sestavení projektu.V obou případech projekty, které jsou součástí jednotlivě závislostí pořadí a nejsou procházet odkazů projekt na projekt.Naproti tomu při jednotlivé projekty jsou integrovány s msbuild.exe, jsou procházet odkazů projekt na projekt.
Při vytváření v rámci Visual Studio, vlastnost $(BuildingInsideVisualStudio) je nastaven na true.To lze v souborech projektu nebo TARGETS způsobit sestavení změnu chování.
Zobrazení vlastností a položek
Visual Studiorozpoznává určité názvy a hodnoty vlastností.Například následující vlastnost v projektu způsobí aplikace pro systém Windows zobrazovat v typ aplikace zadejte Návrháře projektu.
<OutputType>WinExe</OutputType>
Hodnota vlastnosti je možné upravovat v Návrháře projektu a uložen v souboru projektu.Pokud je tato vlastnost přiřazena neplatnou hodnotu podle ručních úprav Visual Studio se zobrazit varování, při načtení projektu a nahraďte výchozí hodnotu neplatná hodnota.
Visual StudioJste srozuměni s tím výchozí hodnoty pro některé vlastnosti.Tyto vlastnosti nebude ukládány do souboru projektu, pokud nemají jiný než výchozí hodnoty.
Vlastnosti s libovolné názvy nejsou zobrazeny v Visual Studio.Chcete-li změnit libovolné vlastnosti v Visual Studio, musíte otevřít soubor projektu v editoru XML a upravit je ručně.Další informace naleznete úpravy souborů projektu v sadě Visual Studio později v tomto tématu.
Položky definované v projektu s názvy typů libovolné položky jsou ve výchozím nastavení zobrazeny v Průzkumníku řešení pod uzlem svůj projekt.Chcete-li skrýt položku ze zobrazení, nastavte Visible metadata k false.Například následující položky budou účastnit procesu sestavení, ale nesmí být zobrazeny v Průzkumníku řešení.
<ItemGroup>
<IntermediateFile Include="cache.temp">
<Visible>false</Visible>
</IntermediateFile>
</ItemGroup>
Ve výchozím nastavení nejsou zobrazena položek uvedených v souborech naimportovány do projektu.Položky vytvořené během procesu sestavení se nikdy zobrazí v Průzkumníku řešení.
Podmínky pro položky a vlastnosti
Během sestavení jsou plně dodržovat všechny podmínky.
Při určování hodnoty vlastností zobrazíte vlastnosti, Visual Studio domnívá, konfigurace, které jsou závislé vyhodnoceny odlišně, než vlastnosti považuje za konfigurace nezávislé.Pro vlastnosti považuje za konfigurace závislé, Visual Studio nastaví Configuration a Platform vlastnosti správně a dává pokyn MSBuild k opětovnému vyhodnocení projektu.Pro vlastnosti považuje za konfigurace nezávislý, že je neurčitém, jak bude vyhodnocena podmínky.
Podmíněných výrazů na položky jsou vždy ignorovat pro účely rozhodování, zda má být zobrazena položka v Průzkumníku řešení.
Ladění
Aby bylo možné najít a spusťte výstupu sestavení a připojit ladicí program, Visual Studio potřebuje vlastnosti OutputPath, AssemblyName, a OutputType definována správně.V případě, že proces sestavení nezpůsobila kompilátor generuje soubor PDB ladicí program se nezdaří.
Provádění cílů v době návrhu
Visual Studiopokusy o provedení cíle s některá jména, když načte projektu.Zahrnout tyto cíle Compile, ResolveAssemblyReferences, ResolveCOMReferences, GetFrameworkPaths, a CopyRunEnvironmentFiles.Visual StudioTyto cíle spouští tak, aby kompilátor může být inicializovány k zajištění technologie IntelliSense, může být inicializována ladicí program a odkazy, které jsou zobrazeny v Průzkumníku řešení lze přeložit.Je-li tyto cíle nejsou k dispozici, projekt, který načte a vytvářet správně, ale prostředí návrhu v Visual Studio nebudou plně použitelné.
Úpravy souborů projektu v sadě Visual Studio
Chcete-li upravit MSBuild projektu přímo, můžete otevřít soubor projektu v editoru Visual Studio XML.
Uvolnění projektu a jeho úprava v sadě Visual Studio
V Průzkumníka řešení, otevřete místní nabídku pro projekt a pak zvolte uvolnit projekt.
Projekt je označena (k dispozici).
V Průzkumníka řešení, otevřete místní nabídku pro projekt, který není k dispozici a pak zvolte upravit < soubor projektu >.
Soubor projektu otevře v editoru XML sady Visual Studio.
Upravit, uložte a zavřete soubor projektu.
V Průzkumníka řešení, otevřete místní nabídku pro projekt, který není k dispozici a pak zvolte znovu načíst projekt.
Technologie IntelliSense a ověřování
Při použití editoru XML můžete upravit soubory projektu, je řízena technologií IntelliSense a ověřováním MSBuild soubory schématu.Tyto jsou nainstalovány v mezipaměti schématu, které lze najít v < sady Visual Studio Instalační adresář >\Xml\Schemas\1033\MSBuild.
Základní MSBuild typy jsou definovány v Microsoft.Build.Core.xsd a běžné typy používané Visual Studio jsou definovány v Microsoft.Build.CommonTypes.xsd.Schémata přizpůsobit tak, aby měli technologií IntelliSense a ověřováním pro názvy typů vlastní položky, vlastnosti a úkoly, můžete upravit Microsoft.Build.xsd nebo vytvořit vlastní schéma, které obsahuje schémata CommonTypes nebo jádra.Je-li vytvořit vlastní schéma, bude nutné směrovat XML editoru a vyhledejte jej pomocí vlastnosti okna.
Úpravy načtených souborů projektu
Visual Studioukládá do mezipaměti obsah souborů projektu a soubory, které jsou importovány pomocí souborů projektu.Je-li upravit soubor načíst projektu Visual Studio automaticky zobrazí výzvu k načtení projektu, tak, aby se projevily provedené změny.Nicméně pokud upravíte soubor importovány pomocí načíst projekt, nedojde k žádné opětovné načtení řádku a je nutné uvolnit a načtení projektu ručně k provedení změn vstoupila v platnost.
Skupiny výstupu
Názvy končící mít několik cílů definované v Microsoft.Common.targets OutputGroups nebo OutputGroupDependencies.Visual Studiovolá-li tyto cíle získat konkrétní seznamy výstupy projektu.Můžete například SatelliteDllsProjectOutputGroup cíl vytvoří seznam všech satelitních sestavení vytvoří sestavení.Tyto výstupní skupiny jsou používány funkcí, jako je publikování, nasazení a odkazy na projekt do projektu.Načte a sestavení projekty, které jim nedefinují Visual Studio, ale některé funkce nemusí pracovat správně.
Překlad odkazů
Odkaz na rozlišení je proces vyhledání skutečný sestavení pomocí položky referenční informace uložené v souboru projektu.Visual Studiomusíte spustit řešení odkaz, chcete-li zobrazit podrobné vlastnosti pro každý odkaz v vlastnosti okna.V následujícím seznamu jsou uvedeny tři typy odkazů a způsob jejich řešení.
Odkazy na sestavení:
Systém projektu volá cíl s názvem dobře známé ResolveAssemblyReferences.Tento cíl má vracet položky s názvem typu položky ReferencePath.Každá z těchto položek by měl být specifikaci položky (hodnotu Include atribut položky) obsahující úplná cesta k odkazu.Položky by měl být všechna metadata z vstupních položek předána kromě následující nová metadata:
CopyLocal, která určuje, zda je třeba sestavení zkopírovat do výstupní složky, nastavte na hodnotu true nebo false.
OriginalItemSpec, obsahující původní položka specifikace odkazu.
ResolvedFrom, nastavte na "{TargetFrameworkDirectory}", pokud byl vyřešen z .NET Framework adresáři.
COM odkazy:
Systém projektu volá cíl s názvem dobře známé ResolveCOMReferences.Tento cíl má vracet položky s názvem typu položky ComReferenceWrappers.Každá z těchto položek by měl mít specifikaci položky obsahující úplná cesta k sestavení vzájemné spolupráce pro odkaz modelu COM.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, která určuje, zda je třeba sestavení zkopírovat do výstupní složky, nastavte na hodnotu true nebo false
Nativní odkazy
Systém projektu volá cíl s názvem dobře známé ResolveNativeReferences.Tento cíl má vracet položky s názvem typu položky NativeReferenceFile.Položky by měly mít všechna metadata z vstupních položek předána kromě novou část metadat s názvem OriginalItemSpec, obsahující původní položka specifikace odkazu.
Zkrácení postupu pro zvýšení výkonu
Je-li spustit ladění v uživatelském rozhraní aplikace Visual Studio (buď výběrem klávesu F5 nebo výběrem ladění, spustit ladění v nabídce), proces sestavení využívá rychlé aktualizace kontroly ke zlepšení výkonu.V některých případech kde přizpůsobená sestavení vytvořit soubory, které získat za zase kontrola rychlé aktualizace nesprávně identifikuje změněné soubory.Projekty, které vyžadují více důkladné kontroly aktualizací lze vypnout rychlé kontroly nastavením proměnné prostředí DISABLEFASTUPTODATECHECK=1.Alternativně projekty můžete nastavit jako vlastnost MSBuild v projektu nebo v souboru, který importuje projektu.
Pro běžné sestavení v sadě Visual Studio se nevztahuje kontrola rychlé aktualizace a projekt, který bude sestavení, jako je-li vyvolána sestavení na příkazovém řádku.
Viz také
Úkoly
Postupy: Rozšíření procesu sestavení sady Visual Studio
Referenční dokumentace
Koncepty
Spuštění sestavení z prostředí IDE
Registrace rozšíření rozhraní .NET Framework