Skip to content

Releases: dotnet/roslyn-analyzers

NetAnalyzers 5.0.1

04 Dec 00:01
4e0e1e8
Compare
Choose a tag to compare

Release build of Microsoft.CodeAnalysis.NetAnalyzers containing first-party code quality analyzers ("CAxxxx rules").

  • Version 5.0.1 of this package contains additional bug fixes on top of version 5.0.0 that ships with the .NET 5 SDK.
  • Works with VS 2019 16.8 or later.
  • All the shipped CA rules with the default severity and enabled state can be found here

v3.3.2

04 Dec 00:10
4e0e1e8
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 3.3.0 NuGet packages. Works with VS 2019 16.3 or later.

  • Contains important functionality and performance bug fixes on top of v3.3.1 release
  • New deprecation warning CA9998 for Microsoft.CodeAnalysis.FxCopAnalyzers package:
    FxCopAnalyzers package has been deprecated in favor of 'Microsoft.CodeAnalysis.NetAnalyzers', that ships with the .NET SDK. Please refer to https://docs.microsoft.com/visualstudio/code-quality/migrate-from-fxcop-analyzers-to-net-analyzers to migrate to .NET analyzers.

NetAnalyzers 5.0.0

12 Nov 20:09
953532d
Compare
Choose a tag to compare

Release build of first-party code quality analyzers ("CAxxxx rules") that ship with the .NET 5 SDK. Works with VS 2019 16.8 or later. All the shipped CA rules with the default severity and enabled state can be found here

v3.3.1

29 Oct 00:11
49efc9e
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 3.3.0 NuGet packages. Works with VS 2019 16.3 or later.

Contains following important changes on top of v3.3.0 release:

Bug Fixes

  • Functionality and performance bug fixes
  • Tainted data rules improvements
  • CA5377: Don't warn when unable to get the control flow graph for dataflow analysis
  • CA3075: Fix false positive on XmlReader.Create(string) invocations
  • Optimizing error list refresh times for full compilation analyzers in Visual Studio 2019 16.9

Additional analyzers/fixers

Added

  • Globalization
    • CA1310: Specify StringComparison for correctness -- Enabled by default
  • Interoperability
    • CA1416: Validate platform compatibility -- Enabled by default

Changed

  • Globalization
    • CA1307: Specify StringComparison for clarity -- Now disabled by default

v2.9.12

28 Oct 23:43
9b1b3df
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017 15.9 or later.

Contains functionality and performance bug fixes on top of the v2.9.11 release.

Fixes

  • Optimizing type resolution
  • Tainted data rules improvements
  • CA5377: Don't warn when unable to get the control flow graph for dataflow analysis
  • CA3075: Fix false positive on XmlReader.Create(string) invocations
  • Optimizing error list refresh times for full compilation analyzers in Visual Studio 2019 16.9

v3.3.0

10 Aug 20:15
0a95f9e
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 3.3.0 NuGet packages. Works with VS 2019 16.3 or later.

Contains following important changes on top of v3.0.0 release

The new security rules CA2350-CA2362 can help find vulnerabilities related to DataSet and DataTable security guidance.

Feature

Editorconfig based file/directory level options configuration. See details here

Bug Fixes

  • Many bug fixes, including performance fixes.
  • Various tainted data rules: Don't report tainted data flowing into non-sink method parameters, when other tainted data does flow into a sink parameter.

Additional analyzers/fixers

Added

  • Design
    • CA1002: Do not expose generic lists
    • CA1005: Avoid excessive parameters on generic types
    • CA1045: Do not pass types by reference
    • CA1046: Do not overload equality operator on reference types
    • CA1047: Do not declare protected member in sealed type -- Enabled by default
    • CA1070: Do not declare event fields as virtual -- Enabled by default
  • Interoperability
    • CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes -- Enabled by default
  • Naming
    • CA1700: Do not name enum values 'Reserved'
    • CA1713: Events should not have 'Before' or 'After' prefix -- Enabled by default
  • Performance
    • CA1805: Do not initialize unnecessarily -- Enabled by default
    • CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder -- Enabled by default
    • CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1834: Consider using 'StringBuilder.Append(char)' when applicable -- Enabled by default
    • CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync' -- Enabled by default
    • CA1836: Prefer IsEmpty over Count -- Enabled by default
    • CA1837: Use 'Environment.ProcessId' -- Enabled by default
    • CA1838: Avoid 'StringBuilder' parameters for P/Invokes
  • Publish
    • IL3000: Avoid using accessing Assembly file path when publishing as a single-file -- Enabled by default
    • IL3001: Avoid using accessing Assembly file path when publishing as a single-file -- Enabled by default
  • Reliability
    • CA2014: Do not use stackalloc in loops -- Enabled by default
    • CA2015: Do not define finalizers for types derived from MemoryManager -- Enabled by default
    • CA2016: Forward the 'CancellationToken' parameter to methods that take one -- Enabled by default
  • Security
    • CA2109: Review visible event handlers
    • CA2350: Do not use DataTable.ReadXml() with untrusted data
    • CA2351: Do not use DataSet.ReadXml() with untrusted data
    • CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
    • CA2353: Unsafe DataSet or DataTable in serializable type
    • CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
    • CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
    • CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
    • CA2361: Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data
    • CA2362: Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks
  • Usage
    • CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum -- Enabled by default
    • CA2248: Provide correct 'enum' argument to 'Enum.HasFlag' -- Enabled by default
    • CA2249: Consider using 'string.Contains' instead of 'string.IndexOf' -- Enabled by default

Removed

  • Reliability
    • CA2010: Always consume the value returned by methods marked with PreserveSigAttribute -- Enabled by default

v2.9.11

10 Aug 20:13
8394e05
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017 15.9 or later.

Contains the following important changes on top of the v2.9.10 release.

New security rules to help find vulnerabilities related to DataSet and DataTable security guidance.

Fixes

  • Various tainted data rules: Don't report tainted data flowing into non-sink method parameters, when other tainted data does flow into a sink parameter.

Added

  • Security
    • CA2361: Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data
    • CA2362: Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks

Changed

  • Security
    • CA2351: Some cases of autogenerated code are now reported as CA2361
    • CA2352: Some cases of autogenerated code are now reported as CA2362

v3.3.0-beta2.final

15 Jul 14:33
303d517
Compare
Choose a tag to compare
v3.3.0-beta2.final Pre-release
Pre-release

Pre-release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 3.3.0 NuGet packages. Works with VS 2019 16.3 or later.

Contains following important changes on top of v3.0.0 release

The new security rules CA2350-CA2356 can help find vulnerabilities related to DataSet and DataTable security guidance.

Feature

Editorconfig based file/directory level options configuration. See details here

Bug Fixes

Many bug fixes, including performance fixes.

Additional analyzers/fixers:

Added

  • Design
    • CA1002: Do not expose generic lists
    • CA1005: Avoid excessive parameters on generic types
    • CA1045: Do not pass types by reference
    • CA1046: Do not overload equality operator on reference types
    • CA1047: Do not declare protected member in sealed type -- Enabled by default
    • CA1070: Do not declare event fields as virtual -- Enabled by default
  • Naming
    • CA1700: Do not name enum values 'Reserved'
    • CA1713: Events should not have 'Before' or 'After' prefix -- Enabled by default
  • Performance
    • CA1805: Do not initialize unnecessarily -- Enabled by default
    • CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder. -- Enabled by default
    • CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1834: Consider using 'StringBuilder.Append(char)' when applicable. -- Enabled by default
    • CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync' -- Enabled by default
    • CA1836: Prefer IsEmpty over Count -- Enabled by default
  • Reliability
    • CA2014: Do not use stackalloc in loops. -- Enabled by default
    • CA2015: Do not define finalizers for types derived from MemoryManager -- Enabled by default
    • CA2016: Forward the 'CancellationToken' parameter to methods that take one -- Enabled by default
  • Security
    • CA2109: Review visible event handlers -- Enabled by default
    • CA2350: Do not use insecure deserialization with DataTable.ReadXml()
    • CA2351: Do not use insecure deserialization with DataSet.ReadXml()
    • CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
    • CA2353: Unsafe DataSet or DataTable in serializable type
    • CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
    • CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
    • CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
  • Usage
    • CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum. -- Enabled by default
    • CA2248: Provide correct 'enum' argument to 'Enum.HasFlag' -- Enabled by default
    • CA2249: Consider using 'string.Contains' instead of 'string.IndexOf' -- Enabled by default

Removed

  • Reliability
    • CA2010: Always consume the value returned by methods marked with PreserveSigAttribute -- Enabled by default

v2.9.10

14 Jul 23:47
d512b50
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017 15.9 or later.

Contains the following important changes on top of the v2.9.9 release.

New security rules to help find vulnerabilities related to DataSet and DataTable security guidance.

Bug fixes

  • CA3075: Fix false positives with XmlDocument on .NET Framework 4.5.2 or later

Added

  • Security
    • CA2350: Ensure DataTable.ReadXml()'s input is trusted
    • CA2351: Ensure DataSet.ReadXml()'s input is trusted
    • CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
    • CA2353: Unsafe DataSet or DataTable in serializable type
    • CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
    • CA2355: Unsafe DataSet or DataTable in deserialized object graph
    • CA2356: Unsafe DataSet or DataTable in web deserialized object graph

v3.3.0-beta1.final

06 Jul 17:24
d752929
Compare
Choose a tag to compare
v3.3.0-beta1.final Pre-release
Pre-release

Pre-release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 3.3.0 NuGet packages. Works with VS 2019 16.3 or later.

Contains following important changes on top of v3.0.0 release

Feature

Editorconfig based file/directory level options configuration. See details here

Bug Fixes

Many bug fixes, including performance fixes.

Additional analyzers/fixers:

Added

  • Design
    • CA1002: Do not expose generic lists
    • CA1005: Avoid excessive parameters on generic types
    • CA1045: Do not pass types by reference
    • CA1046: Do not overload equality operator on reference types
    • CA1047: Do not declare protected member in sealed type -- Enabled by default
    • CA1070: Do not declare event fields as virtual -- Enabled by default
  • Naming
    • CA1700: Do not name enum values 'Reserved'
    • CA1713: Events should not have 'Before' or 'After' prefix -- Enabled by default
  • Performance
    • CA1805: Do not initialize unnecessarily -- Enabled by default
    • CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder. -- Enabled by default
    • CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate -- Enabled by default
    • CA1834: Consider using 'StringBuilder.Append(char)' when applicable. -- Enabled by default
    • CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync' -- Enabled by default
    • CA1836: Prefer IsEmpty over Count -- Enabled by default
  • Reliability
    • CA2014: Do not use stackalloc in loops. -- Enabled by default
    • CA2015: Do not define finalizers for types derived from MemoryManager -- Enabled by default
    • CA2016: Forward the 'CancellationToken' parameter to methods that take one -- Enabled by default
  • Security
    • CA2109: Review visible event handlers -- Enabled by default
  • Usage
    • CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum. -- Enabled by default
    • CA2248: Provide correct 'enum' argument to 'Enum.HasFlag' -- Enabled by default
    • CA2249: Consider using 'string.Contains' instead of 'string.IndexOf' -- Enabled by default

Removed

  • Reliability
    • CA2010: Always consume the value returned by methods marked with PreserveSigAttribute -- Enabled by default