Mi az a CSProj fájl?
A CSPROJ kiterjesztésű fájlok egy C# projektfájlt képviselnek, amely tartalmazza a projektben szereplő fájlok listáját a rendszerösszeállításokra való hivatkozásokkal együtt. Amikor új projektet kezdeményez a Microsoft VIiual Studio programban, egy .csproj fájlt kap a fő megoldás (.sln) fájl mellett. Ha egy projektben egynél több összeállítás van, akkor azonos számú projektfájl is lesz, ahol az .sln fájl mindegyiket összekapcsolja a projekt részeként. Ennek a fájlnak a tartalma meghatározza a projekt felépítéséhez szükséges összes követelményt, például a tartalmazandó tartalmat, a platformkövetelményeket, a verziószámítási információkat, a webszerver- vagy adatbázis-kiszolgáló beállításait és az elvégzendő feladatokat. A projektfájl tartalma XML fájlformátumban van elrendezve, és bármely szövegszerkesztőben megnyitható szerkesztésre és megtekintésre. Logikus nézetet ad a projektfájloknak a megfelelő elrendezéshez.
CSPROJ fájlformátum száma
A fejlesztők maguk is létrehozhatnak projektfájlokat az MSBuild XML séma tiszteletben tartásával. A projektfájlok nyílt és átlátható szerkezete lehetővé teszi az alkalmazásfejlesztők számára, hogy kifinomult és finoman szabályozzák a projektek felépítését és telepítését. Egy ilyen projektfájl tartalma nagyon egyértelmű kapcsolatban áll egymással. A következő ábra egy ilyen projektfájl kulcsfontosságú elemeit és ezek közötti kapcsolatot mutatja be.

A következő szakaszok a projektfájl fájlformátum-elemeit dolgozzák fel.
Projektelem
A Project elem minden projektfájl gyökéreleme. Azonosítja a projektfájl XML-sémáját, és attribútumokat is tartalmazhat az összeállítási folyamat belépési pontjainak megadásához.
<Project ToolsVersion#"4.0" DefaultTargets#"FullPublish" xmlns#"http://schemas.microsoft.com/developer/msbuild/2003"> </Project> Tulajdonságok és feltételek
A tulajdonságok jelentik a projekt felépítéséhez szükséges információkat. Az ilyen tulajdonságokat a PropertyGroup elem határozza meg. Ezek a tulajdonságok kulcs-érték párokból állnak, ahol a tulajdonságelem neve határozza meg a tulajdonságkulcsot, és az elem tartalma határozza meg a tulajdonság értékét. Például megadhat a Kiszolgálónév és a ConnectionString nevű tulajdonságokat statikus kiszolgálónév és kapcsolati karakterlánc tárolására.
<PropertyGroup> <ServerName>FABRIKAM\TEST1</ServerName> <ConnectionString> Data Source#FABRIKAM\TESTDB;InitialCatalog#ContactManager,... </ConnectionString> </PropertyGroup> Elemeken keresztül a feltételek megadhatók az elem értékelési kritériumainak megadása érdekében. Ezt a Feltétel szó határozza meg, miközben az alábbiak szerint definiálja a tulajdonságot:
<PropertyGroup> <OutputRoot Condition#" '$(OutputRoot)'##'' ">..\Publish\Out\</OutputRoot> ... </PropertyGroup> Amikor az MSBuild feldolgozza ezt a tulajdonságdefiníciót, először ellenőrzi, hogy elérhető-e $(OutputRoot) tulajdonságérték. Ha a tulajdonság értéke üres – más szóval a felhasználó nem adott meg értéket ehhez a tulajdonsághoz –, a feltétel kiértékelése true, a tulajdonság értéke pedig ..\Publish\Out.
Tételek és cikkcsoportok
A projektfájl az építési folyamat bemeneteit határozza meg, amelyek valójában különböző fájltípusok. Az MSBuild nómenklatúrában ezeket a bemeneteket Item elemek képviselik, és egy ItemGroup elemen belül vannak meghatározva. A Tulajdon elemekhez hasonlóan az Elem elemeket is tetszés szerint nevezheti el. Azonban meg kell adnia egy Include attribútumot az elem által képviselt fájl vagy helyettesítő karakter azonosításához.
<ItemGroup> <ProjectsToBuild Include#"$(SourceRoot)ContactManager-WCF.sln"/> </ItemGroup> Célok és feladatok
A Task elem egy egyedi összeállítási utasítást (vagy feladatot) jelent. Az MSBuild számos előre meghatározott feladatot tartalmaz. Például:
- A Másolás feladat a fájlokat új helyre másolja.
- A Csc feladat meghívja a Visual C# fordítót.
- A Vbc feladat meghívja a Visual Basic fordítót.
- Az Exec feladat egy megadott programot futtat.
- Az Üzenet feladat üzenetet ír egy naplózónak.
A feladatoknak mindig a Target elemekben kell szerepelniük. A Target elem egy vagy több feladat halmaza, amelyek egymás után kerülnek végrehajtásra, és egy projektfájl több célt is tartalmazhat.
<Project xmlns#"http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name#"LogMessage"> <Message Text#"Hello world!" /> </Target> </Project>