Megosztás a következőn keresztül:


MSBuild@1 – MSBuild v1 feladat

Ezzel a feladattal az MSBuild használatával hozhat létre.

Syntax

# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.

Bevitelek

solution - Projekt
string. Kötelező. Alapértelmezett érték: **/*.sln.

Ha több projektet szeretne létrehozni, adja meg a keresési feltételeket. Használhat egymappás helyettesítő karaktereket (*) és rekurzív helyettesítő karaktereket (**). Megkeresi például **.*proj az összes MSBuild projektfájlt (.*proj) az összes alkönyvtárban.

Győződjön meg arról, hogy a megadott projekteket ezzel a buildfolyamattal tölti le. Az Adattár lapon:

  • Ha TFVC-t használ, győződjön meg arról, hogy a projekt az Adattár lap egyik leképezésének gyermeke.
  • Ha a Gitet használja, győződjön meg arról, hogy a projekt vagy projekt a Git-adattárban található egy ön által létrehozott ágban.

Tipp

Ha megoldást készít, javasoljuk, hogy az MSBuild feladat helyett a Visual Studio buildelési feladatát használja.


msbuildLocationMethod - Msbuild
string. Engedélyezett értékek: version, location (Hely megadása). Alapértelmezett érték: version.


msbuildVersion - MSBuild verzió
string. Választható. Használja a következőt: msbuildLocationMethod = version. Engedélyezett értékek: latest, 17.0 (MSBuild 17.0), 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Alapértelmezett érték: latest.

Ha az előnyben részesített verzió nem található, a rendszer a legújabb verziót használja. MacOS-ügynök esetén a (Mono) akkor használatos, xbuild ha a verzió alacsonyabb, mint 15.0.


msbuildVersion - MSBuild verzió
string. Választható. Használja a következőt: msbuildLocationMethod = version. Engedélyezett értékek: latest, 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Alapértelmezett érték: latest.

Ha az előnyben részesített verzió nem található, a rendszer a legújabb verziót használja. MacOS-ügynök esetén a (Mono) akkor használatos, xbuild ha a verzió alacsonyabb, mint 15.0.


msbuildArchitecture - MSBuild architektúra
string. Választható. Használja a következőt: msbuildLocationMethod = version. Engedélyezett értékek: x86 (MSBuild x86), x64 (MSBuild x64). Alapértelmezett érték: x86.

Az MSBuild architektúrát (x86, x64) biztosítja a futtatáshoz.


msbuildLocation - Az MSBuild elérési útja
string. Választható. Használja a következőt: msbuildLocationMethod = location.

Megadja az MSBuild elérési útját.


platform - Platform
string.

Tipp

  • Ha megoldás helyett MSBuild projektfájlt (.*proj) céloz meg, adja meg AnyCPU a (nincs térköz) értéket.
  • Deklaráljon egy buildváltozót, például BuildPlatform a Változók lapon (a Várakozási idő beállításnál kiválasztva Allow ), és hivatkozzon rá itt a következőként: $(BuildPlatform). Így módosíthatja a platformot, amikor várólistára állítja a buildet, és lehetővé teszi több konfiguráció összeállítását.

configuration - Konfigurációs
string.

Tipp

Deklaráljon egy buildváltozót, például BuildConfiguration a Változók lapon (a Várakozási idő beállításnál kiválasztva Allow ), és hivatkozzon rá itt a következőként: $(BuildConfiguration). Így módosíthatja a platformot, amikor várólistára állítja a buildet, és lehetővé teszi több konfiguráció összeállítását.


msbuildArguments - MSBuild argumentumok
string.

Az MSBuild (Windows rendszeren) és az xbuild (macOS rendszeren) számára átadott további argumentumokat adja meg.


clean - Tiszta
boolean. Alapértelmezett érték: false.

Állítsa értékre False , ha növekményes buildet szeretne készíteni. Ez a beállítás csökkentheti a buildelési időt, különösen akkor, ha a kódbázis nagy méretű. Ez a beállítás csak akkor érvényes, ha az adattárat is a Clean értékre Falseállítja. Állítsa a értéket True , ha újra szeretné építeni a kódprojektek összes kódját. Ez az MSBuild /target:clean argumentumnak felel meg. További információ: Adattár beállításai


maximumCpuCount - Párhuzamos buildelés
boolean. Alapértelmezett érték: false.

Ha az MSBuild célkonfigurációja kompatibilis a párhuzamos építéssel, ellenőrizheti ezt a bemenetet, hogy átadja a kapcsolót az /m MSBuildnek (csak Windows esetén). Ha a célkonfiguráció nem kompatibilis a párhuzamos építéssel, ennek a beállításnak a bejelölésével a build hibákhoz, vagy időszakos vagy inkonzisztens buildhibákhoz file-in-use vezethet.


restoreNugetPackages - NuGet-csomagok visszaállítása
boolean. Alapértelmezett érték: false.

Ez a beállítás elavult. A NuGet-csomagok visszaállításához adjon hozzá egy NuGet-feladatot a buildelés előtt.


logProjectEvents - Projekt részleteinek rögzítése
boolean. Alapértelmezett érték: false.

Igény szerint az egyes projektek ütemtervadatait is rögzíti (csak Windows rendszeren).


createLogFile - Naplófájl létrehozása
boolean. Alapértelmezett érték: false.

Opcionálisan létrehoz egy naplófájlt (csak Windows rendszeren).


logFileVerbosity - Naplófájl részletessége
string. Választható. Használja a következőt: createLogFile = true. Engedélyezett értékek: quiet, minimal, normal, detailed, diagnostic. Alapértelmezett érték: normal.

A naplófájl részletességét adja meg.


Feladatvezérlési lehetőségek

Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlési beállítások és gyakori feladattulajdonságok.

Kimeneti változók

Nincsenek.

Megjegyzések

Használnom kell a Visual Studio Build vagy az MSBuild feladatot?

Ha megoldást hoz létre, a legtöbb esetben a Visual Studio buildelési feladatát kell használnia. Ez a feladat automatikusan:

  • Beállítja a /p:VisualStudioVersion tulajdonságot. Ez arra kényszeríti az MSBuildet, hogy olyan célokat használjon, amelyek növelik a sikeres buildelés valószínűségét.
  • Az MSBuild verzió argumentumot adja meg.

Bizonyos esetekben szükség lehet a MSBuild feladat használatára. Például akkor érdemes használnia, ha a megoldáson kívül kódprojekteket hoz létre.

Hol tudhatok meg többet az MSBuild szolgáltatásról?

MSBuild-referencia

MSBuild parancssori referencia

Hogyan több platformhoz több konfigurációt is összeállít?

  1. A Változók lapon győződjön meg arról, hogy a konfigurációkhoz és platformokhoz vannak definiálva változók. Több érték megadásához vesszővel kell elválasztani őket. Például:

    • A .NET-alkalmazások esetében megadható BuildConfiguration hibakeresési és kiadási értékekkel, és bármilyen CPU-értékkel megadható BuildPlatform .
    • C++ alkalmazás esetén megadható BuildConfiguration hibakeresési és kiadási értékekkel, és bármilyen x86- és x64-értékkel megadhatja BuildPlatform .
  2. A Beállítások lapon válassza ki MultiConfiguration és adja meg a Multipliers, vesszővel elválasztva. Például: BuildConfiguration, BuildPlatform Válassza ki Parallel , hogy a feladatokat (az értékek kombinációinak egy-egyét) több ügynökre szeretné-e párhuzamosan terjeszteni, ha elérhetők.

  3. A Build lapon válassza ki ezt a lépést, és adja meg a és Configuration az Platform argumentumokat. Például:

    • Platform: $(BuildPlatform)
    • Konfigurációs: $(BuildConfiguration)

Létrehozhatok TFSBuild.proj fájlokat?

Nem hozhat létre TFSBuild.proj fájlokat. Az ilyen típusú fájlokat a és TFS 2008a hozza TFS 2005 létre. Ezek a fájlok feladatokat tartalmaznak, és a célok csak XAML-buildekkel támogatottak.

Hibaelhárítás

Ez a szakasz hibaelhárítási tippeket nyújt azokhoz a gyakori problémákhoz, amelyekkel a felhasználó a feladat használatakor MSBuild találkozhat.

A buildelés a következő hibával meghiúsult: Belső hiba történt az MSBuild futtatása közben

Lehetséges okok
  • Változás az MSBuild verzióban.
  • Külső bővítményekkel kapcsolatos problémák.
  • A Visual Studio új frissítései, amelyek hiányzó szerelvényeket okozhatnak a buildügynökön.
  • Áthelyezett vagy törölt néhány szükséges NuGet-csomagot.
Hibaelhárítási javaslatok
Futtassa a folyamatot diagnosztikával a részletes naplók lekéréséhez

A probléma diagnosztizálására az egyik lehetséges lehetőség a létrehozott naplók megvizsgálása. A folyamatnaplók megtekintéséhez válassza ki a megfelelő feladatot és feladatot a folyamatfuttatás összegzésében.

A folyamatvégrehajtás naplóinak lekérése Naplók lekérése a problémák diagnosztizálásához

A hibaelhárításhoz testre szabott részletes naplót is beállíthat és letölthet:

A folyamatdiagnosztikai naplók mellett ezeket a naplótípusokat is ellenőrizheti, amelyek további információkat tartalmaznak a hibakereséshez és a probléma megoldásához:

Próbálja meg helyileg reprodukálni a hibát

Ha üzemeltetett buildügynököt használ, érdemes lehet helyileg reprodukálni a hibát. Ez segít leszűkíteni, hogy a hiba a buildügynök vagy a buildelési feladat eredménye-e.

Futtassa ugyanazt MSBuild a parancsot a helyi gépen ugyanazokkal az argumentumokkal. Tekintse meg az MSBuild parancsot referenciaként.

Tipp

Ha reprodukálni tudja a problémát a helyi gépen, a következő lépés az MSBuild hiba kivizsgálása.

További információ a Microsoft által üzemeltetett ügynökökről.

Saját saját üzemeltetésű ügynök beállítása és a buildelési feladatok futtatása:

Mit tehetek még?

Az MSBuild hibáinak egy részét a Visual Studio változása okozza, így a Visual Studio fejlesztői közösségében kereshet, és ellenőrizheti, hogy jelent-e ez a probléma. Örömmel fogadjuk kérdéseit, javaslatait és visszajelzéseit is.

Követelmények

Követelmény Leírás
Folyamattípusok YAML, klasszikus build
Futtatás Ügynök, DeploymentGroup
Igények A saját üzemeltetésű ügynököknek olyan képességekkel kell rendelkezniük , amelyek megfelelnek az alábbi követelményeknek a feladatot használó feladatok futtatásához: msbuild
Képességek Ez a feladat nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
Parancskorlátozások Bármelyik
Változók beállítása Bármelyik
Ügynök verziója 1.95.0 vagy újabb
Feladatkategória Build

Lásd még