Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.