diff --git a/.openpublishing.redirection.fundamentals.json b/.openpublishing.redirection.fundamentals.json index 175661affab35..536e46c4a139c 100644 --- a/.openpublishing.redirection.fundamentals.json +++ b/.openpublishing.redirection.fundamentals.json @@ -164,6 +164,31 @@ "source_path_from_root": "/docs/fundamentals/networking/httpclient-guidelines.md", "redirect_url": "/dotnet/fundamentals/networking/http/httpclient-guidelines" }, + { + "source_path_from_root": "/docs/fundamentals/package-validation/baseline-version-validator.md", + "redirect_url": "/dotnet/fundamentals/apicompat/package-validation/baseline-version-validator", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/fundamentals/package-validation/compatible-framework-in-package-validator.md", + "redirect_url": "/dotnet/fundamentals/apicompat/package-validation/compatible-framework-in-package-validator", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/fundamentals/package-validation/compatible-framework-validator.md", + "redirect_url": "/dotnet/fundamentals/apicompat/package-validation/compatible-framework-validator", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/fundamentals/package-validation/diagnostic-ids.md", + "redirect_url": "/dotnet/fundamentals/apicompat/package-validation/diagnostic-ids", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/fundamentals/package-validation/overview.md", + "redirect_url": "/dotnet/fundamentals/apicompat/package-validation/overview", + "redirect_document_id": true + }, { "source_path_from_root": "/docs/fundamentals/productivity/code-analysis.md", "redirect_url": "/dotnet/fundamentals/code-analysis/overview" diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 69fb30c53542c..1bb9bba90b2e1 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -57,8 +57,8 @@ | Monitor Ingestion | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.1) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.1/sdk/monitor/Azure.Monitor.Ingestion/) | | Monitor Query | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Monitor.Query/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.Query/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.Query-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.2.0/sdk/monitor/Azure.Monitor.Query/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.3.0-beta.1/sdk/monitor/Azure.Monitor.Query/) | | OpenAI Inference | NuGet [1.0.0-beta.9](https://www.nuget.org/packages/Azure.AI.OpenAI/1.0.0-beta.9) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_1.0.0-beta.9/sdk/openai/Azure.AI.OpenAI/) | -| OpenTelemetry AspNetCore | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.0.0-beta.8/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | -| OpenTelemetry Exporter | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.0.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.0.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | +| OpenTelemetry AspNetCore | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.0.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.0.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | +| OpenTelemetry Exporter | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.1.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.1.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | | Personalizer | NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Personalizer/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Personalizer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Personalizer_2.0.0-beta.2/sdk/personalizer/Azure.AI.Personalizer/) | | Purview Account | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Account/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Account-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Account_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Account/) | | Purview Administration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Administration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Administration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Administration_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Administration/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 46c8982186ea8..85645f083ec1b 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -58,8 +58,8 @@ | Monitor Ingestion | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.1) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.1/sdk/monitor/Azure.Monitor.Ingestion/) | | Monitor Query | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Monitor.Query/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.Query/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.Query-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.2.0/sdk/monitor/Azure.Monitor.Query/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Query_1.3.0-beta.1/sdk/monitor/Azure.Monitor.Query/) | | OpenAI Inference | NuGet [1.0.0-beta.9](https://www.nuget.org/packages/Azure.AI.OpenAI/1.0.0-beta.9) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_1.0.0-beta.9/sdk/openai/Azure.AI.OpenAI/) | -| OpenTelemetry AspNetCore | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.0.0-beta.8/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | -| OpenTelemetry Exporter | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.0.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.0.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | +| OpenTelemetry AspNetCore | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.0.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.0.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) | +| OpenTelemetry Exporter | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.1.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.1.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) | | Personalizer | NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Personalizer/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Personalizer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Personalizer_2.0.0-beta.2/sdk/personalizer/Azure.AI.Personalizer/) | | Purview Account | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Account/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Account-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Account_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Account/) | | Purview Administration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Administration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Administration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Administration_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Administration/) | diff --git a/docs/core/compatibility/core-libraries/5.0/code-access-security-apis-obsolete.md b/docs/core/compatibility/core-libraries/5.0/code-access-security-apis-obsolete.md index 5145586ea3ea9..83006fb85b0ff 100644 --- a/docs/core/compatibility/core-libraries/5.0/code-access-security-apis-obsolete.md +++ b/docs/core/compatibility/core-libraries/5.0/code-access-security-apis-obsolete.md @@ -146,9 +146,9 @@ Due to CAS's deprecation, the [supporting infrastructure was not brought forward ```xml - net5.0 - - $(NoWarn);SYSLIB0003 + net5.0 + + $(NoWarn);SYSLIB0003 ``` diff --git a/docs/core/diagnostics/built-in-metrics-aspnetcore.md b/docs/core/diagnostics/built-in-metrics-aspnetcore.md index a9b1c7f451311..40a323981b775 100644 --- a/docs/core/diagnostics/built-in-metrics-aspnetcore.md +++ b/docs/core/diagnostics/built-in-metrics-aspnetcore.md @@ -11,6 +11,9 @@ This article describes the metrics built-in for ASP.NET Core produced using the API. For a listing of metrics based on the older [EventCounters](event-counters.md) API, see [here](available-counters.md). +> [!TIP] +> For more information about how to collect, report, enrich, and test ASP.NET Core metrics, see [Using ASP.NET Core metrics](/aspnet/core/log-mon/metrics/metrics). + - [Meter: `Microsoft.AspNetCore.Hosting`](#meter-microsoftaspnetcorehosting) - [Instrument: `http.server.request.duration`](#instrument-httpserverrequestduration) - [Instrument: `http.server.active_requests`](#instrument-httpserveractive_requests) diff --git a/docs/core/project-sdk/msbuild-props.md b/docs/core/project-sdk/msbuild-props.md index 1ab63cab1fa20..d7cfc7e9f3fb9 100644 --- a/docs/core/project-sdk/msbuild-props.md +++ b/docs/core/project-sdk/msbuild-props.md @@ -239,7 +239,7 @@ This property was introduced in .NET 6. ### EnablePackageValidation -The `EnablePackageValidation` property enables a series of validations on the package after the `pack` task. For more information, see [package validation](../../fundamentals/package-validation/overview.md). +The `EnablePackageValidation` property enables a series of validations on the package after the `pack` task. For more information, see [package validation](../../fundamentals/apicompat/package-validation/overview.md). ```xml diff --git a/docs/core/tutorials/publishing-with-visual-studio-code.md b/docs/core/tutorials/publishing-with-visual-studio-code.md index ecc81844efdfd..ee63b14a6c46a 100644 --- a/docs/core/tutorials/publishing-with-visual-studio-code.md +++ b/docs/core/tutorials/publishing-with-visual-studio-code.md @@ -196,7 +196,7 @@ In the following steps, you'll look at the files created by the publish process. 1. On Windows or Linux, run the app by using the executable. - 1. On Windows, enter `.\HelloWorld.exe` and press Enter. + 1. On Windows, enter `.\HelloWorld.exe` and press Enter. On Windows with the Bash terminal, enter `./HelloWorld.exe`. 1. On Linux, enter `./HelloWorld` and press Enter. diff --git a/docs/core/whats-new/dotnet-6.md b/docs/core/whats-new/dotnet-6.md index 7692219d1756f..a38750c420a82 100644 --- a/docs/core/whats-new/dotnet-6.md +++ b/docs/core/whats-new/dotnet-6.md @@ -215,7 +215,7 @@ In *preview* is the ability to use operators on generic types in .NET 6. .NET 6 ## NuGet package validation -If you're a NuGet library developer, new [package-validation tooling](../../fundamentals/package-validation/overview.md) enables you to validate that your packages are consistent and well-formed. You can determine if: +If you're a NuGet library developer, new [package-validation tooling](../../fundamentals/apicompat/package-validation/overview.md) enables you to validate that your packages are consistent and well-formed. You can determine if: - There are any breaking changes across package versions. - The package has the same set of public APIs for all runtime-specific implementations. diff --git a/docs/fundamentals/apicompat/global-tool.md b/docs/fundamentals/apicompat/global-tool.md new file mode 100644 index 0000000000000..69bee1479b128 --- /dev/null +++ b/docs/fundamentals/apicompat/global-tool.md @@ -0,0 +1,188 @@ +--- +title: Microsoft.DotNet.ApiCompat.Tool global tool +description: Learn about the Microsoft.DotNet.ApiCompat.Tool global tool, which performs API compatibility checks on assemblies and packages. +ms.date: 11/29/2023 +--- + +# Microsoft.DotNet.ApiCompat.Tool global tool + +The Microsoft.DotNet.ApiCompat.Tool tool performs API compatibility checks on assemblies and packages. The tool has two modes: + +- Compare a package against a baseline package. +- Compare an assembly against a baseline assembly. + +## Install + +To install the tool, run the following command. + +```dotnetcli +dotnet tool install --global Microsoft.DotNet.ApiCompat.Tool +``` + +For more information about installing global tools, see [Install a global tool](../../core/tools/global-tools.md#install-a-global-tool). + +## Usage + +```dotnetcli +Microsoft.DotNet.ApiCompat.Tool [command] [options] +``` + +-or- + +```dotnetcli +apicompat [command] [options] +``` + +## Commands + +- **`package | --package `** + + Validates the compatibility of package assets. If unspecified, the tool compares assemblies. `` specifies the path to the package file. + +## Options + +Some options apply to both assembly and package validation. Others apply to [assemblies only](#assembly-specific-options) or [packages only](#package-specific-options). + +### General options + +- **`--version`** + + Shows version information. + +- **`--generate-suppression-file`** + + Generates a compatibility suppression file. + +- **`--preserve-unnecessary-suppressions`** + + Preserves unnecessary suppressions when regenerating the suppression file. + +- **`--permit-unnecessary-suppressions`** + + Permits unnecessary suppressions in the suppression file. + +- **`--suppression-file `** + + Specifies the path to one or more suppression files to read from. + +- **`--suppression-output-file `** + + Specifies the path to a suppression file to write to when `--generate-suppression-file` is specified. + +- **`--noWarn `** + + Specifies the specific diagnostic IDs to suppress. For example, `"$(NoWarn);PKV0001"`. + +- **`--respect-internals`** + + Checks both `internal` and `public` APIs. + +- **`--roslyn-assemblies-path `** + + Specifies the path to the directory that contains the Microsoft.CodeAnalysis assemblies. + +- **`-v, --verbosity [high|low|normal]`** + + Controls the log level verbosity. Allowable values are `high`, `normal`, and `low`. The default is `normal`. + +- **`--enable-rule-attributes-must-match`** + + Enables the rule that checks if attributes match. + +- **`--exclude-attributes-file `** + + Specifies the path to one or more attribute exclusion files. These files contains types in [DocId](../../csharp/language-reference/xmldoc/index.md#id-strings) format. + +- **`--enable-rule-cannot-change-parameter-name`** + + Enables the rule that checks whether parameter names have changed in public methods. + +### Assembly-specific options + +These options are only applicable when assemblies are compared. + +- **`-l, --left, --left-assembly `** + + Specifies the path to one or more assemblies that serve as the *left side* to compare. This option is required when comparing assemblies. + +- **`-r, --right, --right-assembly`** + + Specifies the path to one or more assemblies that serve as the *right side* to compare. This option is required when comparing assemblies. + +- **`--strict-mode`** + + Performs API compatibility checks in strict mode. + +- **`--left-assembly-references, --lref `** + + Specifies the paths to assembly references or the underlying directories for the *left side*. Separate multiple values with a comma. + +- **`--right-assembly-references, --rref `** + + Specifies the paths to assembly references or the underlying directories for the *right side*. Separate multiple values with a comma. + +- **`--create-work-item-per-assembly`** + + Enqueues a work item for the specified *left* and *right* assemblies. + +- **`--left-assemblies-transformation-pattern `** + + Specifies a transformation pattern for the *left side* assemblies. + +- **`--right-assemblies-transformation-pattern `** + + Specifies a transformation pattern for the *right side* assemblies. + +### Package-specific options + +These options are only applicable when packages are compared. + +- **`--baseline-package`** + + Specifies the path to a baseline package to validate against the current package. + +- **`--runtime-graph`** + + Specifies the path to the runtime graph to read from. + +- **`--run-api-compat`** + + Performs API compatibility checks on the package assets. The default is `true`. + +- **`--enable-strict-mode-for-compatible-tfms`** + + Validates API compatibility in strict mode for contract and implementation assemblies for all compatible target frameworks. The default is `true`. + +- **`--enable-strict-mode-for-compatible-frameworks-in-package`** + + Validates API compatibility in strict mode for assemblies that are compatible based on their target framework. + +- **`--enable-strict-mode-for-baseline-validation`** + + Validates API compatibility in strict mode for package baseline checks. + +- **`--package-assembly-references`** + + Specifies the paths to assembly references or their underlying directories for a specific target framework in the package. Separate multiple values with a comma. + +- **`--baseline-package-assembly-references`** + + Specifies the paths to assembly references or their underlying directories for a specific target framework in the *baseline* package. Separate multiple values with a comma. + +- **`--baseline-package-frameworks-to-ignore`** + + Specifies the set of target frameworks to ignore from the baseline package. The framework string must exactly match the folder name in the baseline package. + +## Example + +The following command compares the current and baseline versions of an assembly. + +```dotnetcli +apicompat --left bin\Release\net8.0\LibApp5.dll --right bin\Release\net8.0\LibApp5-baseline.dll +``` + +The following command compares the current and baseline versions of a package. + +```dotnetcli +apicompat package "bin\Release\LibApp5.1.0.0.nupkg" --baseline-package "bin\Release\LibApp5.2.0.0.nupkg" +``` diff --git a/docs/fundamentals/package-validation/baseline-version-validator.md b/docs/fundamentals/apicompat/package-validation/baseline-version-validator.md similarity index 94% rename from docs/fundamentals/package-validation/baseline-version-validator.md rename to docs/fundamentals/apicompat/package-validation/baseline-version-validator.md index eb9b0875039a2..cb448c0f625b0 100644 --- a/docs/fundamentals/package-validation/baseline-version-validator.md +++ b/docs/fundamentals/apicompat/package-validation/baseline-version-validator.md @@ -56,7 +56,7 @@ C:\Program Files\dotnet\sdk\6.0.413\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET ![BaselineVersion](media/baseline-version.png) -You realize that while this is not a [source breaking change](../../standard/library-guidance/breaking-changes.md#source-breaking-change), it is a [binary breaking change](../../standard/library-guidance/breaking-changes.md#binary-breaking-change). You solve this problem by adding a new overload instead of adding a parameter to the existing method: +You realize that while this is not a [source breaking change](../../../standard/library-guidance/breaking-changes.md#source-breaking-change), it is a [binary breaking change](../../../standard/library-guidance/breaking-changes.md#binary-breaking-change). You solve this problem by adding a new overload instead of adding a parameter to the existing method: ```csharp public static HttpClient Connect(string url) diff --git a/docs/fundamentals/package-validation/compatible-framework-in-package-validator.md b/docs/fundamentals/apicompat/package-validation/compatible-framework-in-package-validator.md similarity index 99% rename from docs/fundamentals/package-validation/compatible-framework-in-package-validator.md rename to docs/fundamentals/apicompat/package-validation/compatible-framework-in-package-validator.md index 1d0e2af8754bf..d117174f4fe29 100644 --- a/docs/fundamentals/package-validation/compatible-framework-in-package-validator.md +++ b/docs/fundamentals/apicompat/package-validation/compatible-framework-in-package-validator.md @@ -35,7 +35,7 @@ You've written the following code: You then try to pack the project (using either `dotnet pack` or Visual Studio), and it fails with the following error: -``` +```dotnetcli D:\demo>dotnet pack Microsoft (R) Build Engine version 17.0.0-preview-21460-01+8f208e609 for .NET Copyright (C) Microsoft Corporation. All rights reserved. diff --git a/docs/fundamentals/package-validation/compatible-framework-validator.md b/docs/fundamentals/apicompat/package-validation/compatible-framework-validator.md similarity index 100% rename from docs/fundamentals/package-validation/compatible-framework-validator.md rename to docs/fundamentals/apicompat/package-validation/compatible-framework-validator.md diff --git a/docs/fundamentals/package-validation/diagnostic-ids.md b/docs/fundamentals/apicompat/package-validation/diagnostic-ids.md similarity index 92% rename from docs/fundamentals/package-validation/diagnostic-ids.md rename to docs/fundamentals/apicompat/package-validation/diagnostic-ids.md index 43f103a7c16fa..54b86f87baf15 100644 --- a/docs/fundamentals/package-validation/diagnostic-ids.md +++ b/docs/fundamentals/apicompat/package-validation/diagnostic-ids.md @@ -1,13 +1,22 @@ --- description: A reference for package validation diagnostic IDs. title: "Package Validation Diagnostics IDs" -ms.date: 11/03/2021 +ms.date: 11/27/2023 ms.topic: error-reference --- -# Error codes returned by package validation +# Package validation error codes This reference article lists all the error codes generated by package validation. +## How to suppress + +You can suppress individual diagnostic IDs in either of the following ways: + +- Via a suppression file. +- Via the [`NoWarn`](../../../csharp/language-reference/compiler-options/errors-warnings.md#nowarn) compiler flag, either per package or globally. + +For more information, see [Suppress compatibility errors](overview.md#suppress-compatibility-errors). + ## List of error codes | Diagnostic ID | Description |Recommended action| diff --git a/docs/fundamentals/package-validation/media/baseline-version-successful.png b/docs/fundamentals/apicompat/package-validation/media/baseline-version-successful.png similarity index 100% rename from docs/fundamentals/package-validation/media/baseline-version-successful.png rename to docs/fundamentals/apicompat/package-validation/media/baseline-version-successful.png diff --git a/docs/fundamentals/package-validation/media/baseline-version.png b/docs/fundamentals/apicompat/package-validation/media/baseline-version.png similarity index 100% rename from docs/fundamentals/package-validation/media/baseline-version.png rename to docs/fundamentals/apicompat/package-validation/media/baseline-version.png diff --git a/docs/fundamentals/package-validation/media/compatible-frameworks-successful.png b/docs/fundamentals/apicompat/package-validation/media/compatible-frameworks-successful.png similarity index 100% rename from docs/fundamentals/package-validation/media/compatible-frameworks-successful.png rename to docs/fundamentals/apicompat/package-validation/media/compatible-frameworks-successful.png diff --git a/docs/fundamentals/package-validation/media/compatible-frameworks.png b/docs/fundamentals/apicompat/package-validation/media/compatible-frameworks.png similarity index 100% rename from docs/fundamentals/package-validation/media/compatible-frameworks.png rename to docs/fundamentals/apicompat/package-validation/media/compatible-frameworks.png diff --git a/docs/fundamentals/package-validation/media/multiple-runtimes-successful.png b/docs/fundamentals/apicompat/package-validation/media/multiple-runtimes-successful.png similarity index 100% rename from docs/fundamentals/package-validation/media/multiple-runtimes-successful.png rename to docs/fundamentals/apicompat/package-validation/media/multiple-runtimes-successful.png diff --git a/docs/fundamentals/package-validation/media/multiple-runtimes.png b/docs/fundamentals/apicompat/package-validation/media/multiple-runtimes.png similarity index 100% rename from docs/fundamentals/package-validation/media/multiple-runtimes.png rename to docs/fundamentals/apicompat/package-validation/media/multiple-runtimes.png diff --git a/docs/fundamentals/package-validation/overview.md b/docs/fundamentals/apicompat/package-validation/overview.md similarity index 88% rename from docs/fundamentals/package-validation/overview.md rename to docs/fundamentals/apicompat/package-validation/overview.md index 0caee050587cf..47d4a34ae468f 100644 --- a/docs/fundamentals/package-validation/overview.md +++ b/docs/fundamentals/apicompat/package-validation/overview.md @@ -20,7 +20,7 @@ Package validation tooling allows library developers to validate that their pack ## Enable package validation -You enable package validation in your .NET project by setting the [`EnablePackageValidation` property](../../core/project-sdk/msbuild-props.md#enablepackagevalidation) to `true`. +You enable package validation in your .NET project by setting the [`EnablePackageValidation` property](../../../core/project-sdk/msbuild-props.md#enablepackagevalidation) to `true`. ```xml @@ -72,3 +72,15 @@ The suppression file looks like this. - `Right` specifies the right operand of an APICompat comparison. - `IsBaselineSuppression`: set to `true` to apply the suppression to a baseline validation; otherwise, set to `false`. + +You can also suppress individual diagnostic IDs via the [`NoWarn`](../../../csharp/language-reference/compiler-options/errors-warnings.md#nowarn) compiler flag, either per package or globally. + +```xml + + + ... + + $(NoWarn);PKV0001 + + +``` diff --git a/docs/navigate/tools-diagnostics/toc.yml b/docs/navigate/tools-diagnostics/toc.yml index 016b6481f8f35..fe1b9a91664c0 100644 --- a/docs/navigate/tools-diagnostics/toc.yml +++ b/docs/navigate/tools-diagnostics/toc.yml @@ -1796,16 +1796,20 @@ items: - name: SYSLIB1220-SYSLIB1229 href: ../../fundamentals/syslib-diagnostics/syslib1220-1229.md displayProperty: syslib1220, syslib1221, syslib1222, syslib1223, syslib1224, syslib1225, syslib1226, syslib1227, syslib1228, syslib1229 - - name: Package validation + - name: API compatibility items: - - name: Get started - displayName: package validation - href: ../../fundamentals/package-validation/overview.md - - name: Baseline package validator - href: ../../fundamentals/package-validation/baseline-version-validator.md - - name: Compatible framework in package validator - href: ../../fundamentals/package-validation/compatible-framework-in-package-validator.md - - name: Compatible framework validator - href: ../../fundamentals/package-validation/compatible-framework-validator.md - - name: Diagnostic IDs - href: ../../fundamentals/package-validation/diagnostic-ids.md + - name: Package validation + items: + - name: Get started + displayName: package validation + href: ../../fundamentals/apicompat/package-validation/overview.md + - name: Baseline package validator + href: ../../fundamentals/apicompat/package-validation/baseline-version-validator.md + - name: Compatible framework in package validator + href: ../../fundamentals/apicompat/package-validation/compatible-framework-in-package-validator.md + - name: Compatible framework validator + href: ../../fundamentals/apicompat/package-validation/compatible-framework-validator.md + - name: Diagnostic IDs + href: ../../fundamentals/apicompat/package-validation/diagnostic-ids.md + - name: Microsoft.DotNet.ApiCompat.Tool global tool + href: ../../fundamentals/apicompat/global-tool.md diff --git a/docs/whats-new/dotnet-7-docs.md b/docs/whats-new/dotnet-7-docs.md index 0951417c124f6..ddbcdbe430e96 100644 --- a/docs/whats-new/dotnet-7-docs.md +++ b/docs/whats-new/dotnet-7-docs.md @@ -148,7 +148,7 @@ Welcome to what's new in the .NET docs for the .NET 7 release. This article list - Add missing code-style rules - Add IDE0160 and IDE0161. - [.NET runtime contention events](../fundamentals/diagnostics/runtime-contention-events.md) - Update the doc with the new version of ContentionStart -- [Error codes returned by package validation](../fundamentals/package-validation/diagnostic-ids.md) +- [Error codes returned by package validation](../fundamentals/apicompat/package-validation/diagnostic-ids.md) - add docs for diagnostics CP0012 and CP0013 - add docs for diagnostics CP0010 and CP0011 - [.NET regular expressions](../standard/base-types/regular-expressions.md) - Ported as conceptual article from .NET dev blog: `Regex` enhancements with .NET 7