diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml
index fd45482908d86..d0380f8a0c05d 100644
--- a/.github/workflows/scorecards.yml
+++ b/.github/workflows/scorecards.yml
@@ -71,6 +71,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
- uses: github/codeql-action/upload-sarif@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v3.29.5
+ uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3.29.5
with:
sarif_file: results.sarif
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index d2ba3d91f34d2..7c67384d8bb4f 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -20,7 +20,7 @@ jobs:
with:
egress-policy: audit
- - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f
+ - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899
with:
start-date: '2022-03-01T00:00:00Z' # ISO 8601 or RFC 2822
repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.openpublishing.redirection.csharp.json b/.openpublishing.redirection.csharp.json
index 7ea1775aa00bd..95d02d0fa394a 100644
--- a/.openpublishing.redirection.csharp.json
+++ b/.openpublishing.redirection.csharp.json
@@ -12,10 +12,34 @@
"source_path_from_root": "/docs/csharp/fundamentals/types/namespaces.md",
"redirect_url": "/dotnet/csharp/fundamentals/program-structure/namespaces"
},
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs0006.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs0007.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs0016.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1564.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1616.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1763.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/generic-type-parameters-errors"
},
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs2032.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
{
"source_path_from_root": "/docs/csharp/misc/cs0017.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/entry-point-errors"
@@ -340,10 +364,18 @@
"source_path_from_root": "/docs/csharp/misc/cs1638.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/feature-version-errors"
},
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs1668.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
{
"source_path_from_root": "/docs/csharp/misc/cs1715.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/property-declaration-errors"
},
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs1719.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
{
"source_path_from_root": "/docs/csharp/misc/cs1720.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/generic-type-parameters-errors"
@@ -356,10 +388,34 @@
"source_path_from_root": "/docs/csharp/misc/cs1958.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/delegate-function-pointer-diagnostics"
},
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs2008.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
{
"source_path_from_root": "/docs/csharp/misc/cs2017.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/entry-point-errors"
},
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs2019.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs2029.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs2036.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs3012.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/misc/cs3013.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/invalid-build-command-line"
+ },
{
"source_path_from_root": "/docs/csharp/misc/cs3024.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/generic-type-parameters-errors"
diff --git a/docs/ai/evaluation/snippets/evaluate-with-reporting/TestAIWithReporting.csproj b/docs/ai/evaluation/snippets/evaluate-with-reporting/TestAIWithReporting.csproj
index 11597c130a0ee..14f053d553fdd 100644
--- a/docs/ai/evaluation/snippets/evaluate-with-reporting/TestAIWithReporting.csproj
+++ b/docs/ai/evaluation/snippets/evaluate-with-reporting/TestAIWithReporting.csproj
@@ -18,8 +18,8 @@
-
-
+
+
diff --git a/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj b/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj
index 6da9032f3d701..2a449438e88d9 100644
--- a/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj
+++ b/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj b/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj
index c637a4abee1ab..37371e88a2d64 100644
--- a/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj
+++ b/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj
@@ -11,10 +11,10 @@
-
-
-
-
+
+
+
+
diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomEmbeddingsMiddle/ConsoleAI.CustomEmbeddingsMiddle.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomEmbeddingsMiddle/ConsoleAI.CustomEmbeddingsMiddle.csproj
index 5d38e0aa21a12..fbebf4b1d5a8e 100644
--- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomEmbeddingsMiddle/ConsoleAI.CustomEmbeddingsMiddle.csproj
+++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomEmbeddingsMiddle/ConsoleAI.CustomEmbeddingsMiddle.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj
index dff59fde41a1c..bb845dfd3498c 100644
--- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj
+++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/ai/snippets/prompt-engineering/multi-turn-chat.csproj b/docs/ai/snippets/prompt-engineering/multi-turn-chat.csproj
index 00d78e20bf170..9b18c17b963e4 100644
--- a/docs/ai/snippets/prompt-engineering/multi-turn-chat.csproj
+++ b/docs/ai/snippets/prompt-engineering/multi-turn-chat.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj b/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj
index 00cefa6d8d0b2..077cf942b3386 100644
--- a/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj
+++ b/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj
index 82ec0001595ee..b7c709bba1945 100644
--- a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj
+++ b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj
@@ -10,9 +10,9 @@
-
+
-
+
diff --git a/docs/core/extensions/dependency-injection/snippets/anykey/AnyKeyExamples.csproj b/docs/core/extensions/dependency-injection/snippets/anykey/AnyKeyExamples.csproj
index 130f2d25403ae..2a67b55ba3d22 100644
--- a/docs/core/extensions/dependency-injection/snippets/anykey/AnyKeyExamples.csproj
+++ b/docs/core/extensions/dependency-injection/snippets/anykey/AnyKeyExamples.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/core/extensions/dependency-injection/snippets/console-disposable/console-di-disposable.csproj b/docs/core/extensions/dependency-injection/snippets/console-disposable/console-di-disposable.csproj
index b2d7ae84a5a18..138fd753cd74a 100644
--- a/docs/core/extensions/dependency-injection/snippets/console-disposable/console-di-disposable.csproj
+++ b/docs/core/extensions/dependency-injection/snippets/console-disposable/console-di-disposable.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/docs/core/extensions/snippets/logging/getting-started-logger-message/getting-started-logger-message.csproj b/docs/core/extensions/snippets/logging/getting-started-logger-message/getting-started-logger-message.csproj
index 2e111ab6604fe..1f4dd6265f502 100644
--- a/docs/core/extensions/snippets/logging/getting-started-logger-message/getting-started-logger-message.csproj
+++ b/docs/core/extensions/snippets/logging/getting-started-logger-message/getting-started-logger-message.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/docs/core/extensions/snippets/logging/getting-started-type-category-name/getting-started-type-category-name.csproj b/docs/core/extensions/snippets/logging/getting-started-type-category-name/getting-started-type-category-name.csproj
index 2e111ab6604fe..1f4dd6265f502 100644
--- a/docs/core/extensions/snippets/logging/getting-started-type-category-name/getting-started-type-category-name.csproj
+++ b/docs/core/extensions/snippets/logging/getting-started-type-category-name/getting-started-type-category-name.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj
index e450c791a1b40..14baae62d0c5e 100644
--- a/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj
+++ b/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj
@@ -7,10 +7,10 @@
-
-
-
-
+
+
+
+ allruntime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/docs/core/tools/dotnet-build.md b/docs/core/tools/dotnet-build.md
index 6d35a9bb5a48e..f2002abedc032 100644
--- a/docs/core/tools/dotnet-build.md
+++ b/docs/core/tools/dotnet-build.md
@@ -1,8 +1,9 @@
---
title: dotnet build command
description: The dotnet build command builds a project and all of its dependencies.
-ms.date: 09/24/2025
+ms.date: 05/18/2026
---
+
# dotnet build
**This article applies to:** ✔️ .NET 6 SDK and later versions
@@ -21,7 +22,7 @@ dotnet build [||] [-a|--arch ]
[--no-dependencies] [--no-incremental] [--no-restore] [--nologo]
[--no-self-contained] [-o|--output ] [--os ]
[-p|--property:=] [-r|--runtime ]
- [--sc|--self-contained] [--source ]
+ [--sc|--self-contained] [--source ] [-t|--target:]
[--tl:[auto|on|off]] [ --ucr|--use-current-runtime]
[-v|--verbosity ] [--version-suffix ]
@@ -155,6 +156,16 @@ Running `dotnet build` is equivalent to running `dotnet msbuild -restore`; howev
The URI of the NuGet package source to use during the restore operation.
+- **`-t|--target:`**
+
+ Specifies one or more MSBuild targets to run during the build instead of the default target. Specify multiple targets by separating them with a semicolon or comma, or by repeating the option for each target. Corresponds to the MSBuild `-target` option. Common targets include `Build` (default), `Clean`, and `Rebuild`. For more information, see [MSBuild Targets](/visualstudio/msbuild/msbuild-targets).
+
+ ```dotnetcli
+ dotnet build -t:"Clean;RunTests"
+ dotnet build -t:Clean -t:GenerateApiClients
+ dotnet build -t:RunCodeGeneration
+ ```
+
- [!INCLUDE [tl](includes/cli-tl.md)]
- [!INCLUDE [use-current-runtime](includes/cli-use-current-runtime.md)]
@@ -206,3 +217,15 @@ Running `dotnet build` is equivalent to running `dotnet msbuild -restore`; howev
```dotnetcli
dotnet build -p:Version=1.2.3.4
```
+
+- Run the `Clean` target to remove previous build outputs:
+
+ ```dotnetcli
+ dotnet build -t:Clean
+ ```
+
+- Run the `Clean` target using the equivalent space-separated syntax:
+
+ ```dotnetcli
+ dotnet build -t Clean
+ ```
diff --git a/docs/csharp/fundamentals/program-structure/namespaces.md b/docs/csharp/fundamentals/program-structure/namespaces.md
index 7ca3f6f2a5432..caa1ed5164f0e 100644
--- a/docs/csharp/fundamentals/program-structure/namespaces.md
+++ b/docs/csharp/fundamentals/program-structure/namespaces.md
@@ -52,7 +52,7 @@ File-scoped namespaces reduce nesting and make files easier to read. You can onl
Use *block-scoped* syntax when you need to declare more than one namespace in the same file. This style adds an extra level of indentation.
> [!IMPORTANT]
-> It's considered bad-practice to declare more than one namespace in the same file. The more common scenario is to use *file-scoped* namespaces.
+> It's rare to declare more than one namespace in the same file. The more common scenario is to use *file-scoped* namespaces.
The following snippet is an example of a *block-scoped* namespace:
@@ -60,11 +60,11 @@ The following snippet is an example of a *block-scoped* namespace:
## Using directives
-Without a `using` directive, you must refer to every type by its *fully qualified name*, the complete namespace path plus the type name:
+Without a `using` directive, you must refer to every type by its *fully qualified name*, the complete namespace path plus the type name. This style is verbose, repetitive, and harder to read, especially when a file uses many types from the same namespace:
:::code language="csharp" source="snippets/namespaces/Basics.cs" id="FullyQualifiedName":::
-A `using` directive at the top of a file imports a namespace so you can use its types by their simple names:
+A `using` directive at the top of a file imports a namespace so you can use its types by their simple names. The following snippet shows the shorter type usage after that import, which keeps references throughout the file shorter and easier to read:
:::code language="csharp" source="snippets/namespaces/Basics.cs" id="UsingDirective":::
@@ -72,18 +72,21 @@ For more information, see the [`using` directive](../../language-reference/keywo
### Global using directives
-If you write the same `using` directives in every file, *global using* directives let you declare them once for your entire project. Place them in any file. Many teams create a dedicated `GlobalUsings.cs` file:
+A `using` directive only applies to the file it appears in. Instead of repeating the same `using` directives in every file, use *global using* directives, which let you declare them once for your entire project. Place them in any file. Many teams create a dedicated `GlobalUsings.cs` file:
:::code language="csharp" source="snippets/namespaces/GlobalUsings.cs" id="GlobalUsings":::
-After declaring a global using, every file in the project can refer to types from that namespace by using simple names without an additional `using` directive.
+After declaring a global using, every file in the project can refer to types from that namespace by their simple names without an additional `using` directive. Global usings remove repetition across files, shrink the `using` block at the top of each file, and centralize namespace policy for the project.
### Implicit usings
-The .NET SDK automatically generates global using directives for the most common namespaces based on your project type. Enable implicit usings by setting `enable` in your project file. For example, a console app project automatically imports `System`, `System.Collections.Generic`, `System.IO`, `System.Linq`, `System.Threading`, and `System.Threading.Tasks`. The current SDK enables `ImplicitUsings` when you create a new project by using `dotnet new`.
+For the most common namespaces, you don't have to write any `using` directives at all. The .NET SDK automatically generates global using directives based on your project type. Enable implicit usings by setting `enable` in your project file. For example, a console app project automatically imports , , , , , and . New projects that you create with `dotnet new` enable `ImplicitUsings` by default. New files start clean, with no boilerplate `using` directives for everyday types like , , or .
For more information, see [Implicit using directives](../../../core/project-sdk/overview.md#implicit-using-directives).
+> [!NOTE]
+> The other code samples in this article, and most samples throughout the .NET docs, assume that implicit usings (or the equivalent global usings for the project type) are enabled. That's why you don't see `using System;` and similar directives at the top of each snippet, even though the code uses types like `Console` or `List` by their simple names.
+
### Static using directives
A `static using` directive imports the static members of a type so you can call them without the type name prefix:
diff --git a/docs/csharp/language-reference/compiler-messages/attribute-usage-errors.md b/docs/csharp/language-reference/compiler-messages/attribute-usage-errors.md
index 174e446cbbad9..358e6c40aff86 100644
--- a/docs/csharp/language-reference/compiler-messages/attribute-usage-errors.md
+++ b/docs/csharp/language-reference/compiler-messages/attribute-usage-errors.md
@@ -44,6 +44,7 @@ f1_keywords:
- "CS8962"
- "CS8963"
- "CS8968"
+ - "CS8783"
- "CS8970"
- "CS9331"
helpviewer_keywords:
@@ -89,9 +90,10 @@ helpviewer_keywords:
- "CS8962"
- "CS8963"
- "CS8968"
+ - "CS8783"
- "CS8970"
- "CS9331"
-ms.date: 02/13/2026
+ms.date: 05/19/2026
ai-usage: ai-assisted
---
# Resolve errors and warnings related to attribute declarations or attribute use in your code
@@ -143,6 +145,7 @@ That's by design. The text closely matches the text of the compiler error / warn
- [**CS8962**](#callerargumentexpression-attribute-usage): *The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is overridden by the CallerMemberNameAttribute.*
- [**CS8963**](#callerargumentexpression-attribute-usage): *The CallerArgumentExpressionAttribute applied to parameter will have no effect. It is applied with an invalid parameter name.*
- [**CS8968**](#attribute-arguments-and-parameters): *An attribute type argument cannot use type parameters*
+- [**CS8783**](#conditional-attribute-usage): *Local function 'method' must be 'static' in order to use the Conditional attribute*
- [**CS8970**](#attribute-arguments-and-parameters): *Type cannot be used in this context because it cannot be represented in metadata.*
- [**CS9331**](#predefined-attributes): *Attribute cannot be applied manually.*
@@ -234,16 +237,16 @@ The following errors occur when you use specific predefined .NET attributes inco
To correct these errors, follow these rules. For more information, see [Indexers](../../programming-guide/indexers/index.md), [Structure types](../builtin-types/struct.md), , and [Platform Invoke (P/Invoke)](../../../standard/native-interop/pinvoke.md).
-- The can only be applied to indexers that aren't explicit interface member declarations (**CS0415**). Remove the attribute from explicit interface indexers, because the interface already defines the indexer name.
+- You can apply only to indexers that aren't explicit interface member declarations (**CS0415**). Remove the attribute from explicit interface indexers, because the interface already defines the indexer name.
- You can't apply `IndexerName` to indexers marked with `override` because override indexers inherit their name from the base class (**CS0609**). Remove the `IndexerName` attribute from the override indexer.
- Every instance field in a type marked with `StructLayout(LayoutKind.Explicit)` must have a (**CS0625**). Explicit layout requires that you specify the byte offset for each instance field.
-- The can only be placed on members of types that have set to `LayoutKind.Explicit` (**CS0636**). Add the `StructLayout` attribute to the containing type declaration.
+- You can place the only on members of types that have set to `LayoutKind.Explicit` (**CS0636**). Add the `StructLayout` attribute to the containing type declaration.
- The `FieldOffset` attribute isn't allowed on `static` or `const` fields because explicit layout applies only to instance fields (**CS0637**). Remove the `FieldOffset` attribute from the static or const field.
- You can't apply to a type that already contains an indexer because the compiler automatically defines the default member for types with indexers (**CS0646**). Remove the `DefaultMember` attribute.
- All attributes within a type must specify the same name (**CS0668**). Change the names to match, because the runtime uses a single name for all indexers on a type.
-- The type specified as an argument for must be a non-generic, non-nested, non-pointer, non-array type (**CS0735**). Only top-level named types are valid forwarding targets.
+- You must specify a non-generic, non-nested, non-pointer, non-array type as an argument for (**CS0735**). Only top-level named types are valid forwarding targets.
- An assembly can have only one for each external type (**CS0739**). Locate and remove the duplicate `TypeForwardedTo` declaration.
-- The isn't permitted on types defined in C# (**CS1608**). This attribute is reserved for other languages that need to force compilers to require a particular feature.
+- You can't use the on types defined in C# (**CS1608**). This attribute is reserved for other languages that need to force compilers to require a particular feature.
- Some attributes are reserved for the compiler and can't be applied manually in source code (**CS9331**). Replace the attribute with the equivalent C# language syntax that causes the compiler to generate it.
## Conditional attribute usage
@@ -258,6 +261,7 @@ You see the following errors when you apply the , [Conditional methods](~/_csharpstandard/standard/attributes.md#23532-conditional-methods), and [Attributes](../../advanced-topics/reflection-and-attributes/index.md).
@@ -269,6 +273,7 @@ To correct these errors, follow these rules. For more information, see or found in source conflict with the [**KeyFile**](../compiler-options/security.md#keyfile) or [**KeyContainer**](../compiler-options/security.md#keycontainer) command line option or key file name or key container specified in the Project Properties.
-
- For the example below, assume you have a key file named `cs1616.snk`. Generate this file with the command line:
-
-```console
-sn -k CS1616.snk
-```
-
- The following sample generates CS1616:
-
-```csharp
-// CS1616.cs
-// compile with: /keyfile:cs1616.snk
-using System.Reflection;
-
-// To fix the error, remove the next line
-[assembly: AssemblyKeyFile("cs1616b.snk")] // CS1616
-
-class C
-{
- public static void Main()
- {
- }
-}
-```
diff --git a/docs/csharp/language-reference/compiler-messages/cs2032.md b/docs/csharp/language-reference/compiler-messages/cs2032.md
deleted file mode 100644
index 41770554543ea..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs2032.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-description: "Compiler Error CS2032"
-title: "Compiler Error CS2032"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS2032"
-helpviewer_keywords:
- - "CS2032"
-ms.assetid: 534e2d2f-d209-43dd-abc9-e5ea5b01efc4
----
-# Compiler Error CS2032
-
-Character 'character' is not allowed on the command-line or in response files
-
- Response files and the command line options for csc.exe cannot contain ASCII control characters in the range 0-31 or the pipe (`|`) character.
-
- Compiler error CS2032 is difficult to demonstrate from the command line because the command line processor and the integrated development environment (IDE) filter out characters that are not valid. The following procedure generates the error by using a [response file](../compiler-options/miscellaneous.md#responsefiles).
-
-## To generate this error
-
-1. In the *My Documents* folder, create a text file that is named *CS2032.rsp*, and then enter the following compiler options in it:
-
- ```console
- /target:exe /out:cs|2032.exe cs2032.cs
- ```
-
-2. In the *My Documents* folder, create a text file that's named *cs2032.cs* and that contains whatever you want.
-
-3. Open [Visual Studio Developer Command Prompt or Visual Studio Developer PowerShell](/visualstudio/ide/reference/command-prompt-powershell).
-
-4. Change the current directory to `C:\Users\\\Documents`.
-
-5. Run the following command from the command prompt: `csc @cs2032.rsp`
-
-6. The CS2032 error message appears because the response file, *CS2032.rsp*, contains a pipe character.
diff --git a/docs/csharp/language-reference/compiler-messages/index.md b/docs/csharp/language-reference/compiler-messages/index.md
index 0328ceaab8659..b56003a414edb 100644
--- a/docs/csharp/language-reference/compiler-messages/index.md
+++ b/docs/csharp/language-reference/compiler-messages/index.md
@@ -1,12 +1,9 @@
---
description: "C# Compiler Errors"
title: "Compiler messages"
-ms.date: 05/21/2024
+ms.date: 05/19/2026
helpviewer_keywords:
- "C# language, compiler errors"
- - "Visual C# compiler, errors"
- - "errors [C#]"
-ms.assetid: 57262ab1-6c50-4f9c-81ad-9fba48477416
---
# C# Compiler Errors
diff --git a/docs/csharp/language-reference/compiler-messages/invalid-build-command-line.md b/docs/csharp/language-reference/compiler-messages/invalid-build-command-line.md
new file mode 100644
index 0000000000000..af72321e46a21
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/invalid-build-command-line.md
@@ -0,0 +1,183 @@
+---
+title: "Resolve errors and warnings related to invalid command-line options and build configuration"
+description: "This article helps you diagnose and correct compiler errors and warnings related to invalid command-line switches, build configuration, and compiler invocation problems"
+f1_keywords:
+ - "CS0006"
+ - "CS0007"
+ - "CS0016"
+ - "CS1564"
+ - "CS1616"
+ - "CS1668"
+ - "CS1719"
+ - "CS1773"
+ - "CS2008"
+ - "CS2019"
+ - "CS2029"
+ - "CS2032"
+ - "CS2036"
+ - "CS2038"
+ - "CS2039"
+ - "CS2040"
+ - "CS2041"
+ - "CS2042"
+ - "CS2043"
+ - "CS2044"
+ - "CS2045"
+ - "CS2046"
+ - "CS3012"
+ - "CS3013"
+ - "CS7038"
+ - "CS8751"
+ - "CS8771"
+ - "CS8772"
+helpviewer_keywords:
+ - "CS0006"
+ - "CS0007"
+ - "CS0016"
+ - "CS1564"
+ - "CS1616"
+ - "CS1668"
+ - "CS1719"
+ - "CS1773"
+ - "CS2008"
+ - "CS2019"
+ - "CS2029"
+ - "CS2032"
+ - "CS2036"
+ - "CS2038"
+ - "CS2039"
+ - "CS2040"
+ - "CS2041"
+ - "CS2042"
+ - "CS2043"
+ - "CS2044"
+ - "CS2045"
+ - "CS2046"
+ - "CS3012"
+ - "CS3013"
+ - "CS7038"
+ - "CS8751"
+ - "CS8771"
+ - "CS8772"
+ms.date: 05/19/2026
+ai-usage: ai-assisted
+---
+# Resolve errors and warnings for invalid command-line options and build configuration
+
+This article covers the following compiler errors and warnings:
+
+
+- [**CS0006**](#input-and-output-file-errors): *Metadata file 'file' could not be found*
+- [**CS0007**](#compiler-infrastructure-errors): *Unexpected common language runtime initialization error — 'description'*
+- [**CS0016**](#input-and-output-file-errors): *Could not write to output file 'file' -- 'reason'*
+- [**CS1564**](#conflicting-or-missing-options): *Conflicting options specified: Win32 resource file; Win32 manifest*
+- [**CS1616**](#conflicting-or-missing-options): *Option 'option' overrides attribute 'attribute' given in a source file or added module*
+- [**CS1668**](#input-and-output-file-errors): *Invalid search path 'path' specified in 'option' -- 'reason'*
+- [**CS1719**](#input-and-output-file-errors): *Error opening Win32 resource file 'file' -- 'reason'*
+- [**CS1773**](#invalid-option-values): *Invalid version for /subsystemversion. The version must be 6.02 or greater for ARM or AppContainerExe, and 4.00 or greater otherwise*
+- [**CS2008**](#input-and-output-file-errors): *No source files specified.*
+- [**CS2019**](#invalid-option-values): *Invalid target type for /target: must specify 'exe', 'winexe', 'library', or 'module'*
+- [**CS2029**](#invalid-option-values): *Invalid name for a preprocessing symbol; 'identifier' is not a valid identifier*
+- [**CS2032**](#invalid-option-values): *Character 'character' is not allowed on the command-line or in response files*
+- [**CS2036**](#conflicting-or-missing-options): *The /pdb option requires that the /debug option also be used*
+- [**CS2038**](#invalid-option-values): *The language name 'name' is invalid.*
+- [**CS2039**](#invalid-option-values): *Command-line syntax error: Invalid Guid format 'value' for option 'option'*
+- [**CS2040**](#invalid-option-values): *Command-line syntax error: Missing Guid for option 'option'*
+- [**CS2041**](#invalid-option-values): *Invalid output name: name*
+- [**CS2042**](#invalid-option-values): *Invalid debug information format: format*
+- [**CS2043**](#invalid-option-values): *'id#' syntax is no longer supported. Use '$id' instead.*
+- [**CS2044**](#conflicting-or-missing-options): */sourcelink switch is only supported when emitting PDB.*
+- [**CS2045**](#conflicting-or-missing-options): */embed switch is only supported when emitting a PDB.*
+- [**CS2046**](#invalid-option-values): *Command-line syntax error: 'value' is not a valid value for the 'option' option. The value must be of the form 'format'.*
+- [**CS3012**](#module-and-assembly-configuration): *You must specify the CLSCompliant attribute on the assembly, not the module, to enable CLS compliance checking*
+- [**CS3013**](#module-and-assembly-configuration): *Added modules must be marked with the CLSCompliant attribute to match the assembly*
+- [**CS7038**](#compiler-infrastructure-errors): *Failed to emit module 'module': error*
+- [**CS8751**](#compiler-infrastructure-errors): *Internal error in the C# compiler.*
+- [**CS8771**](#conflicting-or-missing-options): *Output directory could not be determined*
+- [**CS8772**](#invalid-option-values): *stdin argument '-' is specified, but input has not been redirected from the standard input stream.*
+
+## Input and output file errors
+
+- **CS0006**: *Metadata file 'file' could not be found*
+- **CS0016**: *Could not write to output file 'file' -- 'reason'*
+- **CS1668**: *Invalid search path 'path' specified in 'option' -- 'reason'*
+- **CS1719**: *Error opening Win32 resource file 'file' -- 'reason'*
+- **CS2008**: *No source files specified.*
+
+These errors indicate that the compiler can't find, read, or write files needed for compilation. For the full list of file-related compiler options, see [C# compiler options - Inputs](../compiler-options/inputs.md) and [C# compiler options - Resources](../compiler-options/resources.md).
+
+- Verify the path passed to [**References**](../compiler-options/inputs.md#references) or related options points to an existing assembly (**CS0006**). This error typically occurs when an assembly reference in the project file or command line specifies a path that doesn't exist. Check for typos, ensure the referenced project is built, and confirm the file isn't moved or deleted.
+- Check the output path to make sure it exists and is writable, and ensure no process currently has a lock on the file (**CS0016**). For example, make sure your executable isn't running when you attempt to build. If a previously built file is already at the location, verify that it isn't read-only.
+- Verify that the path you supply to [**AdditionalLibPaths**](../compiler-options/advanced.md#additionallibpaths) or the LIB environment variable exists and is accessible (**CS1668**). The error message in single quotation marks contains the operating system error that explains why the path is invalid.
+- Correct the problem described in the error reason for the Win32 resource file (**CS1719**). The most common causes are "file not found" (verify the path) or "access denied" (check file permissions).
+- Pass at least one source-code file to the compiler (**CS2008**). This error occurs when you specify compiler options but don't provide any `.cs` files as input.
+
+## Invalid option values
+
+- **CS1773**: *Invalid version for /subsystemversion. The version must be 6.02 or greater for ARM or AppContainerExe, and 4.00 or greater otherwise*
+- **CS2019**: *Invalid target type for /target: must specify 'exe', 'winexe', 'library', or 'module'*
+- **CS2029**: *Invalid name for a preprocessing symbol; 'identifier' is not a valid identifier*
+- **CS2032**: *Character 'character' is not allowed on the command-line or in response files*
+- **CS2038**: *The language name 'name' is invalid.*
+- **CS2039**: *Command-line syntax error: Invalid Guid format 'value' for option 'option'*
+- **CS2040**: *Command-line syntax error: Missing Guid for option 'option'*
+- **CS2041**: *Invalid output name: name*
+- **CS2042**: *Invalid debug information format: format*
+- **CS2043**: *'id#' syntax is no longer supported. Use '$id' instead.*
+- **CS2046**: *Command-line syntax error: 'value' is not a valid value for the 'option' option. The value must be of the form 'format'.*
+- **CS8772**: *stdin argument '-' is specified, but input has not been redirected from the standard input stream.*
+
+These errors indicate that a value passed to a compiler option is malformed or outside the allowed set of values. For the full list of compiler options, see [C# Compiler Options](../compiler-options/index.md).
+
+- Supply a valid version number for the [**SubsystemVersion**](../compiler-options/advanced.md#subsystemversion) option (**CS1773**). ARM and AppContainerExe targets require version 6.02 or greater; other targets require 4.00 or greater.
+- Use one of the valid [**OutputType**](../compiler-options/output.md#outputtype) values: `exe`, `winexe`, `library`, or `module` (**CS2019**). Any other value for the **/target** option is rejected.
+- Ensure preprocessing symbols passed to [**DefineConstants**](../compiler-options/language.md#defineconstants) are valid C# identifiers (**CS2029**). Identifiers must start with a letter or underscore and contain only letters, digits, or underscores. This warning can't be suppressed by the [**NoWarn**](../compiler-options/errors-warnings.md#nowarn) option.
+- Remove ASCII control characters (range 0–31) and the pipe (`|`) character from command-line arguments and [response files](../compiler-options/miscellaneous.md#responsefiles) (**CS2032**). The command-line processor and IDE typically filter these characters, so this error most commonly appears when using response files that contain invalid characters. This error is no longer generated by newer versions of the compiler.
+- Supply a valid culture name recognized by the compiler (**CS2038**). Check the spelling against the list of supported culture names.
+- Provide a properly formatted GUID for options that require one, such as **/checksumalgorithm** (**CS2039**, **CS2040**). The GUID must follow the standard format (for example, `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`).
+- Remove invalid characters from the output file name (**CS2041**). Output names can't contain characters that are invalid in file paths on the target operating system.
+- Provide a valid debug information format value (**CS2042**). Accepted values depend on the compiler version and typically include `full`, `pdbonly`, `portable`, and `embedded`.
+- Replace the legacy `id#` syntax with `$id` (**CS2043**). The older syntax is no longer supported by the compiler.
+- Supply a value that matches the expected format for the specified option (**CS2046**). The error message indicates the expected form.
+- Redirect standard input when using the `-` (stdin) argument (**CS8772**). The compiler expects piped input when you pass `-` as the source file argument. Use a pipeline (for example, `cat file.cs | csc -`) or remove the `-` argument and pass the source file directly.
+
+## Conflicting or missing options
+
+- **CS1564**: *Conflicting options specified: Win32 resource file; Win32 manifest*
+- **CS1616**: *Option 'option' overrides attribute 'attribute' given in a source file or added module*
+- **CS2036**: *The /pdb option requires that the /debug option also be used*
+- **CS2044**: */sourcelink switch is only supported when emitting PDB.*
+- **CS2045**: */embed switch is only supported when emitting a PDB.*
+- **CS8771**: *Output directory could not be determined*
+
+These errors indicate that compiler options contradict each other, override source-level attributes, or require companion options that you didn't specify. For the full list of compiler options, see [C# Compiler Options](../compiler-options/index.md).
+
+- Include the custom Win32 manifest inside the Win32 resource file and remove the **/win32manifest** compiler option (**CS1564**). You can't specify both [**Win32Resource**](../compiler-options/resources.md#win32resource) and [**Win32Manifest**](../compiler-options/resources.md#win32manifest) simultaneously. If you use **/Win32res**, include the manifest in the resource file.
+- Remove the conflicting source attribute or the conflicting command-line option so they don't contradict each other (**CS1616**). This warning occurs when assembly attributes like or in source conflict with the [**KeyFile**](../compiler-options/security.md#keyfile) or [**KeyContainer**](../compiler-options/security.md#keycontainer) command-line option.
+- Add the **/debug** compiler option when using [**PdbFile**](../compiler-options/advanced.md#pdbfile), or remove the **/pdb** option (**CS2036**). Program database files are only generated for debug builds, so **/pdb** is meaningless without **/debug**. For more information, see [**DebugType** (C# Compiler Options)](../compiler-options/code-generation.md#debugtype).
+- Add the **/debug** option (or set `DebugType` in the project) to enable PDB generation when using **/sourcelink** or **/embed** (**CS2044**, **CS2045**). Source links and embedded source both require PDB output because the source information is stored in the PDB file.
+- Ensure the project or command line specifies a valid output directory (**CS8771**). Verify the `OutputPath` or `OutDir` property in your project file, or pass a valid `/out:` argument to the compiler.
+
+## Module and assembly configuration
+
+- **CS3012**: *You must specify the CLSCompliant attribute on the assembly, not the module, to enable CLS compliance checking*
+- **CS3013**: *Added modules must be marked with the CLSCompliant attribute to match the assembly*
+
+These warnings involve mismatches between the CLSCompliant attribute on modules and assemblies. For more information on the CLS, see [Language independence and language-independent components](../../../standard/language-independence.md).
+
+- Build with the **module** element of the [**OutputType**](../compiler-options/output.md#outputtype) compiler option when specifying `[module:System.CLSCompliant(true)]` (**CS3012**). The CLSCompliant attribute on a module is only meaningful when the output target is a module rather than an assembly.
+- Add a matching `[module:CLSCompliant(true)]` or `[module:CLSCompliant(false)]` attribute to modules added via [**AddModule**](../compiler-options/inputs.md#addmodules) so they agree with the assembly's CLS state (**CS3013**). The default is `[module:CLSCompliant(false)]`, so modules that should be CLS compliant must explicitly opt in.
+
+## Compiler infrastructure errors
+
+- **CS0007**: *Unexpected common language runtime initialization error — 'description'*
+- **CS7038**: *Failed to emit module 'module': error*
+- **CS8751**: *Internal error in the C# compiler.*
+
+These errors indicate failures in the compiler's own infrastructure rather than problems with your source code or command-line options.
+
+- Verify that the runtime version specified in *csc.exe.config* is installed and not corrupted (**CS0007**). The setup process configures this file and you shouldn't change it. If you modified the file, check that the specified runtime version is present on the machine. If the correct version is present but might be corrupted, reinstall the common language runtime. Newer versions of the compiler no longer generate this error and it doesn't apply to the modern `dotnet build` toolchain.
+- Try a clean rebuild, verify all assembly references are valid and not corrupted, and check for conflicting reference versions (**CS7038**). This error wraps a lower-level failure during the assembly emit phase. The nested error message provides more specific details about what went wrong.
+- [File an issue in the Roslyn repository](https://github.com/dotnet/roslyn/issues/new/choose) with a minimal reproduction (**CS8751**). This error indicates a bug in the compiler itself. Your code exposed a code path the compiler team didn't anticipate.
diff --git a/docs/csharp/language-reference/compiler-messages/overloaded-operator-errors.md b/docs/csharp/language-reference/compiler-messages/overloaded-operator-errors.md
index 36c98af7f1158..ccb5aa518b072 100644
--- a/docs/csharp/language-reference/compiler-messages/overloaded-operator-errors.md
+++ b/docs/csharp/language-reference/compiler-messages/overloaded-operator-errors.md
@@ -36,6 +36,7 @@ f1_keywords:
- "CS1021"
- "CS1037"
- "CS1553"
+ - "CS8761"
- "CS8778"
- "CS8973"
- "CS9023"
@@ -84,6 +85,7 @@ helpviewer_keywords:
- "CS1021"
- "CS1037"
- "CS1553"
+ - "CS8761"
- "CS8778"
- "CS8973"
- "CS9023"
@@ -98,7 +100,7 @@ helpviewer_keywords:
- "CS9340"
- "CS9341"
- "CS9342"
-ms.date: 03/25/2026
+ms.date: 05/19/2026
ai-usage: ai-assisted
---
# Resolve errors and warnings for operator declarations and overflow
@@ -145,6 +147,7 @@ That's by design. The text closely matches the text of the compiler error / warn
- [**CS8930**](static-abstract-interfaces.md#errors-in-type-implementing-interface-declaration): *Explicit implementation of a user-defined operator must be declared static*
- [**CS8931**](static-abstract-interfaces.md#errors-in-interface-declaration): *User-defined conversion in an interface must convert to or from a type parameter on the enclosing type constrained to the enclosing type*
- [**CS8778**](#overflow-and-underflow-errors): *Constant value 'value' may overflow 'type' at runtime (use 'unchecked' syntax to override)*
+- [**CS8761**](#operator-signature-requirements): *Operator 'operator' cannot be applied to 'default' and operand of type 'type' because it is a type parameter that is not known to be a reference type*
- [**CS8973**](#overflow-and-underflow-errors): *The operation may overflow at runtime (use 'unchecked' syntax to override)*
- [**CS9023**](#checked-operators): *Operator cannot be made checked.*
- [**CS9024**](#checked-operators): *Operator cannot be made unchecked.*
@@ -172,6 +175,7 @@ That's by design. The text closely matches the text of the compiler error / warn
- **CS9340**: *Operator cannot be applied to operands. The closest inapplicable candidate is shown.*
- **CS9341**: *Operator cannot be applied to operand. The closest inapplicable candidate is shown.*
- **CS9342**: *Operator resolution is ambiguous between the following members.*
+- **CS8761**: *Operator 'operator' cannot be applied to 'default' and operand of type 'type' because it is a type parameter that is not known to be a reference type*
Each operator type has specific parameter and return type requirements defined by the language specification. For the full rules on which operators can be overloaded, see [Operator overloading](../operators/operator-overloading.md) and [Operators](~/_csharpstandard/standard/expressions.md#124-operators) in the C# specification.
@@ -184,6 +188,7 @@ Each operator type has specific parameter and return type requirements defined b
- Change the return type of the operator to a non-void type (**CS0590**). Most user-defined operators must return a value. The exception is compound assignment operators, which require a `void` return type (**CS9310**).
- Correct the parameter types or add missing operator overloads so the compiler can find a matching operator for the operand types used at the call site (**CS9340**, **CS9341**). When no applicable operator exists, the compiler shows the closest candidate to help diagnose the mismatch.
- Add explicit casts at the call site, or provide more specific overloads to eliminate ambiguity when multiple operator overloads match equally well (**CS9342**).
+- Add a `class`, `struct`, or other type constraint to the type parameter so the compiler can determine the applicable operators for the `default` expression (**CS8761**). When a type parameter is unconstrained, the compiler can't determine whether `default` represents `null` (for reference types) or a zeroed value type, making binary operator resolution ambiguous. Alternatively, avoid using `default` directly in binary expressions with unconstrained generic types.
> [!IMPORTANT]
> The signature requirements for static binary operators and the corresponding instance compound assignment operators are different. Make sure the signature matches the declaration you want.
diff --git a/docs/csharp/language-reference/toc.yml b/docs/csharp/language-reference/toc.yml
index 1d6403142551f..29fb29f941bae 100644
--- a/docs/csharp/language-reference/toc.yml
+++ b/docs/csharp/language-reference/toc.yml
@@ -463,6 +463,13 @@ items:
- name: C# compiler messages
href: ./compiler-messages/index.md
items:
+ - name: Invalid command-line options
+ href: ./compiler-messages/invalid-build-command-line.md
+ displayName: >
+ command line, msbuild, dotnet build, csc,
+ CS0006, CS0007, CS0016, CS1564, CS1616, CS1668, CS1719, CS1773, CS2008, CS2019,
+ CS2029, CS2032, CS2036, CS2038, CS2039, CS2040, CS2041, CS2042, CS2043, CS2044,
+ CS2045, CS2046, CS3012, CS3013, CS7038, CS8751, CS8771, CS8772
- name: Preprocessor errors
href: ./compiler-messages/preprocessor-errors.md
displayName: >
@@ -475,8 +482,8 @@ items:
CS0181, CS0243, CS0404, CS0415, CS0416, CS0447, CS0577, CS0578, CS0579, CS0582,
CS0592, CS0609, CS0616, CS0625, CS0629, CS0636, CS0637, CS0641, CS0646, CS0647,
CS0653, CS0657, CS0658, CS0668, CS0685, CS0735, CS0739, CS1608, CS1614, CS1618,
- CS1667, CS1689, CS7014, CS7046, CS7047, CS7067, CS8959, CS8960, CS8961, CS8962,
- CS8963, CS8968, CS8970, CS9331
+ CS1667, CS1689, CS7014, CS7046, CS7047, CS7067, CS8783, CS8959, CS8960, CS8961,
+ CS8962, CS8963, CS8968, CS8970, CS9331
- name: Feature or version missing
href: ./compiler-messages/feature-version-errors.md
displayName: >
@@ -514,11 +521,11 @@ items:
displayName: >
Primary constructors, module initializers, UnmanagedCallersOnly,
CS0132, CS0514, CS0515, CS0516, CS0517, CS0522, CS0526, CS0568, CS0573, CS0710,
- CS0768, CS0824, CS1018, CS8054, CS8091, CS8358, CS8813, CS8814, CS8815, CS8816,
- CS8862, CS8867, CS8868, CS8878, CS8900, CS8901, CS8902, CS8910, CS8958, CS8982,
- CS8983, CS9018, CS9019, CS9020, CS9021, CS9022, CS9105, CS9106, CS9107, CS9108,
- CS9109, CS9110, CS9111, CS9112, CS9113, CS9114, CS9115, CS9116, CS9117, CS9118,
- CS9119, CS9120, CS9121, CS9122, CS9124, CS9136, CS9179
+ CS0768, CS0824, CS1018, CS8054, CS8091, CS8358, CS8760, CS8813, CS8814, CS8815,
+ CS8816, CS8862, CS8867, CS8868, CS8878, CS8900, CS8901, CS8902, CS8910, CS8958,
+ CS8982, CS8983, CS9018, CS9019, CS9020, CS9021, CS9022, CS9105, CS9106, CS9107,
+ CS9108, CS9109, CS9110, CS9111, CS9112, CS9113, CS9114, CS9115, CS9116, CS9117,
+ CS9118, CS9119, CS9120, CS9121, CS9122, CS9124, CS9136, CS9179
- name: Property declarations
href: ./compiler-messages/property-declaration-errors.md
displayName: >
@@ -537,7 +544,7 @@ items:
CS0031, CS0056, CS0057, CS0215, CS0216, CS0217, CS0218, CS0220, CS0221, CS0448,
CS0463, CS0543, CS0552, CS0553, CS0554, CS0555, CS0556, CS0557, CS0558, CS0559,
CS0562, CS0563, CS0564, CS0567, CS0590, CS0594, CS0652, CS0659, CS0660, CS0661,
- CS0715, CS1021, CS1037, CS1553, CS8778, CS8973, CS9023, CS9024, CS9025,
+ CS0715, CS1021, CS1037, CS1553, CS8761, CS8778, CS8973, CS9023, CS9024, CS9025,
CS9027, CS9308, CS9310, CS9311, CS9312, CS9313, CS9340, CS9341, CS9342
- name: Parameter / argument mismatch
href: ./compiler-messages/parameter-argument-mismatch.md
@@ -758,10 +765,6 @@ items:
href: ../misc/cs0004.md
- name: CS0005
href: ../misc/cs0005.md
- - name: CS0006
- href: ./compiler-messages/cs0006.md
- - name: CS0007
- href: ./compiler-messages/cs0007.md
- name: CS0008
href: ../misc/cs0008.md
- name: CS0009
@@ -776,8 +779,6 @@ items:
href: ../misc/cs0014.md
- name: CS0015
href: ./compiler-messages/cs0015.md
- - name: CS0016
- href: ./compiler-messages/cs0016.md
- name: CS0019
href: ./compiler-messages/cs0019.md
- name: CS0020
@@ -1364,8 +1365,6 @@ items:
href: ../misc/cs1562.md
- name: CS1563
href: ../misc/cs1563.md
- - name: CS1564
- href: ./compiler-messages/cs1564.md
- name: CS1565
href: ../misc/cs1565.md
- name: CS1566
@@ -1444,8 +1443,6 @@ items:
href: ./compiler-messages/cs1705.md
- name: CS1713
href: ../misc/cs1713.md
- - name: CS1719
- href: ../misc/cs1719.md
- name: CS1721
href: ./compiler-messages/cs1721.md
- name: CS1722
@@ -1540,8 +1537,6 @@ items:
href: ../misc/cs2006.md
- name: CS2007
href: ../misc/cs2007.md
- - name: CS2008
- href: ../misc/cs2008.md
- name: CS2011
href: ../misc/cs2011.md
- name: CS2012
@@ -1554,8 +1549,6 @@ items:
href: ../misc/cs2016.md
- name: CS2018
href: ../misc/cs2018.md
- - name: CS2019
- href: ../misc/cs2019.md
- name: CS2020
href: ../misc/cs2020.md
- name: CS2021
@@ -1564,14 +1557,10 @@ items:
href: ../misc/cs2022.md
- name: CS2024
href: ../misc/cs2024.md
- - name: CS2032
- href: ./compiler-messages/cs2032.md
- name: CS2033
href: ../misc/cs2033.md
- name: CS2035
href: ../misc/cs2035.md
- - name: CS2036
- href: ../misc/cs2036.md
- name: CS7003
href: ./compiler-messages/cs7003.md
- name: CS8070
@@ -1714,8 +1703,6 @@ items:
href: ./compiler-messages/cs1598.md
- name: CS1607
href: ./compiler-messages/cs1607.md
- - name: CS1616
- href: ./compiler-messages/cs1616.md
- name: CS1645
href: ../misc/cs1645.md
- name: CS1658
@@ -1750,8 +1737,6 @@ items:
href: ../misc/cs2014.md
- name: CS2023
href: ../misc/cs2023.md
- - name: CS2029
- href: ../misc/cs2029.md
- name: CS3000
href: ../misc/cs3000.md
- name: CS3001
@@ -1772,10 +1757,6 @@ items:
href: ../misc/cs3010.md
- name: CS3011
href: ../misc/cs3011.md
- - name: CS3012
- href: ../misc/cs3012.md
- - name: CS3013
- href: ../misc/cs3013.md
- name: CS3014
href: ../misc/cs3014.md
- name: CS3015
@@ -1832,8 +1813,6 @@ items:
href: ../misc/cs1572.md
- name: CS1587
href: ../misc/cs1587.md
- - name: CS1668
- href: ../misc/cs1668.md
- name: CS1698
href: ../misc/cs1698.md
- name: CS1701
diff --git a/docs/csharp/misc/cs1668.md b/docs/csharp/misc/cs1668.md
deleted file mode 100644
index 6bc2fe5e21369..0000000000000
--- a/docs/csharp/misc/cs1668.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-description: "Learn more about: Compiler Warning (level 2) CS1668"
-title: "Compiler Warning (level 2) CS1668"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS1668"
-helpviewer_keywords:
- - "CS1668"
-ms.assetid: 313775ad-85f3-4695-8ab8-31c677f9c5f4
----
-# Compiler Warning (level 2) CS1668
-
-Invalid search path 'path' specified in 'path string' -- 'system error message'
-
- The path supplied to [**AdditionalLibPaths**](../language-reference/compiler-options/advanced.md#additionallibpaths) at the command line was not valid, or a path in the LIB environment variable is invalid. Check the path used to verify that it exists and can be accessed. The error message in single quotation marks is the error returned from the operating system.
-
-## See also
-
-- [C# Compiler Options](../language-reference/compiler-options/index.md)
-- [C# Compiler Errors](../language-reference/compiler-messages/index.md)
diff --git a/docs/csharp/misc/cs1719.md b/docs/csharp/misc/cs1719.md
deleted file mode 100644
index 9053e3071f8d7..0000000000000
--- a/docs/csharp/misc/cs1719.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Learn more about: Compiler Error CS1719"
-title: "Compiler Error CS1719"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS1719"
-helpviewer_keywords:
- - "CS1719"
-ms.assetid: 85f76f97-c056-4f92-8dfa-c0d486b45f59
----
-# Compiler Error CS1719
-
-Error reading Win32 resource file 'File Name' -- 'reason'
-
- An attempt to read the Win32 resource file failed for the reason given in the error, typically something like "file not found" or "access denied." This error is resolved by correcting the problem described by the reason.
diff --git a/docs/csharp/misc/cs2008.md b/docs/csharp/misc/cs2008.md
deleted file mode 100644
index d26c75bdca647..0000000000000
--- a/docs/csharp/misc/cs2008.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-description: "Learn more about: Compiler Error CS2008"
-title: "Compiler Error CS2008"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS2008"
-helpviewer_keywords:
- - "CS2008"
-ms.assetid: 13a25a0a-0638-41b7-8b35-9b5d3013bb00
----
-# Compiler Error CS2008
-
-No inputs specified
-
- The compiler was invoked and compiler options were specified, but no source-code files were passed.
diff --git a/docs/csharp/misc/cs2019.md b/docs/csharp/misc/cs2019.md
deleted file mode 100644
index c7839b0261203..0000000000000
--- a/docs/csharp/misc/cs2019.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-description: "Learn more about: Compiler Error CS2019"
-title: "Compiler Error CS2019"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS2019"
-helpviewer_keywords:
- - "CS2019"
-ms.assetid: eafd2531-8b3a-499c-9e12-a605a011396f
----
-# Compiler Error CS2019
-
-Invalid target type for /target: must specify 'exe', 'winexe', 'library', or 'module'
-
- The [**OutputType**](../language-reference/compiler-options/output.md#outputtype) compiler option was used, but an invalid parameter was passed. To resolve this error, recompile the program using the form of the **/target** option that is appropriate to your output file.
-
- The following sample generates CS2017:
-
-```csharp
-// CS2019.cs
-// compile with: /target:libra
-// CS2019 expected
-class MyClass
-{
-}
-```
diff --git a/docs/csharp/misc/cs2029.md b/docs/csharp/misc/cs2029.md
deleted file mode 100644
index 8edd0a690857a..0000000000000
--- a/docs/csharp/misc/cs2029.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-description: "Learn more about: Compiler Warning (level 1) CS2029"
-title: "Compiler Warning (level 1) CS2029"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS2029"
-helpviewer_keywords:
- - "CS2029"
-ms.assetid: b55c37d3-f1f8-4281-9b85-bdb01f1fc4fd
----
-# Compiler Warning (level 1) CS2029
-
-Invalid value for '/define'; 'identifier' is not a valid identifier
-
- This warning occurs if the value that is used in the [**DefineConstants**](../language-reference/compiler-options/language.md#defineconstants) option has some invalid characters.
-
- This warning cannot be suppressed by the [**NoWarn**](../language-reference/compiler-options/errors-warnings.md#nowarn) option.
diff --git a/docs/csharp/misc/cs2036.md b/docs/csharp/misc/cs2036.md
deleted file mode 100644
index 8ec123f5811e8..0000000000000
--- a/docs/csharp/misc/cs2036.md
+++ /dev/null
@@ -1,43 +0,0 @@
----
-description: "Learn more about: Compiler Error CS2036"
-title: "Compiler Error CS2036"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS2036"
-helpviewer_keywords:
- - "CS2036"
-ms.assetid: 44b73be4-b792-4735-bdbd-bd757ab22683
----
-# Compiler Error CS2036
-
-The /pdb option requires that the /debug option also be used.
-
- Program database files are only generated for debug builds. The **/pdb** option is therefore meaningless in a retail build.
-
-## To correct this error
-
-- Add the **/debug** compiler option.
-
-- Remove the **/pdb** compiler option.
-
-## Example
-
- The following example generates CS2036 when it is compiled with the **/pdb** option but not the /debug option:
-
-```csharp
-// cs2036.cs
-// Compile with: /pdb
-// CS2036
-class Test
-{
- public static int Main()
- {
- return 1;
- }
-}
-```
-
-## See also
-
-- [**PdbFile** (C# Compiler Options)](../language-reference/compiler-options/advanced.md#pdbfile)
-- [**DebugType** (C# Compiler Options)](../language-reference/compiler-options/code-generation.md#debugtype)
diff --git a/docs/csharp/misc/cs3012.md b/docs/csharp/misc/cs3012.md
deleted file mode 100644
index c33aace161289..0000000000000
--- a/docs/csharp/misc/cs3012.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-description: "Learn more about: Compiler Warning (level 1) CS3012"
-title: "Compiler Warning (level 1) CS3012"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS3012"
-helpviewer_keywords:
- - "CS3012"
-ms.assetid: 1f7555b4-61e4-4821-85c9-586301df4c5c
----
-
-# Compiler Warning (level 1) CS3012
-
-You cannot specify the CLSCompliant attribute on a module that differs from the CLSCompliant attribute on the assembly
-
-In order for a module to be compliant with the Common Language Specification (CLS) through `[module:System.CLSCompliant(true)]`, it must be built with the **module** element of the [**OutputType**](../language-reference/compiler-options/output.md#outputtype) compiler option. For more information on the CLS, see [Language independence and language-independent components](../../standard/language-independence.md).
-
-## Example
-
-The following example, when built without `/target:module`, generates CS3012:
-
-```csharp
-// CS3012.cs
-// compile with: /W:1
-
-[module:System.CLSCompliant(true)] // CS3012
-public class C
-{
- public static void Main()
- {
- }
-}
-```
diff --git a/docs/csharp/misc/cs3013.md b/docs/csharp/misc/cs3013.md
deleted file mode 100644
index b31ee476d990d..0000000000000
--- a/docs/csharp/misc/cs3013.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-description: "Learn more about: Compiler Warning (level 1) CS3013"
-title: "Compiler Warning (level 1) CS3013"
-ms.date: 07/20/2015
-f1_keywords:
- - "CS3013"
-helpviewer_keywords:
- - "CS3013"
-ms.assetid: 00b3bbe1-f2a0-465c-be0e-1af700c5753d
----
-# Compiler Warning (level 1) CS3013
-
-Added modules must be marked with the CLSCompliant attribute to match the assembly
-
- A module that was compiled with the **module** element of the [**OutputType**](../language-reference/compiler-options/output.md#outputtype) compiler option was added to a compilation with [**AddModule**](../language-reference/compiler-options/inputs.md#addmodules). However, the module's compliance with the Common Language Specification (CLS) does not agree with the CLS state of the current compilation.
-
- CLS compliance is indicated with the module attribute. For example, `[module:CLSCompliant(true)]` indicates that the module is CLS compliant, and `[module:CLSCompliant(false)]` indicates that the module is not CLS compliant. The default is `[module:CLSCompliant(false)]`. For more information on the CLS, see [Language independence and language-independent components](../../standard/language-independence.md).
diff --git a/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md b/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md
index 26718f563625d..a39a98a9982da 100644
--- a/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md
+++ b/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md
@@ -31,20 +31,10 @@ f1_keywords:
- "CS1768"
- "CS1769"
- "CS1770"
- - "CS1773"
- "CS1774"
- "CS1982"
- "CS1996"
- "CS1997"
- - "CS2038"
- - "CS2039"
- - "CS2040"
- - "CS2041"
- - "CS2042"
- - "CS2043"
- - "CS2044"
- - "CS2045"
- - "CS2046"
- "CS3028"
# C# 5 diagnostics
- "CS4017"
@@ -78,7 +68,6 @@ f1_keywords:
- "CS7033"
- "CS7034"
- "CS7035"
- - "CS7038" # build only diagnostic
- "CS7041"
- "CS7042"
- "CS7043"
@@ -259,13 +248,6 @@ f1_keywords:
- "CS8656"
- "CS8662"
- "CS8669"
- # C# 9 diagnostics start here
- - "CS8751" # misc
- - "CS8760" # misc
- - "CS8761"
- - "CS8771"
- - "CS8772"
- - "CS8783" # local function
# Coming in C# 15
- "CS9343" # misc
- "CS9347"
@@ -290,6 +272,8 @@ f1_keywords:
- "CS9365"
- "CS9366"
# More unions:
+ - "CS9367"
+ - "CS9368"
- "CS9369"
- "CS9370"
- "CS9371"
@@ -304,6 +288,11 @@ f1_keywords:
- "CS9378"
# More unsafe
- "CS9379"
+ - "CS9380"
+ - "CS9381"
+ - "CS9382"
+ - "CS9383"
+ - "CS9384"
helpviewer_keywords:
- "errors [C#], additional information"
---
diff --git a/docs/orleans/Directory.Build.props b/docs/orleans/Directory.Build.props
index fd8e515188bb4..15f6a48c2a879 100644
--- a/docs/orleans/Directory.Build.props
+++ b/docs/orleans/Directory.Build.props
@@ -16,7 +16,7 @@
-
+
diff --git a/docs/orleans/host/snippets/aspire/Client/Client.csproj b/docs/orleans/host/snippets/aspire/Client/Client.csproj
index 0bf551c934df2..6e4f13459e786 100644
--- a/docs/orleans/host/snippets/aspire/Client/Client.csproj
+++ b/docs/orleans/host/snippets/aspire/Client/Client.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/orleans/host/snippets/aspire/ServiceDefaults/ServiceDefaults.csproj b/docs/orleans/host/snippets/aspire/ServiceDefaults/ServiceDefaults.csproj
index 306746161ada1..96c2285353026 100644
--- a/docs/orleans/host/snippets/aspire/ServiceDefaults/ServiceDefaults.csproj
+++ b/docs/orleans/host/snippets/aspire/ServiceDefaults/ServiceDefaults.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/orleans/host/snippets/aspire/Silo/Silo.csproj b/docs/orleans/host/snippets/aspire/Silo/Silo.csproj
index d053b86b0104e..36b3e811832f5 100644
--- a/docs/orleans/host/snippets/aspire/Silo/Silo.csproj
+++ b/docs/orleans/host/snippets/aspire/Silo/Silo.csproj
@@ -8,12 +8,12 @@
-
+
-
+
diff --git a/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj b/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj
index 9a102ca5b2c8a..03d6e778658db 100644
--- a/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj
+++ b/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj
index bc8e39d8bff6f..01a3aabe6b408 100644
--- a/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj
+++ b/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj
@@ -9,9 +9,9 @@
-
+
-
+ allruntime; build; native; contentfiles; analyzers