CA1016: Mark assemblies with AssemblyVersionAttribute
Property | Value |
---|---|
Rule ID | CA1016 |
Title | Mark assemblies with AssemblyVersionAttribute |
Category | Design |
Fix is breaking or non-breaking | Non-breaking |
Enabled by default in .NET 8 | As suggestion |
Cause
The assembly does not have a version number.
Rule description
The identity of an assembly is composed of the following information:
Assembly name
Version number
Culture
Public key (for strongly named assemblies).
.NET uses the version number to uniquely identify an assembly and to bind to types in strongly named assemblies. The version number is used together with version and publisher policy. By default, applications run only with the assembly version with which they were built.
How to fix violations
To fix a violation of this rule, add a version number to the assembly by using the System.Reflection.AssemblyVersionAttribute attribute.
When to suppress warnings
Do not suppress a warning from this rule for assemblies that are used by third parties or in a production environment.
Suppress a warning
If you just want to suppress a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable CA1016
// The code that's violating the rule is on this line.
#pragma warning restore CA1016
To disable the rule for a file, folder, or project, set its severity to none
in the configuration file.
[*.{cs,vb}]
dotnet_diagnostic.CA1016.severity = none
For more information, see How to suppress code analysis warnings.
Example
The following example shows an assembly that has the AssemblyVersionAttribute attribute applied.
using System;
using System.Reflection;
[assembly: AssemblyVersionAttribute("4.3.2.1")]
namespace DesignLibrary {}
<Assembly: AssemblyVersionAttribute("4.3.2.1")>
Namespace DesignLibrary
End Namespace