Azure Split - Use MDS Common Project#3873
Merged
paulmedynski merged 29 commits intofeat/azure-splitfrom Jan 16, 2026
Merged
Conversation
…gets from netfx project.
Abstractions Package - Pipeline Changes (#3628) Move AAD/Entra Authentication into new Azure package (#3680) User Story 39839: Move existing MDS tests to Azure package - Identified and moved tests specific to ActiveDirectoryAuthenticationProvider into the Azure Test project. - Updated some MDS tests that unnecessarily used ActiveDirectoryAuthenticationProvider. - Added tests to Abstractions Test project to ensure AAD/Entra auth fails when the Azure package isn't present. - Various build and pipeline changes to support the test changes. - Fixed project-based builds so we can restore MDS netcore and netfx projects at the same time. - Added caching to the managed identity provider for the ManualTest project. - Moved username/password Entra auth provider into its own file for sharing across tests. - Added ADO service connection for test tasks that require access to Azure resources. - Added workload identity federation tests. - Solved the mystery of SNI DLLs missing for .NET Framework project-reference-based builds. - Added ADO-CI-1ES pool jobs to test the Azure package on Linux and Windows. - Fixed Azure package pipelines to support pools in the ADO.Net and Public projects. - Added some new pipeline variables to handle the Workload Identity Federation test.
- Removed unnecessary package ref to Microsoft.Win32.Registry.
…ffs. - Added .NET 10 Runtime to the Abstractions and Azure package tests. - Added the feat/* branches to CodeQL config. - Found a few leftover relative paths for templates and made them absolute.
…meworks, and choose better TargetOs defaults. - Updated Azure project tests to use the MDS common project.
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request implements infrastructure changes to enable the Azure split work by using a common MDS project and eliminating the previous MDS AssemblyName workaround. The primary mechanism introduces conditional assembly name suffixes (.NetCore and .NetFx) for project-reference builds to resolve MSBuild conflicts when building downstream projects.
Key changes:
- Introduces
ApplyMdsAssemblyNameSuffixproperty to conditionally append assembly name suffixes - Creates new test infrastructure with
UsernamePasswordProviderandManagedIdentityProviderfor AAD authentication tests - Refactors test organization by migrating tests from MDS to Azure Extensions package
- Updates build targets, NuGet specs, and pipeline configurations to support the new assembly naming scheme
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/Directory.Build.props | Adds assembly name suffix logic for project-reference builds |
| tools/targets/GenerateMdsPackage.targets | Passes assembly name suffix parameters to NuGet pack |
| tools/targets/CopySniDllsForNetFxProjectReferenceBuilds.targets | New target file to copy SNI DLLs for .NET Framework project-reference builds |
| tools/specs/Microsoft.Data.SqlClient.nuspec | Updates file paths to use assembly name suffix variables |
| src/Microsoft.Data.SqlClient/*/Microsoft.Data.SqlClient.csproj | Applies assembly name suffix based on ApplyMdsAssemblyNameSuffix property |
| src/Microsoft.Data.SqlClient/tests/ManualTests/DataCommon/UsernamePasswordProvider.cs | New provider for username/password authentication in tests |
| src/Microsoft.Data.SqlClient/tests/ManualTests/DataCommon/ManagedIdentityProvider.cs | New provider for managed identity authentication in tests |
| src/Microsoft.Data.SqlClient.Extensions/Azure/test/* | New test files migrated from MDS ManualTests |
| src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/SqlAuthenticationProviderInternal.cs | Updates to handle dynamic assembly name resolution |
| eng/pipelines/**/*.yml | Pipeline configuration updates for new build structure |
paulmedynski
commented
Jan 9, 2026
src/Microsoft.Data.SqlClient.Extensions/Azure/test/Azure.Test.csproj
Outdated
Show resolved
Hide resolved
src/Microsoft.Data.SqlClient/src/Microsoft/Data/Common/AdapterUtil.netfx.cs
Show resolved
Hide resolved
...osoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/DbConnectionPoolIdentity.cs
Show resolved
Hide resolved
Base automatically changed from
dev/paul/azure-split/move-tests
to
feat/azure-split
January 15, 2026 12:53
...osoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/DbConnectionPoolIdentity.cs
Show resolved
Hide resolved
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/AADConnectionTest.cs
Show resolved
Hide resolved
- Fixed terrible merge that un-did most of my changes.
- Addressed some Copilot feedback.
mdaigle
approved these changes
Jan 15, 2026
benrr101
approved these changes
Jan 15, 2026
Contributor
benrr101
left a comment
There was a problem hiding this comment.
I'm still treating this as a work-in-progress, so as long as it works, I'm content enough with it. There's going to be lots of conflicts between this and main.
Couple recommendations imho:
- See if you can bring some of these more general purpose changes into main directly
- It'd be nice-ish if we can trim down some of the unrelated changes on these PRs. Like the pool names and linux build versions and sql server setup stuff isn't related to using MDS common. I'm being pretty lenient because it's not to main, but I feel like omnibus PRs would get me yelled at if I did it :)
...osoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/DbConnectionPoolIdentity.cs
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This is a general cleanup PR, mostly focused on using the new MDS common project:
#if _WINDOWSconditions.Testing
The normal PR/CI runs will verify things generally. I have manually inspected the tests that were moved into the Azure project.