Přizpůsobení systému sestavení

Microsoft Build Engine je platforma pro vytváření aplikací. modul, který je taky známý jako MSBuild, byl vyvinutý microsoftem a umožňuje sestavovat aplikace .net. Rozhraní mono má také svou vlastní implementaci modulu sestavení společnosti Microsoft s názvem xbuild. v tuto chvíli se ale xbuild místo toho, abyste na všech operačních systémech používali MSBuild.

MSBuild se používá jako systém sestavení pro projekty v Visual Studio pro Mac a funguje tak, že převezme sadu vstupů, například zdrojové soubory, a transformuje je na výstupy, jako jsou spustitelné soubory. Tento výstup dosahuje vyvoláním nástrojů, jako je například kompilátor.

soubor MSBuild

MSBuild používá soubor XML, který se označuje jako soubor projektu, který definuje položky , které jsou součástí projektu (například prostředky obrázku), a vlastnosti potřebné k sestavení projektu. V tomto souboru projektu bude vždy Přípona souboru proj , například .csproj pro projekty v jazyce C#.

zobrazení souboru MSBuild

vyhledejte soubor MSBuild tak, že kliknete pravým tlačítkem na název projektu a vyberete zobrazit ve finderu. V okně Finder se zobrazí všechny soubory a složky související s vaším projektem, včetně .csproj souboru, jak je znázorněno na následujícím obrázku:

umístění csproj ve Finderu

chcete-li zobrazit na .csproj nové kartě v Visual Studio pro Mac, klikněte pravým tlačítkem myši na název projektu a přejděte do části nástroje > upravit soubor:

otevření csproj v editoru zdrojového kódu

složení MSBuild souboru

všechny MSBuild soubory obsahují povinný kořenový Project element, například takto:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

Projekt obvykle také naimportuje .targets soubor. Tento soubor obsahuje mnoho pravidel, která popisují postup zpracování a sestavení různých souborů. Import obvykle se zobrazí v dolní části proj souboru a projekty jazyka C# vypadají přibližně takto:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

soubor cílů je jiný soubor MSBuild. tento soubor obsahuje MSBuild kód, který je možné opakovaně použít ve více projektech. Například Microsoft.CSharp.targets soubor, který je nalezen v adresáři reprezentovaný MSBuildBinPath vlastností (nebo proměnná), obsahuje logiku pro sestavování sestavení v jazyce c# ze zdrojových souborů c#.

Položky a vlastnosti

existují dva základní typy dat v MSBuild: položky a vlastnosti, které jsou podrobněji vysvětleny v následujících oddílech.

Vlastnosti

Vlastnosti jsou páry klíč/hodnota, které se používají k ukládání nastavení, která ovlivňují kompilaci, jako jsou například možnosti kompilátoru.

Jsou nastaveny pomocí skupiny vlastností a mohou obsahovat libovolný počet PropertiesGroups, který může obsahovat libovolný počet vlastností.

Například vlastnost pro jednoduchou konzolovou aplikaci může vypadat jako v následujícím kódu XML:

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProjectGuid>{E248730E-1393-43CC-9183-FFA42F63BE81}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <RootNamespace>refactoring</RootNamespace>
    <AssemblyName>refactoring</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
</PropertyGroup>

Vlastnosti mohou být odkazovány z výrazů pomocí $() syntaxe. Například $(Foo) bude vyhodnocen jako hodnota Foo Vlastnosti. Pokud vlastnost nebyla nastavena, vyhodnotí se jako prázdný řetězec bez jakékoli chyby.

Položky

Položky poskytují způsob, jak řešit vstupy do systému sestavení jako seznamy nebo sady a obvykle představují soubory. Každá položka má typ položky, specifikaci položky a volitelná libovolná metadata. všimněte si, že MSBuild nepracuje na jednotlivých položkách, přebírá všechny položky daného typu označované jako sada položek.

Položky jsou vytvořeny deklarací ItemGroup . Může existovat libovolný počet ItemGroups, který může obsahovat libovolný počet položek.

Například následující fragment kódu vytvoří obrazovky pro spuštění iOS. Spouštěcí obrazovky mají typ sestavení BundleResource s specifikací jako cestu k imagi:

 <ItemGroup>
    <BundleResource Include="Resources\Default-568h%402x.png" />
    <BundleResource Include="Resources\Default%402x.png" />
    <BundleResource Include="Resources\Default.png" />
    <BundleResource Include="Resources\Default-Portrait.png" />
    <BundleResource Include="Resources\Default-Portrait%402x.png" />
    <BundleResource Include="Resources\Default-Landscape%402x.png" />
  </ItemGroup>

Na sady položek lze pomocí syntaxe odkazovat z výrazů @() . Například @(BundleResource) se vyhodnotí jako BundleResource sada položek, což znamená všechny položky BundleResource. Pokud žádné položky tohoto typu neexistují, bude prázdná bez jakékoli chyby.

Zdroje informací o studiu MSBuild

následující prostředky se dají použít k získání informací o MSBuild podrobněji: