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.
Az alábbi beállítások szabályozzák, hogy a fordító hogyan jelent hibákat és figyelmeztetéseket.
| MSBuild szintaxis | csc.exe szintaxis | Leírás |
|---|---|---|
WarningLevel |
-warn |
Figyelmeztetési szint beállítása. További információ. |
AnalysisLevel |
/ | Adja meg az opcionális figyelmeztetési szintet. További információ. |
TreatWarningsAsErrors |
-warnaserror |
Az összes figyelmeztetést kezelje hibákként. További információ. |
WarningsAsErrors |
-warnaserror+ |
Egy vagy több figyelmeztetést kezelhet hibaként. További információ. |
WarningsNotAsErrors |
-warnaserror- |
Egy vagy több figyelmeztetést ne hibaként kezeljen. További információ. |
NoWarn |
-nowarn |
Állítsa be a letiltott figyelmeztetések listáját. További információ. |
CodeAnalysisRuleSet |
-ruleset |
Adjon meg egy olyan szabálykészletfájlt, amely letiltja az adott diagnosztikát. További információ. |
ErrorLog |
-errorlog |
Adjon meg egy fájlt, amely naplózza az összes fordító és elemző diagnosztikát. További információ. |
ReportAnalyzer |
-reportanalyzer |
Jelentéskészítés további elemzői adatokról, például végrehajtási időről. További információ. |
Feljegyzés
A projekt beállításainak konfigurálásáról további információt a Fordító beállításai című témakörben talál. Az elérhető kapcsolókkal kapcsolatos további információkért tekintse meg az MSBuild parancssori kapcsolókról szóló cikket a Visual Studio dokumentációjában.
Figyelmeztetési szint
A WarningLevel beállítás megadja a fordító megjelenítendő figyelmeztetési szintjét.
<WarningLevel>3</WarningLevel>
Az elemérték az összeállításhoz megjelenítendő figyelmeztetési szint: Az alacsonyabb számok csak a nagy súlyosságú figyelmeztetéseket jelenítik meg. A nagyobb számok további figyelmeztetéseket mutatnak. Az értéknek nullának vagy pozitív egész számnak kell lennie:
| Figyelmeztetési szint | Értelmezés |
|---|---|
| 0 | Az összes figyelmeztető üzenet kibocsátásának kikapcsolása. |
| 0 | Súlyos figyelmeztető üzeneteket jelenít meg. |
| 2 | 1. szintű figyelmeztetéseket és bizonyos, kevésbé súlyos figyelmeztetéseket jelenít meg, például az osztálytagok elrejtésével kapcsolatos figyelmeztetéseket. |
| 3 | Megjeleníti a 2. szintű figyelmeztetéseket, valamint bizonyos, kevésbé súlyos figyelmeztetéseket, például a mindig kiértékelt true vagy falsekiértékelt kifejezésekre vonatkozó figyelmeztetéseket. |
| 4 (alapértelmezett) | Megjeleníti az összes 3. szintű figyelmeztetést, valamint az információs figyelmeztetéseket. |
Figyelmeztetés
A fordító parancssora 4-nél nagyobb értékeket fogad el a figyelmeztetőhullám-figyelmeztetések engedélyezéséhez.
Ha információt szeretne kapni egy hibáról vagy figyelmeztetésről, keresse meg a hibakódot a súgóindexben. A hibákról vagy figyelmeztetésekről további információt a C# fordítóhibái című témakörben talál. A TreatWarningsAsErrors használatával minden figyelmeztetést hibaként kezelhet. Bizonyos figyelmeztetések letiltásához használja a DisabledWarnings parancsot.
Elemzési szint
Az AnalysisLevel beállítás nagyobb figyelmeztető hullámokat és elemzőket határoz meg a .NET 7- és újabb projektekben való engedélyezéshez. A figyelmeztetőhullám-figyelmeztetések további ellenőrzések, amelyek javítják a kódot, vagy biztosítják, hogy kompatibilis maradjon a közelgő kiadásokkal. Az elemzők lint-szerű képességet biztosítanak a kód fejlesztéséhez.
A .NET 7 SDK-tól kezdve az AnalysisLevel és a WarningLevel az alábbi szabályok alapján van beállítva:
- Az alapértelmezett AnalysisLevel megegyezik a projektfájlBól származó Target Framework Moniker (TFM) értékkel.
- Az alapértelmezett WarningLevel megegyezik az AnalysisLevel értékével.
- Az alapértelmezett WarningLevel a .NET-keretrendszer-projektek esetében 4.
A .NET 7 SDK előtt az AnalysisLevel felülírja a WarningLevelet.
<AnalysisLevel>preview</AnalysisLevel>
| Elemzési szint | Értelmezés |
|---|---|
| 5 | Megjeleníti az 5. figyelmeztető hullám összes választható figyelmeztetését. |
| 6 | Megjeleníti az összes választható figyelmeztetési hullám 6 figyelmeztetését. |
| 7 | Megjeleníti az összes választható figyelmeztetési hullám 7 figyelmeztetését. |
| legújabb (alapértelmezett) | Megjeleníti az összes tájékoztató figyelmeztetést, beleértve az aktuális kiadást is. |
| előzetes verzió | Megjeleníti az összes tájékoztató figyelmeztetést, beleértve a legújabb előzetes kiadást is. |
| Nincs | Az összes tájékoztató figyelmeztetés kikapcsolása. |
További információ az opcionális figyelmeztetésekről: Figyelmeztetési hullámok.
Ha információt szeretne kapni egy hibáról vagy figyelmeztetésről, keresse meg a hibakódot a súgóindexben. A hibákról vagy figyelmeztetésekről további információt a C# fordítóhibái című témakörben talál. A TreatWarningsAsErrors használatával minden figyelmeztetést hibaként kezelhet. Bizonyos figyelmeztetések letiltásához használja a NoWarn parancsot.
FigyelmeztetesekKezeleseHibakent
A TreatWarningsAsErrors beállítás az összes figyelmeztetést hibaként kezeli. A WarningsAsErrors használatával is csak néhány figyelmeztetést állíthat be hibaként. Ha bekapcsolja a TreatWarningsAsErrors szolgáltatást, a WarningsNotAsErrors használatával felsorolhatja azokat a figyelmeztetéseket, amelyeket nem szabad hibaként kezelni.
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
A rendszer ehelyett az összes figyelmeztető üzenetet hibaüzenetként jelenti. A buildelési folyamat leáll (nincsenek kimeneti fájlok). Alapértelmezés szerint a TreatWarningsAsErrors nincs érvényben, ami azt jelenti, hogy a figyelmeztetések nem akadályozzák a kimeneti fájlok létrehozását. Ha azt szeretné, hogy csak néhány konkrét figyelmeztetés legyen hibaként kezelve, megadhat egy vesszővel tagolt listát a hibaként kezelendő figyelmeztetési számokról. A null értékű figyelmeztetések halmaza a Nullable rövidítéssel adható meg. A WarningLevel használatával megadhatja, hogy a fordító milyen szintű figyelmeztetéseket jelenítsen meg. Bizonyos figyelmeztetések letiltásához használja a NoWarn parancsot.
Fontos
Két apró különbség van a <TreatWarningsAsErrors> csproj-fájl elemének és az warnaserror MSBuild parancssori kapcsolójának használata között.
A TreatWarningsAsErrors csak a C# fordítóra van hatással, a csproj-fájlban lévő többi MSBuild-feladatra nem. A warnaserror parancssori kapcsoló minden tevékenységre hatással van. Másodszor, a fordító nem hoz létre kimenetet semmilyen figyelmeztetésen a TreatWarningsAsErrors használata esetén. A fordító kimenetet hoz létre a parancssori warnaserror kapcsoló használatakor.
WarningsAsErrors és WarningsNotAsErrors
A WarningsAsErrors és a WarningsNotAsErrors beállítások felülbírálják a TreatWarningsAsErrors beállítást a figyelmeztetések listájához. Ez a beállítás az összes CS-figyelmeztetés esetén használható. A "CS" előtag nem kötelező. Használhatja a számot vagy a "CS"-t, amelyet a hiba vagy a figyelmeztetési szám követ. A figyelmeztetéseket befolyásoló egyéb elemekért tekintse meg az MSBuild közös tulajdonságait. A figyelmeztető azonosítók listáján kívül megadhatja azt a sztringet nullableis, amely hibaként kezeli a null értékűséggel kapcsolatos összes figyelmeztetést.
Engedélyezze a 0219- és 0168-as figyelmeztetéseket, valamint az összes null értékű figyelmeztetést hibaként:
<WarningsAsErrors>0219;CS0168;nullable</WarningsAsErrors>
Tiltsa le ugyanazokat a figyelmeztetéseket, mint a hibák:
<WarningsNotAsErrors>0219;CS0168;nullable</WarningsNotAsErrors>
A WarningsAsErrors használatával hibaként konfigurálhat figyelmeztetéseket. A WarningsNotAsErrors használatával olyan figyelmeztetéseket konfigurálhat, amelyek nem lehetnek hibák, amikor az összes figyelmeztetést hibaként állítja be.
Nincs figyelmeztetés
A NoWarn beállítással letilthatja, hogy a fordító egy vagy több figyelmeztetést jelenítsen meg, ahol warningnumber1warningnumber2 a fordító el szeretné tiltani a figyelmeztetési számokat. Több figyelmeztető szám vesszővel való elválasztása. Megadhatja nullable , hogy letiltsa a null értékűséggel kapcsolatos összes figyelmeztetést.
<NoWarn>warningnumber1,warningnumber2</NoWarn>
Csak a figyelmeztető azonosító numerikus részét kell megadnia. Ha például el szeretné tiltani a CS0028-at, megadhatja <NoWarn>28</NoWarn>. A fordító csendesen figyelmen kívül hagyja a NoWarnnak átadott, a korábbi kiadásokban érvényes, de az aktuális fordító által nem létrehozott figyelmeztető számokat. A CS0679 például érvényes volt a Visual Studio .NET 2002 fordítójában, de később el lett távolítva.
A NoWarn beállítás nem tudja letiltani az alábbi figyelmeztetéseket:
- Fordító figyelmeztetés (1. szint) CS2002
- Fordító figyelmeztetése (1. szint) CS2023
- Fordító figyelmeztetés (1. szint) CS2029
A figyelmeztetések a kód esetleges problémájának jelzésére szolgálnak, ezért tisztában kell lennie az adott figyelmeztetések letiltásának kockázatával. A NoWarn csak akkor használható, ha biztos benne, hogy a figyelmeztetés hamis pozitív, és nem lehet futásidejű hiba.
Érdemes lehet célzottabb megközelítést használni a figyelmeztetések letiltásához:
- A legtöbb fordító csak bizonyos kódsorokra vonatkozóan biztosít módot a figyelmeztetések letiltására, így továbbra is áttekintheti a figyelmeztetéseket, ha azok ugyanabban a projektben máshol fordulnak elő. Ha csak a C# kód egy adott részében szeretné letiltani a figyelmeztetést, használja #pragma figyelmeztetést.
- Ha a cél az, hogy tömörebb és koncentráltabb kimenet jelenjen meg a buildnaplóban, érdemes lehet módosítani a buildnapló részletességét. További információ : A build naplófájljainak megtekintése, mentése és konfigurálása.
Ha a NoWarn bármely korábban beállított értékéhez szeretne figyelmeztetési számokat hozzáadni felülírás nélkül, hivatkozzon az alábbi példában látható módon$(NoWarn):
<NoWarn>$(NoWarn);newwarningnumber3;newwarningnumber4</NoWarn>
KódelemzésSzabálykészlet
Adjon meg egy adott diagnosztikát konfiguráló szabálykészletfájlt.
<CodeAnalysisRuleSet>MyConfiguration.ruleset</CodeAnalysisRuleSet>
Hol MyConfiguration.ruleset található a szabálykészletfájl elérési útja. A szabálykészletek használatáról további információt a Visual Studio szabálykészletekkel kapcsolatos dokumentációjában talál.
Hibanapló
Adjon meg egy fájlt, amely naplózza az összes fordító és elemző diagnosztikát.
<ErrorLog>compiler-diagnostics.sarif</ErrorLog>
A Hibanapló beállítás hatására a fordító statikus elemzési eredmények csomópontformátumú (SARIF) naplót ad ki. A fordító és elemző eredményeket elemző eszközök SARIF-naplókat olvasnak.
A SARIF formátumot az elem argumentumával versionErrorLog adhatja meg:
<ErrorLog>logVersion21.json,version=2.1</ErrorLog>
Az elválasztó lehet vessző (,) vagy pontosvessző (;). A verzió érvényes értékei a következők: "1", "2" és "2.1". Az alapértelmezett érték az "1". A "2" és a "2.1" egyaránt a SARIF 2.1.0-s verzióját jelenti.
Jelentéselemző
Jelentéskészítés további elemzői adatokról, például végrehajtási időről.
<ReportAnalyzer>true</ReportAnalyzer>
A ReportAnalyzer beállítás hatására a fordító további MSBuild naplóadatokat bocsát ki, amelyek részletezik a buildben lévő elemzők teljesítményjellemzőit. Ezt általában az elemző szerzői használják az elemző ellenőrzésének részeként.
Fontos
A jelző által generált további naplóadatok csak a -verbosity:detailed parancssori beállítás használatakor jönnek létre. További információt az MSBuild dokumentációjában található kapcsolókról szóló cikkben talál.