anchor.diff:  CA2103,ReviewImperativeSecurity,Desktop,#N/A,Review imperative security,A method uses imperative security and might be constructing the permission by using state information or return values that can change as long as the demand is active. Use declarative security whenever possible.,Yes,11291,80,0.007085289,571.9925201,Security,Low,,,
   CA2106,SecureAsserts,Desktop,#N/A,Secure asserts,A method asserts a permission and no security checks are performed on the caller. Asserting a security permission without performing any security checks can leave an exploitable security weakness in your code.,Yes,13428,138,0.010277033,401.6734505,Security,Low,,,
   CA2107,ReviewDenyAndPermitOnlyUsage,Desktop,#N/A,Review deny and permit only usage,The PermitOnly method and CodeAccessPermission.Deny security actions should be used only by those who have an advanced knowledge of .NET Framework security. Code that uses these security actions should undergo a security review.,Yes,938,16,0.017057569,174.2453914,Security,Low,,,
  -CA2209,AssembliesShouldDeclareMinimumSecurity,Desktop,#N/A,Assemblies should declare minimum security,"Assemblies specify security permission requests to communicate to administrators the minimum permissions that are required to execute the assembly, and to limit security vulnerabilities caused by mistakenly omitting demands at the type and member level. ",,7023,203,0.028905026,133.0745256,Security,Low,No,Deprecated rule,
  +CA2209,AssembliesShouldDeclareMinimumSecurity,Desktop,#N/A,Assemblies should declare minimum security,"Assemblies specify security permission requests to communicate to administrators the minimum permissions that are required to execute the assembly, and to limit security vulnerabilities caused by mistakenly omitting demands at the type and member level. ",,7023,203,0.028905026,133.0745256,Security,Low,Cut,Deprecated rule,
   CA2120,SecureSerializationConstructors,Desktop,#N/A,Secure serialization constructors,"This type has a constructor that takes a System.Runtime.Serialization.SerializationInfo object and a System.Runtime.Serialization.StreamingContext object (the signature of the serialization constructor). This constructor is not secured by a security check, but one or more of the regular constructors in the type are secured.",Yes,33,26,0.787878788,1.927344616,Security,Low,,,
   CA2112,SecuredTypesShouldNotExposeFields,Desktop,#N/A,Secured types should not expose fields,"A public or protected type contains public fields and is secured by Link Demands. If code has access to an instance of a type that is secured by a link demand, the code does not have to satisfy the link demand to access the fields of the type.",Yes,9409,0,0,,Security,Low,,,
   CA2108,ReviewDeclarativeSecurityOnValueTypes,Desktop,#N/A,Review declarative security on value types,A public or protected value type is secured by Data Access or Link Demands.,Yes,136,0,0,,Security,Low,,,
  
positive.code: CA2128,#N/A,System.Runtime,#N/A,Security transparent code should not assert,"This rule analyzes all methods and types in an assembly which is either 100% transparent or mixed transparent/critical, and flags any declarative or imperative usage of CodeAccessPermission.Assert.",,3,0,0,,Security,Low,,,
  CA2150,TransparentCodeMustNotUseCriticalAttributes,System.Runtime,#N/A,#N/A,#N/A,No,,,,,,Low,,,
  CA2151,FieldsWithCriticalTypesShouldBeCriticalFxCopRule,System.Runtime,#N/A,#N/A,#N/A,No,,,,,,Low,,,
  CA2153,DoNotCatchCorruptedStateExceptionsInGeneralHandlers,System.Runtime,Desktop.Analyzers,Do not catch corrupted state exceptions in general handlers.,Do not author general catch handlers in code that receives corrupted state exceptions.,No,,,,,,,Yes,,
  CA5122,PInvokesShouldNotBeSafeCriticalFxCopRule,System.Runtime,#N/A,#N/A,#N/A,No,,,,,,Low,,,
  CA900,AptcaAssembliesShouldBeReviewed,System.Runtime,#N/A,Aptca assemblies should be reviewed,Microsoft only allows certain assemblies to have the AllowPartiallyTrustedCallers attribute. This rule can be ignored if the assembly is not for distribution outside of Microsoft.,No,,,,,,,No,,
  CA901,AptcaTypesShouldBeReviewed,System.Runtime,#N/A,Aptca types should be reviewed,"Types not on the list must either have both a LinkDemand and an InheritanceDemand, or have a LinkDemand and be sealed. This is a requirement of RTM security signoff.",No,,,,,,,No,,
  CA908,AvoidTypesThatRequireJitCompilationInPrecompiledAssemblies,System.Runtime,#N/A,Avoid types that require JIT compilation in precompiled assemblies,"Assemblies that are precompiled (using ngen.exe) should only instantiate generic types that will not cause JIT compilation at runtime. Generic types with value type type parameters (outside of a special set of supported runtime generic types) will always cause JIT compilation, even if the encapsulating assembly has been precompiled. If this is not an precompiled assembly this message should be suppressed or this rule should be disabled.",No,,,,,,,No,,
  CA909,UseFrameworksThatSatisfySecurityRequirements,System.Runtime,#N/A,#N/A,#N/A,No,,,,,,,No,Deprecated rule checking for insecure/beta framework use,
  CA1404,CallGetLastErrorImmediatelyAfterPInvoke,System.Runtime.InteropServices,#N/A,Call GetLastError immediately after PInvoke,"A platform invoke method accesses unmanaged code and is defined by using the Declare keyword in Visual Basic or the System.Runtime.InteropServices.DllImportAttribute attribute. Generally, upon failure, unmanaged functions call the Win32 SetLastError function to set an error code that is associated with the failure. The caller of the failed function calls the Win32 GetLastError function to retrieve the error code and determine the cause of the failure. The error code is maintained on a per-thread basis and is overwritten by the next call to SetLastError. After a call to a failed platform invoke method, managed code can retrieve the error code by calling the GetLastWin32Error method. Because the error code can be overwritten by internal calls from other managed class library methods, the GetLastError or GetLastWin32Error method should be called immediately after the platform invoke method call.",Yes,32639,62,0.001899568,2376.19124,Interoperability,Low,,,
  CA1402,AvoidOverloadsInComVisibleInterfaces,System.Runtime.InteropServices,#N/A,Avoid overloads in ComVisible interfaces,"When overloaded methods are exposed to COM clients, only the first method overload retains its name. Subsequent overloads are uniquely renamed by appending to the name an underscore character '_' and an integer that corresponds to the order of declaration of the overload.",Yes,36284,88,0.002425311,1880.053464,Interoperability,Low,,,
  CA1415,DeclarePInvokesCorrectly,System.Runtime.InteropServices,#N/A,Declare PInvokes correctly,"A platform invoke method accesses unmanaged code and is defined by using the Declare keyword in Visual Basic or the System.Runtime.InteropServices.DllImportAttribute. Currently, this rule looks for platform invoke method declarations that target Win32 functions that have a pointer to an OVERLAPPED structure parameter and the corresponding managed parameter is not a pointer to a System.Threading.NativeOverlapped structure.",Yes,7117,17,0.002388647,1612.752794,Interoperability,Low,,,
  
negative.code: CA1704,IdentifiersShouldBeSpelledCorrectly,Microsoft.Api.Design.Guidelines,#N/A,Identifiers should be spelled correctly,The name of an externally visible identifier contains one or more words that are not recognized by the Microsoft spelling checker library.,Yes,4050045,134475,0.033203335,198.9998864,Naming,Low,,,NamingService
  CA1707,IdentifiersShouldNotContainUnderscores,Microsoft.Api.Design.Guidelines,#N/A,Identifiers should not contain underscores,"By convention, identifier names do not contain the underscore (_) character. This rule checks namespaces, types, members, and parameters.",Yes,1216136,42995,0.035353776,172.1168937,Naming,Low,,,None
  CA1709,IdentifiersShouldBeCasedCorrectly,Microsoft.Api.Design.Guidelines,#N/A,Identifiers should be cased correctly,"By convention, parameter names use camel casing and namespace, type, and member names use Pascal casing.",Yes,3261791,137633,0.04219553,154.3636525,Naming,Low,,,NamingService
  CA1705,#N/A,Microsoft.Api.Design.Guidelines,#N/A,Long acronyms should be pascal-cased,"This rule assumes it has found an acronym when the name contains four uppercase letters in a row, or at the end of the name, three uppercase letters in a row. By convention, two-letter acronyms use all uppercase letters, and acronyms of three or more characters use Pascal casing. The following examples conform to this naming convention: 'DB', 'CR', 'Cpa', and 'Ecma'. The following examples violate the convention: 'Io', 'XML', and 'DoD', and for non-parameter names, 'xp' and 'cpl'. Naming conventions provide a common look for libraries that target the common language runtime. This reduces the learning curve required for new software libraries, and increases customer confidence that the library was developed by someone with expertise in developing managed code.",,2574,90,0.034965035,97.54340432,Naming,Low,Cut,Deprecated rule (replaced by 1709),
  CA2216,DisposableTypesShouldDeclareFinalizer,System.Runtime,#N/A,Disposable types should declare finalizer,"A type that implements System.IDisposable and has fields that suggest the use of unmanaged resources does not implement a finalizer, as described by Object.Finalize.",Yes,8011,13,0.001622769,2405.571878,Usage,High,Yes,,
  CA2231,OverloadOperatorEqualsOnOverridingValueTypeEquals,Microsoft.Api.Design.Guidelines,System.Runtime.Analyzers,Overload operator equals on overriding value type Equals,"In most programming languages there is no default implementation of the equality operator (==) for value types. If your programming language supports operator overloads, you should consider implementing the equality operator. Its behavior should be identical to that of Equals",Yes,15312,25,0.001632706,2563.248351,Usage,High,Yes,,
  CA2229,ImplementSerializationConstructors,Desktop,Microsoft.AnalyzerPowerPack,Implement serialization constructors,"To fix a violation of this rule, implement the serialization constructor. For a sealed class, make the constructor private; otherwise, make it protected.",Yes,58070,100,0.00172206,2766.426825,Usage,Low,Ported,,
  CA1718,#N/A,Microsoft.Api.Design.Guidelines,#N/A,Avoid language specific type names in parameters,"Each concatenated word in the parameter name is checked against language-specific type names, in a case-insensitive manner",,4,0,0,,Naming,Low,???,,
  CA1702,CompoundWordsShouldBeCasedCorrectly,Microsoft.Api.Design.Guidelines,#N/A,Compound words should be cased correctly,Avoid creating compound words from terms which exist in the dictionary as discrete terms. Do not create a compound word such as 'StopWatch' or 'PopUp'. These terms are recognized in the dictionary and should be cased as 'Stopwatch' and 'Popup'.,Yes,,,,,,#N/A,Cut,Deprecated rule (replaced by 1709),
  CA2237,MarkISerializableTypesWithSerializable,Desktop,Microsoft.AnalyzerPowerPack,Mark ISerializable types with serializable,"To be recognized by the common language runtime as serializable, types must be marked by using the SerializableAttribute attribute even when the type uses a custom serialization routine through implementation of the ISerializable interface.",Yes,517360,1135,0.00219383,2604.482703,Usage,Low,Ported,,
  Async002,#N/A,Microsoft.Api.Design.Guidelines,AsyncPackage,Async Method Names Should End in Async,#N/A,,,,,,Naming,,,,
  CA2236,CallBaseClassMethodsOnISerializableTypes,Desktop,#N/A,Call base class methods on ISerializable types,"To fix a violation of this rule, call the base type GetObjectData method or serialization constructor from the corresponding derived type method or constructor.",Yes,23555,57,0.002419868,1806.744169,Usage,Low,Yes,,
  