-
Notifications
You must be signed in to change notification settings - Fork 340
Migration Deployment and Rollout
Deploy the restored/published application, not a replacement SqlClient DLL.
| Environment | Required review |
|---|---|
| .NET Framework | Resolve package dependencies and application-specific binding redirects. For the aligned 7.0.2+ companions, account for assembly-version changes; rebuild rather than replacing DLLs in place. |
| Modern .NET on Windows | Ensure publish output contains runtime assets for the application's architecture, including native SNI when used. |
| Linux/macOS and containers | Use the supported managed networking path; provide globalization libraries, certificate trust, DNS, and authentication prerequisites in the actual image. |
| .NET Standard libraries | Compile-time compatibility is not runtime implementation support. Verify the consuming application selects a supported runtime asset. |
| Single-file, trimming, or Native AOT | Check support and known issues for the exact package/runtime/authentication path. Test the published output; managed networking alone does not establish support for the whole application. |
Microsoft.Data.SqlClient.SNI serves .NET Framework; Microsoft.Data.SqlClient.SNI.runtime supplies Windows native assets for modern .NET. Native SNI versions are independent of the driver's package version.
The managed-networking switch on Windows applies to modern .NET, not .NET Framework. Treat a change of SNI implementation as a deliberate compatibility decision, not a universal native-load-error workaround.
Globalization-invariant mode is not supported. Configure the runtime and install the globalization libraries required by the selected OS/image.
For Kerberos, verify the realm, service principal, tickets, permissions, and host libraries. Do not switch to a different authentication system merely because an SSPI error occurred.
LocalDB and FILESTREAM require separate platform review. Distributed transactions and spatial CLR/native libraries have additional runtime/OS constraints: confirm the actual implementation and supported deployment rather than applying an "all .NET is unsupported" rule.
- Run the published application on every target OS/architecture and authentication mode.
- Compare data correctness, latency, throughput, allocations, pool pressure, timeouts, cancellation, and failover with the recorded baseline.
- Include sync and async operations, large results, bulk copy, and transactions used by the application.
- Confirm certificates, token acquisition, key stores, and configuration are present outside developer machines.
- Roll out to a controlled subset; define acceptable signals and explicit rollback thresholds.
- Keep the previous complete application artifact and compatible configuration. Roll back the application, not only the provider DLL.
- Remove obsolete direct dependencies only after confirming remaining consumers; document any necessary SDS coexistence.
Complete when: the target artifact works in its real environment, behavior matches the accepted expectations, and rollout monitoring supports the cutover decision.
Next: Feature guides or Troubleshooting.
Sources: SNI packaging, support and globalization, 6.1 runtime-asset notes, 7.0.2 binding changes.
Home | ADO.NET driver docs | Release notes | Support lifecycle
Report security vulnerabilities privately to MSRC. Never share credentials or access tokens in public reports.