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 Visual Studióban létrehozhat és módosíthat egy egyéni szabálykészletet , amely megfelel a kódelemzéshez kapcsolódó konkrét projektigényeknek. Az alapértelmezett szabálykészletek a következő helyen vannak tárolva %VSINSTALLDIR%\Team Tools\Static Analysis Tools\Rule Sets: .
Visual Studio 2017 15.7-es és újabb verzió: Bármilyen szövegszerkesztővel létrehozhat egyéni szabálykészleteket, és a parancssori buildekben alkalmazhatja őket, függetlenül attól, hogy milyen buildrendszert használ. További információért lásd /analyze:ruleset.
Ha egyéni C++ szabálykészletet szeretne létrehozni a Visual Studióban, egy C/C++ projektnek nyitva kell lennie a Visual Studio IDE-ben. Ezután megnyit egy standard szabálykészletet a szabálykészlet-szerkesztőben, majd hozzáadhat vagy eltávolíthat bizonyos szabályokat, és tetszés szerint módosíthatja azt a műveletet, amely akkor fordul elő, amikor a kódelemzés megállapítja, hogy egy szabályt megsértett.
Új egyéni szabálykészlet létrehozásához mentse azt egy új fájlnév használatával. Az egyéni szabálykészlet automatikusan hozzá lesz rendelve a projekthez.
Egyéni szabály létrehozása egyetlen meglévő szabálykészletből
A Megoldáskezelőben nyissa meg a projekt helyi menüjét, majd válassza a Tulajdonságok lehetőséget.
A Tulajdonságlapok párbeszédpanelen válassza a Configuration Properties>Code Analysis>General tulajdonságlapot.
A Szabálykészlet legördülő listában tegye az alábbiak egyikét:
Válassza ki a testre szabni kívánt szabálykészletet.
-vagy-
Válassza a <Tallózás lehetőséget,> ha olyan meglévő szabálykészletet szeretne megadni, amely nem szerepel a listában.
Válassza a Megnyitás lehetőséget a szabályok a szabálykészlet-szerkesztőben való megjelenítéséhez.
A Megoldáskezelőben nyissa meg a projekt helyi menüjét, majd válassza a Tulajdonságok lehetőséget.
A Tulajdonságlapok párbeszédpanelen válassza a Configuration Properties>Code Analysis>Microsoft tulajdonságlapját.
Az Aktív szabályok legördülő listában tegye az alábbiak egyikét:
Válassza ki a testre szabni kívánt szabálykészletet.
-vagy-
Válassza a <Tallózás lehetőséget,> ha olyan meglévő szabálykészletet szeretne megadni, amely nem szerepel a listában.
Válassza a Megnyitás lehetőséget a szabályok a szabálykészlet-szerkesztőben való megjelenítéséhez.
Szabálykészlet módosítása a szabálykészlet-szerkesztőben
A szabálykészlet megjelenítendő nevének módosításához válassza a Nézet menü Tulajdonságok ablakát. Írja be a megjelenítendő nevet a Név mezőbe. Figyelje meg, hogy a megjelenített név eltérhet a fájl nevétől.
Ha a csoport összes szabályát hozzá szeretné adni egy egyéni szabálykészlethez, jelölje be a csoport jelölőnégyzetét. A csoport összes szabályának eltávolításához törölje a jelet a jelölőnégyzetből.
Ha egy adott szabályt szeretne hozzáadni az egyéni szabálykészlethez, jelölje be a szabály jelölőnégyzetét. Ha el szeretné távolítani a szabályt a szabálykészletből, törölje a jelet a jelölőnégyzetből.
Ha módosítani szeretné a szabály megszegésekor végrehajtott műveletet egy kódelemzésben, válassza ki a szabály Művelet mezőjét, majd válasszon az alábbi értékek közül:
Figyelmeztetés – figyelmeztetést hoz létre.
Hiba – hibát okoz.
Információ – üzenetet hoz létre.
Nincs – letiltja a szabályt. Ez a művelet ugyanaz, mint a szabály eltávolítása a szabálykészletből.
A szabálykészlet-szerkesztőben lévő mezők csoportosításához, szűréséhez vagy módosításához használja a szabálykészlet-szerkesztő eszköztárát
Ha az összes csoportban ki szeretné bontani a szabályokat, válassza az Összes kibontása lehetőséget.
Az összes csoport szabályainak összecsukásához válassza az Összes összecsukása lehetőséget.
A szabályok szerint csoportosított mező módosításához válassza ki a mezőt a Csoportosítási lista alapján . A nem csoportosított szabályok megjelenítéséhez válassza a Nincs< lehetőséget>.
A szabályoszlopok mezőinek hozzáadásához vagy eltávolításához válassza az Oszlopbeállítások lehetőséget.
Az aktuális megoldásra nem érvényes szabályok elrejtéséhez válassza az Aktuális megoldásra nem érvényes szabályok elrejtése lehetőséget.
A hibaművelethez hozzárendelt szabályok megjelenítése és elrejtése közötti váltáshoz válassza a Kódelemzési hibákat generáló szabályok megjelenítése lehetőséget.
A Figyelmeztetés művelethez hozzárendelt szabályok megjelenítése és elrejtése közötti váltáshoz válassza a Kódelemzési figyelmeztetéseket generáló szabályok megjelenítése lehetőséget.
Ha váltani szeretne a Nincs művelethez rendelt szabályok megjelenítése és elrejtése között, válassza a Nem engedélyezett szabályok megjelenítése lehetőséget.
A Microsoft alapértelmezett szabálykészleteinek az aktuális szabálykészlethez való hozzáadásához vagy eltávolításához válassza a Gyermekszabály-csoportok hozzáadása vagy eltávolítása lehetőséget.
Szabálykészlet létrehozása szövegszerkesztőben
Létrehozhat egy egyéni szabálykészletet egy szövegszerkesztőben, és az elmenthető bármely helyre .ruleset kiterjesztéssel, valamint alkalmazható a /analyze:ruleset fordítói opcióval.
Az alábbi példa egy alapszintű szabálykészletfájlt mutat be, amelyet kiindulási pontként használhat:
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="New Rule Set" Description="New rules to apply." ToolsVersion="10.0">
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<Rule Id="C6001" Action="Warning" />
<Rule Id="C26494" Action="Warning" />
</Rules>
</RuleSet>
Szabálykészletséma
Az alábbi szabálykészletséma egy szabálykészletfájl XML-sémáját ismerteti. A szabálykészlet sémája a következő helyen van tárolva %VSINSTALLDIR%\Team Tools\Static Analysis Tools\Schemas\RuleSet.xsd: . Segítségével programozott módon készíthet saját szabálykészleteket, vagy ellenőrizheti, hogy az egyéni szabálykészletek megfelelnek-e a megfelelő formátumnak. További információ : Útmutató: XML-dokumentum létrehozása XSD-séma alapján.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:documentation xml:lang="en">
Visual Studio Code Analysis Rule Set Schema Definition Language.
Copyright (c) Microsoft Corporation. All rights reserved.
</xs:documentation>
</xs:annotation>
<!-- Every time this file changes, be sure to change the Validate method for the corresponding object in the code -->
<xs:element name="RuleSet" type="TRuleSet">
</xs:element>
<xs:complexType name="TLocalization">
<xs:all>
<xs:element name="Name" type="TName" minOccurs="0" maxOccurs="1" />
<xs:element name="Description" type="TDescription" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="ResourceAssembly" type="TNonEmptyString" use="required" />
<xs:attribute name="ResourceBaseName" type="TNonEmptyString" use="required" />
</xs:complexType>
<xs:complexType name="TRuleHintPaths">
<xs:sequence>
<xs:element name="Path" type="TNonEmptyString" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="TName">
<xs:attribute name="Resource" type="TNonEmptyString" use="required" />
</xs:complexType>
<xs:complexType name="TDescription">
<xs:attribute name="Resource" type="TNonEmptyString" use="required" />
</xs:complexType>
<xs:complexType name="TInclude">
<xs:attribute name="Path" type="TNonEmptyString" use="required" />
<xs:attribute name="Action" type="TIncludeAction" use="required" />
</xs:complexType>
<xs:complexType name="TIncludeAll">
<xs:attribute name="Action" type="TIncludeAllAction" use="required" />
</xs:complexType>
<xs:complexType name="TRule">
<xs:attribute name="Id" type="TNonEmptyString" use="required" />
<xs:attribute name="Action" type="TRuleAction" use="required" />
</xs:complexType>
<xs:complexType name="TRules">
<xs:sequence>
<xs:element name="Rule" type="TRule" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="AnalyzerId" type="TNonEmptyString" use="required" />
<xs:attribute name="RuleNamespace" type="TNonEmptyString" use="required" />
</xs:complexType>
<xs:complexType name="TRuleSet">
<xs:sequence minOccurs="0" maxOccurs="1">
<xs:element name="Localization" type="TLocalization" minOccurs="0" maxOccurs="1" />
<xs:element name="RuleHintPaths" type="TRuleHintPaths" minOccurs="0" maxOccurs="1" />
<xs:element name="IncludeAll" type="TIncludeAll" minOccurs="0" maxOccurs="1" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Include" type="TInclude" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Rules" type="TRules" minOccurs="0" maxOccurs="unbounded">
<xs:unique name="UniqueRuleName">
<xs:selector xpath="Rule" />
<xs:field xpath="@Id" />
</xs:unique>
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="Name" type="TNonEmptyString" use="required" />
<xs:attribute name="Description" type="xs:string" use="optional" />
<xs:attribute name="ToolsVersion" type="TNonEmptyString" use="required" />
</xs:complexType>
<xs:simpleType name="TRuleAction">
<xs:restriction base="xs:string">
<xs:enumeration value="Error"/>
<xs:enumeration value="Warning"/>
<xs:enumeration value="Info"/>
<xs:enumeration value="Hidden"/>
<xs:enumeration value="None"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TIncludeAction">
<xs:restriction base="xs:string">
<xs:enumeration value="Error"/>
<xs:enumeration value="Warning"/>
<xs:enumeration value="Info"/>
<xs:enumeration value="Hidden"/>
<xs:enumeration value="None"/>
<xs:enumeration value="Default"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TIncludeAllAction">
<xs:restriction base="xs:string">
<xs:enumeration value="Error"/>
<xs:enumeration value="Warning"/>
<xs:enumeration value="Info"/>
<xs:enumeration value="Hidden"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TNonEmptyString">
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
Sémaelem részletei:
| Sémaelem | Leírás |
|---|---|
TLocalization |
Honosítási információk, beleértve a szabálykészletfájl nevét, a szabálykészletfájl leírását, a honosított erőforrást tartalmazó erőforrás-szerelvény nevét és a honosított erőforrás alapnevét |
TRuleHintPaths |
A szabálykészletfájlok keresésére szolgáló tippekként használt fájlelérési utak |
TName |
Az aktuális szabálykészletfájl neve |
TDescription |
Az aktuális szabálykészletfájl leírása |
TInclude |
Belefoglalt szabálykészlet elérési útja szabályművelettel |
TIncludeAll |
Szabályművelet az összes szabályhoz |
TRule |
Szabályazonosító szabályművelettel |
TRules |
Egy vagy több szabály gyűjteménye |
TRuleSet |
A szabálykészlet fájlformátuma, amely a honosítási információkból, a szabálymutatók elérési útjaiból, az összes információból, a szabályok adataiból, a névből, a leírásból és az eszközök verzióadataiból áll |
TRuleAction |
Szabályműveletet leíró enumerálás, például hiba, figyelmeztetés, információ, rejtett vagy nincs |
TIncludeAction |
Szabályműveletet leíró enumerálás, például hiba, figyelmeztetés, információ, rejtett, nincs vagy alapértelmezett |
TIncludeAllAction |
Szabályműveletet leíró enumerálás, például hiba, figyelmeztetés, információ vagy rejtett |
Ha egy szabálykészletre szeretne példát látni, olvassa el a Szabálykészlet létrehozása szövegszerkesztőben vagy a benne tárolt %VSINSTALLDIR%\Team Tools\Static Analysis Tools\Rule Setsalapértelmezett szabálykészletek bármelyikét.