MSBuild feladatok

A buildplatformnak bármilyen számú művelet végrehajtására van szüksége a buildelési folyamat során. Az MSBuild feladatokkal hajtja végre ezeket a műveleteket. A feladat az MSBuild által az atomi buildelési műveletek végrehajtásához használt végrehajtható kód egysége.

Tevékenységlogika

Az MSBuild XML-projektfájl formátuma önmagában nem tudja teljes mértékben végrehajtani a buildelési műveleteket, ezért a feladatlogikát a projektfájlon kívül kell implementálnia.

A feladat végrehajtási logikája a névtérben ITask definiált felületet implementáló Microsoft.Build.Framework .NET-osztályként van implementálva.

A tevékenységosztály a projektfájlban a tevékenység számára elérhető bemeneti és kimeneti paramétereket is meghatározza. A tevékenységosztály által közzétett összes nyilvános, nem statikus nem absztrakt tulajdonság megadhat értékeket a projektfájlban úgy, hogy a tevékenységelemen egy azonos nevű attribútumot helyez el, és beállítja annak értékét a jelen cikk későbbi példáiban látható módon.

Saját feladat megírásához létrehozhat egy felügyelt osztályt, amely implementálja a ITask felületet. További információ: Feladatírás.

Feladat végrehajtása projektfájlból

Mielőtt végrehajtanál egy feladatot a projektfájlban, először le kell képeznie a szerelvény azon típusát, amely megvalósítja a feladatot a Tevékenység neve és a UsingTask elem között. Ez lehetővé teszi, hogy az MSBuild tudja, hol keresse meg a feladat végrehajtási logikáját, amikor az a projektfájlban található.

Ha egy feladatot egy MSBuild projektfájlban szeretne végrehajtani, hozzon létre egy elemet, amelynek neve egy elem gyermeke Target . Ha egy tevékenység paramétereket fogad el, ezek az elem attribútumaiként lesznek átadva.

Az MSBuild elemlisták és tulajdonságok paraméterként használhatók. Az alábbi kód például meghívja a MakeDir feladatot, és beállítja az DirectoriesMakeDir objektum tulajdonságának értékét a BuildDir tulajdonság értékével:

<Target Name="MakeBuildDirectory">
    <MakeDir
        Directories="$(BuildDir)" />
</Target>

A tevékenységek a projektfájlba is vissza tudják adni az adatokat, amelyek később felhasználhatók elemekben vagy tulajdonságokban. Az alábbi kód például meghívja a Copy feladatot, és az elemlistában tárolja a CopiedFilesSuccessfullyCopiedFiles kimeneti tulajdonság adatait.

<Target Name="CopyFiles">
    <Copy
        SourceFiles="@(MySourceFiles)"
        DestinationFolder="@(MyDestFolder)">
        <Output
            TaskParameter="CopiedFiles"
            ItemName="SuccessfullyCopiedFiles"/>
     </Copy>
</Target>

Belefoglalt tevékenységek

Az MSBuild számos olyan feladatot tartalmaz, mint például a Másolás, amely fájlokat másol, a Könyvtárakat létrehozó MakeDir és a C# forráskódfájlokat fordító Csc. Az elérhető tevékenységek és használati információk teljes listáját a Tevékenység referenciacímű témakörben találja.

Felülírt tevékenységek

Az MSBuild több helyen is keres feladatokat. Az első hely az MSBuild könyvtárban tárolt kiterjesztésű .OverrideTasks fájlokban található. Az ezekben a fájlokban lévő tevékenységek felülírnak minden más, azonos nevű tevékenységet, beleértve a projektfájlban lévő tevékenységeket is. A második hely a projektfájlban és annak importálásában található. Ha a tevékenység nincs definiálva a projektben, akkor a rendszer az MSBuild alapértelmezett feladatai között keresi meg, amelyek az MSBuild könyvtár egyik fájljában .tasks vannak definiálva.