Skip to content

Commit d11d011

Browse files
authored
Merge pull request #44550 from dotnet/main
Merge main into live
2 parents 72c18a8 + 0f2a449 commit d11d011

File tree

27 files changed

+277
-154
lines changed

27 files changed

+277
-154
lines changed

.github/workflows/live-protection.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
name: Base branch checker
12
on: [pull_request]
23

34
permissions:
45
contents: read
56

67
jobs:
78
live_protection_job:
8-
name: Prevent unintended merge to live
9+
name: Create comment
910
runs-on: ubuntu-latest
1011
steps:
1112
- name: Harden Runner
@@ -19,10 +20,10 @@ jobs:
1920
with:
2021
script: |
2122
if (process.env.SHOULD_COMMENT == 'true') {
22-
github.issues.createComment({
23+
github.rest.issues.createComment({
2324
issue_number: context.issue.number,
2425
owner: context.repo.owner,
2526
repo: context.repo.repo,
26-
body: 'It looks like this pull request was opened on the `live` branch by mistake. In general, PRs should target the `main` branch.'
27+
body: 'It looks like this pull request was opened on the live branch by mistake. In general, PRs should target main.'
2728
})
2829
}

.openpublishing.redirection.fundamentals.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
"source_path_from_root": "/docs/fundamentals/apicompat/package-validation/diagnostic-ids.md",
55
"redirect_url": "/dotnet/fundamentals/apicompat/diagnostic-ids"
66
},
7+
{
8+
"source_path_from_root": "/docs/fundamentals/apicompat/preview-apis.md",
9+
"redirect_url": "/dotnet/fundamentals/runtime-libraries/preview-apis"
10+
},
711
{
812
"source_path_from_root": "/docs/fundamentals/code-analysis/quality-rules/ca1071.md",
913
"redirect_url": "/dotnet/fundamentals/code-analysis/quality-rules/index"

docs/azure/includes/dotnet-all.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
| Communication Rooms | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Communication.Rooms/1.1.1) | [docs](/dotnet/api/overview/azure/Communication.Rooms-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.1.1/sdk/communication/Azure.Communication.Rooms/) |
2424
| Communication SMS | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Sms/1.0.1)<br>NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Communication.Sms/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/Communication.Sms-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.0.1/sdk/communication/Azure.Communication.Sms/)<br>GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.1.0-beta.2/sdk/communication/Azure.Communication.Sms/) |
2525
| Compute Batch | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Compute.Batch/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Compute.Batch-readme?view=azure-dotnet-preview&amp;preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Compute.Batch_1.0.0-beta.1/sdk/batch/Azure.Compute.Batch/) |
26-
| Confidential Ledger | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.3.0) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.3.0/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) |
26+
| Confidential Ledger | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.3.0)<br>NuGet [1.4.1-beta.1](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.4.1-beta.1) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.3.0/sdk/confidentialledger/Azure.Security.ConfidentialLedger/)<br>GitHub [1.4.1-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.4.1-beta.1/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) |
2727
| Container Registry | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.1.1)<br>NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Containers.ContainerRegistry-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.1.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/)<br>GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.2.0-beta.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/) |
2828
| Content Safety | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.ContentSafety/1.0.0) | [docs](/dotnet/api/overview/azure/AI.ContentSafety-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.ContentSafety_1.0.0/sdk/contentsafety/Azure.AI.ContentSafety/) |
2929
| Conversational Language Understanding | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.1.0)<br>NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.Conversations/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.1.0/sdk/cognitivelanguage/Azure.AI.Language.Conversations/)<br>GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_2.0.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) |
@@ -371,8 +371,8 @@
371371
| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.ContentSafety.Extension.Embedded.Text/1.0.0)<br>NuGet [1.0.1-beta.4](https://www.nuget.org/packages/Azure.AI.ContentSafety.Extension.Embedded.Text/1.0.1-beta.4) | | |
372372
| Unknown Display Name | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Maps.TimeZones/1.0.0-beta.1) | | |
373373
| Unknown Display Name | NuGet [1.0.0-beta.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.FaultInjection/1.0.0-beta.0) | | |
374-
| Unknown Display Name | NuGet [1.0.4-preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.MySql/1.0.4-preview) | | |
375-
| Unknown Display Name | NuGet [1.0.4-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MySql/1.0.4-preview) | | |
374+
| Unknown Display Name | NuGet [1.0.6-preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.MySql/1.0.6-preview) | | |
375+
| Unknown Display Name | NuGet [1.0.6-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MySql/1.0.6-preview) | | |
376376
| Unknown Display Name | NuGet [1.42.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.CLI/1.42.0) | | |
377377
| Unknown Display Name | NuGet [1.42.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.Embedded.SR/1.42.0) | | |
378378
| Unknown Display Name | NuGet [1.42.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS/1.42.0) | | |

docs/azure/includes/dotnet-new.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
| Communication Rooms | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Communication.Rooms/1.1.1) | [docs](/dotnet/api/overview/azure/Communication.Rooms-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Rooms_1.1.1/sdk/communication/Azure.Communication.Rooms/) |
2525
| Communication SMS | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Sms/1.0.1)<br>NuGet [1.1.0-beta.2](https://www.nuget.org/packages/Azure.Communication.Sms/1.1.0-beta.2) | [docs](/dotnet/api/overview/azure/Communication.Sms-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.0.1/sdk/communication/Azure.Communication.Sms/)<br>GitHub [1.1.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.1.0-beta.2/sdk/communication/Azure.Communication.Sms/) |
2626
| Compute Batch | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Compute.Batch/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Compute.Batch-readme?view=azure-dotnet-preview&amp;preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Compute.Batch_1.0.0-beta.1/sdk/batch/Azure.Compute.Batch/) |
27-
| Confidential Ledger | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.3.0) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.3.0/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) |
27+
| Confidential Ledger | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.3.0)<br>NuGet [1.4.1-beta.1](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.4.1-beta.1) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.3.0/sdk/confidentialledger/Azure.Security.ConfidentialLedger/)<br>GitHub [1.4.1-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.4.1-beta.1/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) |
2828
| Container Registry | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.1.1)<br>NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Containers.ContainerRegistry-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.1.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/)<br>GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.2.0-beta.1/sdk/containerregistry/Azure.Containers.ContainerRegistry/) |
2929
| Content Safety | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.ContentSafety/1.0.0) | [docs](/dotnet/api/overview/azure/AI.ContentSafety-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.ContentSafety_1.0.0/sdk/contentsafety/Azure.AI.ContentSafety/) |
3030
| Conversational Language Understanding | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.1.0)<br>NuGet [2.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.Conversations/2.0.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.1.0/sdk/cognitivelanguage/Azure.AI.Language.Conversations/)<br>GitHub [2.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_2.0.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) |

docs/core/porting/versioning-sdk-msbuild-vs.md

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,18 @@ The support timeframe for the SDK typically matches that of the Visual Studio ve
5656
| SDK version | MSBuild/Visual Studio version | Ship date | Lifecycle |
5757
|-------------|-------------------------------|-----------|---------------------|
5858
| 8.0.1xx | 17.8 | Nov '23 | Nov '25<sup>1</sup> |
59-
| 8.0.2xx | 17.9<sup>3</sup> | Feb '24 | May '24<sup>3</sup> |
59+
| 8.0.2xx | 17.9 | Feb '24 | May '24 |
6060
| 8.0.3xx | 17.10 | May '24 | TBD |
6161
| 8.0.4xx | 17.11 | Aug '24 | Nov '25<sup>2</sup> |
62-
| 9.0.1xx | 17.12 | Nov '24 | May '26<sup>1</sup> |
62+
| 9.0.1xx | 17.12 | Nov '24 | May '26 |
63+
| 9.0.2xx | 17.13 | Feb '25 | May '26 |
64+
| 9.0.3xx | 17.14 | May '25 | May '26 |
6365

6466
> [!NOTE]
65-
> Targeting `net6.0` is officially supported in Visual Studio 17.0+ only.
66-
> Targeting `net7.0` is officially supported in Visual Studio 17.4+ only.
67-
> Targeting `net8.0` is officially supported in Visual Studio 17.8+ only.
68-
>
6967
> <sup>1</sup> .1xx .NET SDK feature bands are supported throughout the lifecycle of major .NET versions. During the extended support period, support is limited to security fixes and minimal high-priority non-security fixes for Linux only. To learn more about the reasoning for this extended support, see [Source-build support](https://github.com/dotnet/source-build#support).
7068
>
7169
> <sup>2</sup> .4xx .NET SDK feature bands are supported for the life of the matching runtime as stand-alone installs.
7270
>
73-
> <sup>3</sup> 8.0.200 requires a newer Visual Studio version. For more information, see the [support rules](#targeting-and-support-rules).
74-
>
7571
> [Visual Studio 2019 Lifecycle](/lifecycle/products/visual-studio-2019)
7672
>
7773
> [Visual Studio 2022 Lifecycle](/lifecycle/products/visual-studio-2022)
@@ -86,23 +82,20 @@ A the following policy dictates which versions of MSBuild and Visual Studio a gi
8682

8783
| SDK | Visual Studio version<br/>the SDK ships with | Minimum Visual Studio version | Max TargetFramework in<br/>minimum Visual Studio version | Max TargetFramework in `dotnet` |
8884
|---------|-------|------------------|--------|--------|
89-
| 6.0.200 | 17.1 | 17.0 | Net6.0 | Net6.0 |
90-
| 6.0.300 | 17.2 | 17.0 | Net6.0 | Net6.0 |
91-
| 6.0.400 | 17.3 | 17.0 | Net6.0 | Net6.0 |
92-
| 7.0.100 | 17.4 | 17.3 | Net6.0 | Net7.0 |
93-
| 7.0.200 | 17.5 | 17.4 | Net7.0 | Net7.0 |
94-
| 7.0.300 | 17.6 | 17.4<sup>1</sup> | Net7.0 | Net7.0 |
95-
| 7.0.400 | 17.7 | 17.4 | Net7.0 | Net7.0 |
9685
| 8.0.100 | 17.8 | 17.7 | Net7.0 | Net8.0 |
9786
| 8.0.200 | 17.9 | 17.8 | Net8.0 | Net8.0 |
9887
| 8.0.300 | 17.10 | 17.8 | Net8.0 | Net8.0 |
9988
| 8.0.400 | 17.11 | 17.8 | Net8.0 | Net8.0 |
10089
| 9.0.100 | 17.12 | 17.11 | Net8.0 | Net9.0 |
90+
| 9.0.200 | 17.13 | 17.12 | Net9.0 | Net9.0 |
91+
| 9.0.300 | 17.14 | 17.12 | Net9.0 | Net9.0 |
10192

10293
> [!NOTE]
10394
> The table depicts how these versioning rules are applied, starting with .NET SDK 7.0.100 and .NET SDK 6.0.300. It also depicts how the policy would have applied to previously shipped versions of the .NET SDK, had it been in place then. However, the requirements for previous versions of the SDK don't change&mdash;that is, the minimum required version of Visual Studio for .NET SDK 6.0.100 or 6.0.200 remains 16.10.
104-
105-
> <sup>1</sup> A breaking change in 7.0.300 for Blazor and Razor development requires Visual Studio version 17.6 or newer. For more information, see [dotnet/razor issue 8718](https://github.com/dotnet/razor/issues/8718).
95+
>
96+
> Targeting `net8.0` is officially supported in Visual Studio 17.8+ only.
97+
>
98+
> Targeting `net9.0` is officially supported in Visual Studio 17.12+ only.
10699
107100
To ensure consistent tooling, you should use `dotnet build` rather than `msbuild` to build your application when possible.
108101

@@ -112,16 +105,10 @@ Major versions of the .NET SDK are typically released within a few days of a Vis
112105

113106
| SDK preview version | Visual Studio version |
114107
|---------------------|-----------------------|
115-
| 9.0.100 Preview 1 | 17.10 Preview 1 |
116-
| 9.0.100 Preview 2 | 17.10 Preview 2 |
117-
| 9.0.100 Preview 3 | 17.10 Preview 3 |
118-
| 9.0.100 Preview 4 | 17.11 Preview 1 |
119-
| 9.0.100 Preview 5 | 17.11 Preview 2 |
120-
| 9.0.100 Preview 6 | 17.11 Preview 3 |
121-
| 9.0.100 Preview 7 | 17.12 Preview 1 |
122108
| 9.0.100 RC 1 | 17.12 Preview 2 |
123109
| 9.0.100 RC 2 | 17.12 Preview 3 |
124110
| 9.0.100 GA | 17.12 GA |
111+
| 10.0.100 Preview 1 | 17.14 Preview 1 |
125112

126113
## Reference
127114

docs/core/whats-new/dotnet-9/overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ For more information, see [What's new in the SDK for .NET 9](sdk.md).
7070
- Builds on top of `TensorPrimitives` for efficient math operations.
7171
- Provides efficient interop with AI libraries (ML.NET, TorchSharp, ONNX Runtime) using zero copies where possible.
7272
- Enables easy and efficient data manipulation with indexing and slicing operations.
73-
- Is [experimental](../../../fundamentals/apicompat/preview-apis.md#experimentalattribute) in .NET 9.
73+
- Is [experimental](../../../fundamentals/runtime-libraries/preview-apis.md#experimentalattribute) in .NET 9.
7474

7575
### ML.NET
7676

@@ -125,7 +125,7 @@ The focus of .NET Multi-platform App UI (.NET MAUI) in .NET 9 is enhanced perfor
125125
- <xref:Microsoft.Maui.Controls.Entry> now supports additional keyboard modes.
126126
- Control handlers automatically disconnect from their controls when possible.
127127
- <xref:Microsoft.Maui.Controls.Application.MainPage> is deprecated in favor of setting the primary page of the app by overriding <xref:Microsoft.Maui.Controls.Application.CreateWindow(Microsoft.Maui.IActivationState)?displayProperty=nameWithType> class.
128-
128+
129129
For more information about that these new features and more, see [What's new in .NET MAUI for .NET 9](/dotnet/maui/whats-new/dotnet-9).
130130

131131
## EF Core

docs/csharp/fundamentals/functional/pattern-matching.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Pattern matching overview
33
description: "Learn about pattern matching expressions in C#"
4-
ms.date: 03/13/2024
4+
ms.date: 01/27/2025
55
---
66

77
# Pattern matching overview
@@ -78,6 +78,14 @@ The first two arms examine two properties of the `Order`. The third examines onl
7878

7979
The preceding code demonstrates the [*positional pattern*](../../language-reference/operators/patterns.md#positional-pattern) where the properties are deconstructed for the expression.
8080

81+
You can also match a property against `{ }`, which matches any non-null value. Consider the following declaration, which stores measurements with an optional annotation:
82+
83+
:::code language="csharp" source="snippets/patterns/Program.cs" ID="Observation":::
84+
85+
You can test if a given observation has a non-null annotation using the following pattern matching expression:
86+
87+
:::code language="csharp" source="snippets/patterns/Program.cs" ID="NotNullPropertyPattern":::
88+
8189
## List patterns
8290

8391
You can check elements in a list or an array using a *list pattern*. A [list pattern](../../language-reference/operators/patterns.md#list-patterns) provides a means to apply a pattern to any element of a sequence. In addition, you can apply the *discard pattern* (`_`) to match any element, or apply a *slice pattern* to match zero or more elements.

docs/csharp/fundamentals/functional/snippets/patterns/Program.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ static void Main(string[] args)
88

99
NullReferenceCheck();
1010

11-
var sequence = new List<int> {1,2,3,4,5,6,7};
11+
var sequence = new List<int> { 1, 2, 3, 4, 5, 6, 7 };
1212
var middle = MidPoint(sequence);
1313
Console.WriteLine(middle);
1414

1515
ListPattern.Example();
16+
17+
NotNullProperty(new Observation(42, "C", "Temperature"));
1618
}
1719

1820
// <MidPoint>
@@ -65,4 +67,21 @@ private static void NullCheck()
6567
}
6668
// </NullableCheck>
6769
}
70+
71+
private static void NotNullProperty(Observation observation)
72+
{
73+
// <NotNullPropertyPattern>
74+
if (observation.Annotation is { })
75+
{
76+
Console.WriteLine($"Observation description: {observation.Annotation}");
77+
}
78+
// </NotNullPropertyPattern>
79+
}
80+
81+
// <Observation>
82+
public record class Observation(int Value, string Units, string Name)
83+
{
84+
public string? Annotation { get; set; }
85+
}
86+
// </Observation>
6887
}

docs/csharp/fundamentals/functional/snippets/patterns/patterns.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net8.0</TargetFramework>
5+
<TargetFramework>net9.0</TargetFramework>
66
<Nullable>enable</Nullable>
77
<ImplicitUsings>enable</ImplicitUsings>
88
</PropertyGroup>

0 commit comments

Comments
 (0)