anchor.diff:  CA2002,DoNotLockOnObjectsWithWeakIdentity,System.Runtime,System.Runtime.Analyzers,Do not lock on objects with weak identity,An object is said to have a weak identity when it can be directly accessed across application domain boundaries. A thread that tries to acquire a lock on an object that has a weak identity can be blocked by a second thread in a different application domain that has a lock on the same object.,Yes,123953,440,0.003549733,1434.828387,Reliability,High,Ported,,
   CA1802,UseLiteralsWhereAppropriate,System.Runtime,#N/A,Use literals where appropriate,"A field is declared static and read-only (Shared and ReadOnly in Visual Basic), and is initialized by using a value that is computable at compile time. Because the value that is assigned to the targeted field is computable at compile time, change the declaration to a const (Const in Visual Basic) field so that the value is computed at compile time instead of at run?time.",Yes,156024,573,0.003672512,1414.070674,Performance,High,,,None
   CA2227,CollectionPropertiesShouldBeReadOnly,Microsoft.Api.Design.Guidelines,#N/A,Collection properties should be read only,A writable collection property allows a user to replace the collection with a different collection. A read-only property stops the collection from being replaced but still allows the individual members to be set.,Yes,1479039,18904,0.012781272,482.7359551,Usage,High,Yes,,None
  -CA1800,DoNotCastUnnecessarily,System.Runtime,#N/A,Do not cast unnecessarily,"Duplicate casts decrease performance, especially when the casts are performed in compact iteration statements.",Yes,1161244,5060,0.004357396,1391.868776,Performance,High,No,,RemoveUnnecessaryCast IDE CodeFix
  +CA1800,DoNotCastUnnecessarily,System.Runtime,#N/A,Do not cast unnecessarily,"Duplicate casts decrease performance, especially when the casts are performed in compact iteration statements.",Yes,1161244,5060,0.004357396,1391.868776,Performance,High,Cut,,RemoveUnnecessaryCast IDE CodeFix
   CA2233,OperationsShouldNotOverflow,System.Runtime,#N/A,Operations should not overflow,You should not perform arithmetic operations without first validating the operands. This makes sure that the result of the operation is not outside the range of possible values for the data types that are involved.,Yes,177875,717,0.004030921,1302.460516,Usage,High,,,IOperation
   CA2225,OperatorOverloadsHaveNamedAlternates,Microsoft.Api.Design.Guidelines,#N/A,Operator overloads have named alternates,"An operator overload was detected, and the expected named alternative method was not found. The named alternative member provides access to the same functionality as the operator and is provided for developers who program in languages that do not support overloaded operators.",Yes,71083,1385,0.019484265,249.009433,Usage,High,Yes,,
   CA2004,RemoveCallsToGCKeepAlive,System.Runtime,#N/A,Remove calls to GC.KeepAlive,"If you convert to SafeHandle usage, remove all calls to GC.KeepAlive (object). In this case, classes should not have to call GC.KeepAlive. This assumes they do not have a finalizer but rely on SafeHandle to finalize the OS handle for them.",Yes,16938,72,0.004250797,994.8398157,Reliability,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,,
  