-
Notifications
You must be signed in to change notification settings - Fork 310
Update repo to use net10.0 #1221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the repository from a mixed .NET 9.0 and .NET 10.0-preview dependency to the new .NET 10.0 GA version. The changes comprehensively update SDK versions, target frameworks, build paths, and documentation across the codebase.
Key Changes
- Updated global.json SDK version from preview (10.0.100-preview.7) to GA (10.0.100)
- Changed TargetFramework from net9.0 to net10.0 in Directory.Build.props
- Removed preview-specific NuGet packages (System.Linq.AsyncEnumerable, System.Net.ServerSentEvents)
- Updated all documentation and build scripts to reference net10.0 paths instead of net9.0
- Removed redundant .NET 9.0.x SDK installation steps from CI/CD pipelines
Reviewed Changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| global.json | Updated SDK version from preview to GA release (10.0.100) |
| Directory.Build.props | Changed TargetFramework from net9.0 to net10.0 |
| Directory.Packages.props | Removed preview package versions for System.Linq.AsyncEnumerable and System.Net.ServerSentEvents |
| core/Azure.Mcp.Core/src/Azure.Mcp.Core.csproj | Removed System.Linq.AsyncEnumerable package reference |
| eng/pipelines/templates/jobs/*.yml | Removed .NET 9.0.x SDK installation tasks (build.yml, analyze.yml, live-test.yml) |
| eng/scripts/Update-AzCommandsMetadata.ps1 | Updated default azmcp path from net9.0 to net10.0, improved path resolution |
| eng/scripts/Test-Code.ps1 | Reordered parameters to make Paths positional |
| servers/Azure.Mcp.Server/README.md | Updated .NET version reference from preview to GA |
| servers/Azure.Mcp.Server/TROUBLESHOOTING.md | Updated all binary paths from net9.0 to net10.0, enhanced table of contents |
| servers/Azure.Mcp.Server/docs/new-command.md | Updated TargetFramework references to net10.0, cleaned up trailing whitespace |
| servers/Azure.Mcp.Server/tests/.../CommandMetadataSyncTests.cs | Updated executable path from net9.0 to net10.0 |
| servers/Fabric.Mcp.Server/README.md | Updated SDK version reference from 9.x to 10.x |
| servers/Fabric.Mcp.Server/SUPPORT.md | Updated .NET version references from 9 to 10 |
| servers/Fabric.Mcp.Server/TROUBLESHOOTING.md | Updated SDK version and binary paths from net9.0 to net10.0 |
| CONTRIBUTING.md | Updated all azmcp executable paths from net9.0 to net10.0 |
| AGENTS.md | Updated example mcp.json path from net9.0 to net10.0 |
alzimmermsft
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the following also be updated:
System.Formats.Asn1 -> 10.0.0
Microsoft.Extensions.AI.Abstractions -> 10.0.0
Microsoft.Extensions.AI.Evaluation.Quality -> 10.0.0
Microsoft.AspNetCore.SignalR.Client -> 10.0.0
Microsoft.Extensions.Caching.Memory -> 10.0.0
Microsoft.Extensions.Configuration -> 10.0.0
Microsoft.Extensions.Configuration.EnvironmentVariables -> 10.0.0
Microsoft.Extensions.Configuration.Json -> 10.0.0
Microsoft.Extensions.DependencyInjection -> 10.0.0
Microsoft.Extensions.Hosting -> 10.0.0
System.CommandLine -> 2.0.0
System.Numerics.Tensors -> 10.0.0
System.Text.Json -> 10.0.0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated, but now we get some new AOT failures:
https://dev.azure.com/azure-sdk/public/public%20Team/_build/results?buildId=5603241&view=logs&j=1e679852-4871-5dae-dd38-eb073eb853d4&t=3639d9f6-46e5-5c59-1fa3-9c261e132d8a&l=105
ILLink : Trim analysis error IL2026: Azure.AI.OpenAI.Files.AzureFileExpirationOptions.PersistableModelWriteCore(ModelReaderWriterOptions): Using member 'System.ClientModel.Primitives.ModelReaderWriter.Write(!!0, ModelReaderWriterOptions)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. This method uses reflection. Use the overload that takes a ModelReaderWriterContext to be AOT compatible. [/mnt/vss/_work/1/s/servers/Azure.Mcp.Server/src/Azure.Mcp.Server.csproj]
ILLink : Trim analysis error IL2026: Azure.AI.OpenAI.CustomSerializationHelpers.SerializeInstance<TOutput,UInstanceInput>(UInstanceInput, ModelReaderWriterOptions): Using member 'System.ClientModel.Primitives.ModelReaderWriter.Write(Object, ModelReaderWriterOptions)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. This method uses reflection. Use the overload that takes a ModelReaderWriterContext to be AOT compatible. [/mnt/vss/_work/1/s/servers/Azure.Mcp.Server/src/Azure.Mcp.Server.csproj]
ILLink : Trim analysis error IL2026: Azure.ResourceManager.HDInsight.Models.HDInsightLocalizedName.System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HDInsight.Models.HDInsightLocalizedName>.Write(ModelReaderWriterOptions): Using member 'System.ClientModel.Primitives.ModelReaderWriter.Write(!!0, ModelReaderWriterOptions)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. This method uses reflection. Use the overload that takes a ModelReaderWriterContext to be AOT compatible. [/mnt/vss/_work/1/s/servers/Azure.Mcp.Server/src/Azure.Mcp.Server.csproj]
ILLink : Trim analysis error IL2026: Azure.ResourceManager.HDInsight.Models.HDInsightUsage.System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.HDInsight.Models.HDInsightUsage>.Write(ModelReaderWriterOptions): Using member 'System.ClientModel.Primitives.ModelReaderWriter.Write(!!0, ModelReaderWriterOptions)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. This method uses reflection. Use the overload that takes a ModelReaderWriterContext to be AOT compatible. [/mnt/vss/_work/1/s/servers/Azure.Mcp.Server/src/Azure.Mcp.Server.csproj]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hallipr, could you update Azure.ResourceManager.HDInsight to 1.2.0-beta.5? I'll look into Azure.AI.OpenAI
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Checking with the .NET SDK team on Microsoft.Extensions.AI.OpenAI. If this PR is urgent, we can keep the current version of Microsoft.Extensions.AI.OpenAI and just update Azure.ResourceManager.HDInsight to 1.2.0-beta.5.
| - task: UseDotNet@2 | ||
| displayName: "Use .NET SDK 9.0.x" | ||
| retryCountOnTaskFailure: 3 | ||
| inputs: | ||
| packageType: sdk | ||
| version: 9.0.x |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Depending how soon we want this PR in may still need this but be updated to 10.0.x as not all hosted images have updated to include .NET Core 10.0 yet
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a task just above these that installs the version in global.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We were having to also install 9.0 after 10-preview because we wanted 10.0-preview tooling, but a 9.0 dependency
...Azure.Mcp.Server/tests/Azure.Mcp.Server.UnitTests/Infrastructure/CommandMetadataSyncTests.cs
Outdated
Show resolved
Hide resolved
| "Azure Storage": { | ||
| "type": "stdio", | ||
| "command": "<absolute-path-to>/azure-mcp/core/src/AzureMcp.Cli/bin/Debug/net9.0/azmcp[.exe]", | ||
| "command": "<absolute-path-to>/mcp/servers/Azure.Mcp.Server/src/Debug/net10.0/azmcp[.exe]", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are these examples for? Do we need to really hard-code the full path?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are examples of using a local build of Azure MCP in an mcp.json. Ex, I have this locally for testing end-to-end:
{
"servers": {
"azure-mcp-local-debug": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"D:\\GitHub\\mcp\\servers\\Azure.Mcp.Server\\src\\bin\\Debug\\net9.0\\azmcp.exe",
"server",
"start",
"--mode",
"namespace"
]
}
}
}
What does this PR do?
Replace the mixed net9.0, net10-preview dependency with the new net10.0 GA version.
Pre-merge Checklist
servers/Azure.Mcp.Server/CHANGELOG.mdand/orservers/Fabric.Mcp.Server/CHANGELOG.mdfor product changes (features, bug fixes, UI/UX, updated dependencies)servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationeng/scripts/Process-PackageReadMe.ps1. See Package README/servers/Azure.Mcp.Server/docs/azmcp-commands.mdand/or/docs/fabric-commands.md.\eng\scripts\Update-AzCommandsMetadata.ps1to update tool metadata in azmcp-commands.md (required for CI)ToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test promptsconsolidated-tools.json/servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline