Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docs-verifier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Validate
uses: dotnet/docs-actions/actions/docs-verifier@5e8bcc78465d45a7544bba56509a1a69922b6a5a # main
uses: dotnet/docs-tools/actions/docs-verifier@1397e452fa0b49e9e52bc2443cd9ec6182a05294 # main
2 changes: 1 addition & 1 deletion docs/azure/configure-visual-studio.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Configure Visual Studio for Azure Development with .NET
description: This article helps you configure Visual Studio for Azure development including getting the right workloads installed and connecting Visual Studio to your Azure account.
ms.topic: concept-article
ms.custom: devx-track-dotnet, engagement-fy23
ms.date: 3/20/2025
ms.date: 03/20/2026
---

# Configure Visual Studio for Azure development with .NET
Expand Down
36 changes: 19 additions & 17 deletions docs/azure/includes/dotnet-all.md

Large diffs are not rendered by default.

14 changes: 8 additions & 6 deletions docs/azure/includes/dotnet-new.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/azure/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ metadata:
description: Samples, tutorials, and education for .NET on Azure
ms.topic: hub-page
ms.service: dotnet-azure
ms.date: 08/15/2024
ms.date: 03/20/2026

highlightedContent:
# itemType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Authenticate .NET apps to Azure services during local development using service principals
description: Learn how to authenticate your app to Azure services during local development using dedicated application service principals.
ms.topic: how-to
ms.date: 03/11/2025
ms.date: 03/20/2026
ms.custom:
- devx-track-dotnet
- engagement-fy23
Expand Down
2 changes: 1 addition & 1 deletion docs/azure/sdk/authentication/on-premises-apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Authenticate to Azure resources from .NET apps hosted on-premises
description: This article describes how to authenticate your application to Azure services when using the Azure SDK for .NET in on-premises hosted apps.
ms.topic: how-to
ms.date: 03/13/2025
ms.date: 03/20/2026
ms.custom:
- devx-track-dotnet
- engagement-fy23
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Authenticate Azure-hosted .NET apps to Azure resources using a user-assig
description: Learn how to authenticate Azure-hosted .NET apps to other Azure services using a user-assigned managed identity.
ms.topic: how-to
ms.custom: devx-track-dotnet, engagement-fy23, devx-track-azurecli
ms.date: 02/06/2025
ms.date: 03/20/2026
---

# Authenticate Azure-hosted .NET apps to Azure resources using a user-assigned managed identity
Expand Down
24 changes: 20 additions & 4 deletions docs/core/project-sdk/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
title: .NET project SDK overview
titleSuffix: ""
description: Learn about the .NET project SDKs.
ms.date: 10/15/2024
ms.date: 03/20/2026
ai-usage: ai-assisted
ms.topic: concept-article
no-loc: ["EmbeddedResource", "Compile", "None", "Blazor"]
---
Expand Down Expand Up @@ -97,22 +98,37 @@ If the project has multiple target frameworks, focus the results of the command

## Default includes and excludes

The default includes and excludes for [`Compile` items](/visualstudio/msbuild/common-msbuild-project-items#compile), [embedded resources](/visualstudio/msbuild/common-msbuild-project-items#embeddedresource), and [`None` items](/visualstudio/msbuild/common-msbuild-project-items#none) are defined in the SDK. Unlike non-SDK .NET Framework projects, you don't need to specify these items in your project file, because the defaults cover most common use cases. This behavior makes the project file smaller and easier to understand and edit by hand, if needed.
The SDK automatically manages three types of items for your project:

The following table shows which elements and which [globs](https://en.wikipedia.org/wiki/Glob_(programming)) are included and excluded in the .NET SDK:
- [`Compile` items](/visualstudio/msbuild/common-msbuild-project-items#compile): source code files (`*.cs`, `*.vb`, and other language-specific extensions) that get compiled into your assembly.
- [`EmbeddedResource` items](/visualstudio/msbuild/common-msbuild-project-items#embeddedresource): `*.resx` files that get embedded into your assembly.
- [`None` items](/visualstudio/msbuild/common-msbuild-project-items#none): all other files tracked in the project, such as configuration and content files, that aren't compiled or embedded.

Unlike non-SDK .NET Framework projects, you don't need to specify these items in your project file, because the defaults cover most common use cases. This behavior makes the project file smaller and easier to understand and edit by hand, if needed.

The SDK uses [glob](https://en.wikipedia.org/wiki/Glob_(programming)) patterns to determine which files belong to each item type:

- **Include glob**: Specifies which files to add to the item type.
- **Exclude glob**: Specifies which files to skip when applying the include glob.
- **Remove glob**: Specifies which files to remove from items that were already added by the include glob.

The following table shows the default glob patterns for each item type in the .NET SDK:

| Element | Include glob | Exclude glob | Remove glob |
|---------|--------------|--------------|-------------|
| Compile | \*\*/\*.cs (or other language extensions) | \*\*/\*.user; \*\*/\*.\*proj; \*\*/\*.sln(x); \*\*/\*.vssscc | N/A |
| EmbeddedResource | \*\*/\*.resx | \*\*/\*.user; \*\*/\*.\*proj; \*\*/\*.sln(x); \*\*/\*.vssscc | N/A |
| None | \*\*/\* | \*\*/\*.user; \*\*/\*.\*proj; \*\*/\*.sln(x); \*\*/\*.vssscc | \*\*/\*.cs; \*\*/\*.resx |

Because `None` uses `**/*` as its include glob, it would otherwise include *.cs* and *.resx* files that are already captured by `Compile` and `EmbeddedResource`. The remove glob (`**/*.cs; **/*.resx`) prevents those files from appearing in both item types at the same time.

> [!NOTE]
> The `./bin` and `./obj` folders, which are represented by the `$(BaseOutputPath)` and `$(BaseIntermediateOutputPath)` MSBuild properties, are excluded from the globs by default. Excludes are represented by the [DefaultItemExcludes property](msbuild-props.md#defaultitemexcludes).

The .NET Desktop SDK has additional includes and excludes for WPF. For more information, see [WPF default includes and excludes](msbuild-props-desktop.md#wpf-default-includes-and-excludes).

If you explicitly define any of these items in your project file, you're likely to get a [NETSDK1022](../tools/sdk-errors/netsdk1022.md) build error. For information about how to resolve the error, see [NETSDK1022: Duplicate items were included](../tools/sdk-errors/netsdk1022.md).
> [!WARNING]
> Avoid defining `Compile`, `EmbeddedResource`, or `None` items that duplicate the SDK's default `Include` globs. Duplicating included files causes the build to include the same files twice, which results in a [NETSDK1022](../tools/sdk-errors/netsdk1022.md) build error. Customizations that use `Remove` or `Update`, or that add items after you set `EnableDefaultItems`, `EnableDefaultCompileItems`, or `EnableDefaultEmbeddedResourceItems` to `false`, are supported. For information about how to resolve the error, see [NETSDK1022: Duplicate items were included](../tools/sdk-errors/netsdk1022.md).

## Implicit using directives

Expand Down
7 changes: 5 additions & 2 deletions docs/framework/interop/copying-and-pinning.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
---
title: "Copying and Pinning"
description: Review how the interop marshaller can copy or pin data that's being marshalled. Copying data places a copy of data from one memory location into another location.
ms.date: 05/12/2022
ms.date: 03/20/2026
ai-usage: ai-assisted
helpviewer_keywords:
- "pinning, interop marshalling"
- "copying, interop marshalling"
Expand All @@ -19,7 +20,7 @@ Method arguments passed by value are marshalled to unmanaged code as values on t

![Diagram showing reference types passed by value and by reference.](./media/copying-and-pinning/interop-marshal-reference-pin.gif)

Pinning temporarily locks the data in its current memory location, thus keeping it from being relocated by the common language runtime's garbage collector. The marshaller pins data to reduce the overhead of copying and enhance performance. The type of the data determines whether it is copied or pinned during the marshalling process. Pinning is automatically performed during marshalling for objects such as <xref:System.String>, however you can also manually pin memory using the <xref:System.Runtime.InteropServices.GCHandle> class.
Pinning temporarily locks the data in its current memory location, thus keeping it from being relocated by the common language runtime's garbage collector. The marshaller pins data to reduce the overhead of copying and enhance performance. The type of the data determines whether it is copied or pinned during the marshalling process. Pinning is automatically performed during marshalling for objects such as <xref:System.String>. However you can also manually pin memory using the <xref:System.Runtime.InteropServices.GCHandle> class. For examples of manual pinning with `GCHandle`, see [Keeping managed objects alive](../../standard/native-interop/best-practices.md#keeping-managed-objects-alive) in the native interoperability best practices article.

## Formatted Blittable Classes

Expand Down Expand Up @@ -78,3 +79,5 @@ When a <xref:System.Text.StringBuilder?displayProperty=nameWithType> is passed b
- [Default Marshalling Behavior](default-marshalling-behavior.md)
- [Directional Attributes](/previous-versions/dotnet/netframework-4.0/77e6taeh(v=vs.100))
- [Interop Marshaling](interop-marshalling.md)
- [Native interoperability best practices](../../standard/native-interop/best-practices.md)
- [`fixed` statement (C# reference)](../../csharp/language-reference/statements/fixed.md)
Loading