MSBuild – úloha
Vytvoří MSBuild projekty z jiné MSBuild projektu.
Parametry
Následující tabulka popisuje parametry MSBuild úkolu.
Parametr |
Description |
---|---|
BuildInParallel |
Volitelný Boolean parametr. Pokud true, projekty určené v Projects parametru jsou postaveny paralelně, pokud je to možné.Výchozí hodnota je false. |
Projects |
Požadované ITaskItem[] parametr. Určuje soubory projektu, sestavení. |
Properties |
Volitelný String parametr. Seznam dvojic název hodnota vlastnosti použít jako globální vlastnosti podřízeného projektu, oddělených středníkem.Zadáte-li tento parametr, je funkčně ekvivalentní k nastavení vlastností, které mají /property přepnout při sestavení s MSBuild.exe.Příklad: Properties="Configuration=Debug;Optimize=$(Optimize)" Při předání vlastnosti projektu až Properties parametr, MSBuild vytvoří novou instanci projektu i v případě, že již byl načten soubor projektu.Při vytvoření nové instance projektu MSBuild považuje za jiný projekt obsahující jiný globální vlastnosti, které je možné sestavit paralelně s dalšími instancemi projektu.Například verze konfigurace sestavení ve stejnou dobu jako ladící konfigurace. |
RebaseOutputs |
Volitelný Boolean parametr. Pokud true, relativní cesty cíl výstupu zboží z vestavěné projekty mají jejich cesty upravena tak, aby se vzhledem k volání projektu.Výchozí hodnota je false. |
RemoveProperties |
Volitelný String parametr. Určuje sadu vlastností globální odebrat. |
RunEachTargetSeparately |
Volitelný Boolean parametr. Pokud true, MSBuild úloha vyvolá každý cíl v seznamu, které jsou předány do MSBuild jeden po druhém, nikoli současně.Nastavení tohoto parametru na true zaručuje, že jsou spuštěny další cíle, i v případě, že dříve vyvolané cíle se nezdařilo.Jinak by chybu sestavení zastavit vyvolání všech následných cílů.Výchozí hodnota je false. |
SkipNonexistentProjects |
Volitelný Boolean parametr. Pokud true, soubory projektu, které nejsou na disku bude přeskočen.Tyto projekty, jinak dojde k chybě. |
StopOnFirstFailure |
Volitelný Boolean parametr. Pokud true, je-li jeden z projektů se nepodařilo sestavit, budou vytvořeny žádné další projekty.Právě tato možnost není podporována při sestavování paralelně (s více procesory). |
TargetAndPropertyListSeparators |
Volitelný String[] parametr. Určuje seznam cílů a vlastnosti jako Project metadata položky).Oddělovače budou odmítnutí před zpracováním.e.g. % 3B (řídící ";") bude zacházeno, jako by šlo odmítnutí ';'. |
TargetOutputs |
Volitelný ITaskItem[] jen pro čtení výstupní parametr. Vrátí výstupy předdefinované cíle z všechny soubory projektu.Pouze výstup z cílů, které byly určeny jsou vráceny, nikoli výstupů, které mohou existovat na cíle, které tyto cíle závisí na. TargetOutputs Parametr obsahuje také následující metadata:
|
Targets |
Volitelný String parametr. Určuje cíl nebo cíle sestavení v souborech projektu.K oddělení seznam cílových názvů, použijte středník.Pokud žádné cíle jsou specifikovány v MSBuild úkol, jsou vytvořeny výchozí cíle uvedené v souborech projektu.
|
ToolsVersion |
Volitelný String parametr. Určuje, ToolsVersion při vytváření projektů předán k tomuto úkolu. Umožňuje MSBuild úkolu, chcete-li sestavit projekt, který se zaměřuje na jinou verzi .NET Framework než uvedeným v projektu.Valid values are 2.0, 3.0 and 3.5.Výchozí hodnota je 3.5. |
UnloadProjectsOnCompletion |
Volitelný Boolean parametr. Pokud true, projekt bude uvolněn, po dokončení operace. |
UseResultsCache |
Volitelný Boolean parametr. Pokud true, budou vráceny výsledky uložené v mezipaměti, pokud je k dispozici.Pokud je spuštění úlohy theMSBuild, bude v mezipaměti výsledek v oboru (Makro ProjectFileName, GlobalProperties) [TargetNames] jako seznam položek sestavení |
Poznámky
Kromě výše uvedených parametrů, zdědí tento úkol parametry z TaskExtension dědí třídu, která sama Task třídy.Seznam tyto další parametry a jejich popis naleznete v tématu TaskExtension – základní třída.
Na rozdíl od použití Exec – úloha ke spuštění MSBuild.exe, tento úkol používá stejné MSBuild proces sestavení podřízených projektů.Seznam již vytvořili cíle, které mohou být přeskočeny je sdílena mezi nadřazenými a podřízenými sestavení.Tento úkol je také rychlejší, protože žádná nová MSBuild procesu.
Tento úkol může zpracovat pouze soubory projektu, ale také soubory řešení.
Konfigurace, která je vyžadována MSBuild povolení projekty, které mají sestavit současně, i v případě, že konfigurace zahrnuje vzdálený infrastruktury (například porty, protokoly, časové limity, opakování a tak dále), budou muset vynaložit lze konfigurovat pomocí konfiguračního souboru.Pokud je to možné, konfigurační položky mohly být zadán jako parametry úlohy na MSBuild úkolu.
Od začátku roku MSBuild 3.5, řešení, projekty nyní povrchu TargetOutputs ze všech dílčích projektů, sestavení.
Předávání vlastnosti pro projekty
Ve verzích MSBuild před MSBuild 3.5 předávání různých nastaví vlastnosti na různých projektech, které jsou uvedeny v MSBuild položky bylo náročné.Je-li použit atribut vlastnosti MSBuild – úloha, pak jeho nastavení byla použita pro všechny projekty jsou stavěna, pokud je dávkově MSBuild – úloha a podmíněně podle různých vlastností pro jednotlivé projekty v seznamu položek.
MSBuild3.5, však obsahuje dvě nové vyhrazená metadata položky vlastnosti a AdditionalProperties, které poskytují flexibilní způsob, jak předat jiné vlastnosti různé projekty je sestavena pomocí MSBuild – úloha.
[!POZNÁMKA]
Tyto nové položky metadat se vztahují pouze na položky, které jsou předány v atributu projekty MSBuild – úloha.
Výhod víceprocesorových sestavení
Jeden z největších výhod použití tato nová metadata dochází při vytváření projektu současně v systému s více procesory.Metadata umožňuje konsolidovat všechny projekty do jednoho MSBuild – úloha volání bez nutnosti provádět jakékoli dávkování nebo podmíněné MSBuild úkoly.A když zavoláte pouze jediný MSBuild – úloha, všechny projekty, které jsou uvedeny v atributu projekty budou postaveny paralelně.(Pouze však, pokud BuildInParallel=true atribut je obsažen v MSBuild – úloha.) Další informace naleznete v tématu Paralelní sestavování více projektů současně pomocí nástroje MSBuild.
Vlastnosti metadat
Běžným scénářem je při vytváření více souborů řešení pomocí MSBuild – úloha, pouze pomocí konfigurace různých sestavení.Můžete chtít vytvořit řešení a1 a2 Konfigurace a řešení ladění pomocí pomocí konfigurace Release.V MSBuild 2.0, tento soubor projektu by vypadat takto:
[!POZNÁMKA]
V následujícím příkladu (...) představuje soubory další řešení.
a.proj
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<MSBuild Projects="a1.sln..." Properties="Configuration=Debug"/>
<MSBuild Projects="a2.sln" Properties="Configuration=Release"/>
</Target>
</Project>
Pomocí metadat vlastnosti však můžete zjednodušit to použít jedinou MSBuild – úloha, jak je znázorněno v následující:
a.proj
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectToBuild Include="a1.sln…">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
<ProjectToBuild Include="a2.sln">
<Properties>Configuration=Release</Properties>
</ProjectToBuild>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectToBuild)"/>
</Target>
</Project>
-nebo-
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectToBuild Include="a1.sln…"/>
<ProjectToBuild Include="a2.sln">
<Properties>Configuration=Release</Properties>
</ProjectToBuild>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectToBuild)"
Properties="Configuration=Debug"/>
</Target>
</Project>
AdditionalProperties metadat
Zvažte následující scénář, kde jsou dva soubory řešení pomocí sestavení MSBuild – úloha, jak pomocí konfigurace Release, ale jeden pomocí architektury x 86 a jiné použití architektury ia64.V MSBuild 2.0, budete muset vytvořit více instancí MSBuild – úloha: jeden pro vytvoření projektu pomocí konfigurace verze x 86 architektury, druhý pomocí konfigurace verze s architekturou ia64.Soubor projektu by vypadat takto:
a.proj
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<MSBuild Projects="a1.sln…" Properties="Configuration=Release;
Architecture=x86"/>
<MSBuild Projects="a2.sln" Properties="Configuration=Release;
Architecture=ia64"/>
</Target>
</Project>
Pomocí AdditionalProperties, můžete zjednodušit to použít jedinou MSBuild – úloha pomocí následující:
a.proj
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectToBuild Include="a1.sln…">
<AdditionalProperties>Architecture=x86
</AdditionalProperties>
</ProjectToBuild>
<ProjectToBuild Include="a2.sln">
<AdditionalProperties>Architecture=ia64
</AdditionalProperties>
</ProjectToBuild>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(ProjectToBuild)"
Properties="Configuration=Release"/>
</Target>
</Project>
Příklad
Následující příklad používá MSBuild úkol sestavit projekty určené ProjectReferences položka kolekce.Výsledný cílový výstup, jsou uloženy v AssembliesBuiltByChildProjects položka kolekce.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ProjectReferences Include="*.*proj" />
</ItemGroup>
<Target Name="BuildOtherProjects">
<MSBuild
Projects="@(ProjectReferences)"
Targets="Build">
<Output
TaskParameter="TargetOutputs"
ItemName="AssembliesBuiltByChildProjects" />
</MSBuild>
</Target>
</Project>