Skip to content

Commit fd8cb4b

Browse files
authored
Use upper-bound version ranges for sibling package dependencies (#4337)
* Use upper-bound version ranges for sibling package dependencies Compute [floor, ceiling) ranges for sibling packages so NuGet cannot resolve an incompatible newer minor/major version at restore time. - Directory.Packages.props: derive *VersionCeiling from *PackageVersion; apply ranges to sibling PackageVersion items; add SniVersionRange - SqlClient csproj: compute version range properties for nuspec expansion - SqlClient nuspec: replace bare version tokens with range tokens * CI: Pass ReferenceType and dependency versions to pack jobs The CI/PR pack jobs for Abstractions and Azure extensions were not passing ReferenceType=Package to dotnet pack, causing the projects to use ProjectReference mode for sibling dependencies. NuGet converts ProjectReferences to bare version dependencies (no ranges), which defeats the upper-bound version ranges defined in Directory.Packages.props. Fix: - pack-abstractions-package-ci-job: Add referenceType, loggingArtifactsName, and loggingPackageVersion parameters. When referenceType=Package, download Logging artifacts and pass ReferenceType + LoggingPackageVersion to dotnet pack buildProperties. - pack-azure-package-ci-job: Add loggingPackageVersion parameter. When referenceType=Package, pass ReferenceType + dependency versions to dotnet pack buildProperties. - Wire the new parameters through build-abstractions-package-ci-stage.yml and dotnet-sqlclient-ci-core.yml.
1 parent ff57e19 commit fd8cb4b

8 files changed

Lines changed: 180 additions & 44 deletions

Directory.Packages.props

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,29 +40,54 @@
4040
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
4141
</PropertyGroup>
4242

43+
<!--
44+
Compute version ceilings for sibling packages. The ceiling is the next major version
45+
(prerelease suffix stripped) derived from the *floor* (XxxPackageVersion), giving a range
46+
like [1.1.0-preview1-ci123, 2.0.0). This prevents NuGet from resolving an incompatible
47+
newer major version while allowing minor/patch updates within the same major.
48+
49+
Because the ceiling is derived from the floor, no separate NextVersion lookup is needed
50+
here — the range is self-contained regardless of what pipeline or developer scenario
51+
computed the floor.
52+
-->
53+
<PropertyGroup>
54+
<!-- SNI version (external package, version declared once here) -->
55+
<SniVersion>6.0.2</SniVersion>
56+
<SniVersionRange>[$(SniVersion), $([MSBuild]::Add($(SniVersion.Split('.')[0]), 1)).0.0)</SniVersionRange>
57+
</PropertyGroup>
58+
59+
<PropertyGroup Condition="'$(ReferenceType)' == 'Package'">
60+
<SqlServerVersionCeiling>$([MSBuild]::Add($(SqlServerPackageVersion.Trim().Split('.')[0]), 1)).0.0</SqlServerVersionCeiling>
61+
<LoggingVersionCeiling>$([MSBuild]::Add($(LoggingPackageVersion.Trim().Split('.')[0]), 1)).0.0</LoggingVersionCeiling>
62+
<AbstractionsVersionCeiling>$([MSBuild]::Add($(AbstractionsPackageVersion.Trim().Split('.')[0]), 1)).0.0</AbstractionsVersionCeiling>
63+
<SqlClientVersionCeiling>$([MSBuild]::Add($(SqlClientPackageVersion.Trim().Split('.')[0]), 1)).0.0</SqlClientVersionCeiling>
64+
<AzureVersionCeiling>$([MSBuild]::Add($(AzurePackageVersion.Trim().Split('.')[0]), 1)).0.0</AzureVersionCeiling>
65+
<AkvProviderVersionCeiling>$([MSBuild]::Add($(AkvProviderPackageVersion.Trim().Split('.')[0]), 1)).0.0</AkvProviderVersionCeiling>
66+
</PropertyGroup>
67+
4368
<!-- ===================================================================== -->
4469
<!-- Driver Packages -->
4570

4671
<!-- The driver packages need version numbers when we build via Package references. -->
4772
<ItemGroup Condition="'$(ReferenceType)' == 'Package'">
4873
<PackageVersion
4974
Include="Microsoft.SqlServer.Server"
50-
Version="$(SqlServerPackageVersion)" />
75+
Version="[$(SqlServerPackageVersion), $(SqlServerVersionCeiling))" />
5176
<PackageVersion
5277
Include="Microsoft.Data.SqlClient.Internal.Logging"
53-
Version="$(LoggingPackageVersion)" />
78+
Version="[$(LoggingPackageVersion), $(LoggingVersionCeiling))" />
5479
<PackageVersion
5580
Include="Microsoft.Data.SqlClient.Extensions.Abstractions"
56-
Version="$(AbstractionsPackageVersion)" />
81+
Version="[$(AbstractionsPackageVersion), $(AbstractionsVersionCeiling))" />
5782
<PackageVersion
5883
Include="Microsoft.Data.SqlClient"
59-
Version="$(SqlClientPackageVersion)" />
84+
Version="[$(SqlClientPackageVersion), $(SqlClientVersionCeiling))" />
6085
<PackageVersion
6186
Include="Microsoft.Data.SqlClient.Extensions.Azure"
62-
Version="$(AzurePackageVersion)" />
87+
Version="[$(AzurePackageVersion), $(AzureVersionCeiling))" />
6388
<PackageVersion
6489
Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider"
65-
Version="$(AkvProviderPackageVersion)" />
90+
Version="[$(AkvProviderPackageVersion), $(AkvProviderVersionCeiling))" />
6691
</ItemGroup>
6792

6893
<!-- ===================================================================== -->
@@ -108,8 +133,8 @@
108133
<!-- SqlClient Dependencies -->
109134

110135
<ItemGroup>
111-
<PackageVersion Include="Microsoft.Data.SqlClient.SNI" Version="6.0.2" />
112-
<PackageVersion Include="Microsoft.Data.SqlClient.SNI.runtime" Version="6.0.2" />
136+
<PackageVersion Include="Microsoft.Data.SqlClient.SNI" Version="$(SniVersionRange)" />
137+
<PackageVersion Include="Microsoft.Data.SqlClient.SNI.runtime" Version="$(SniVersionRange)" />
113138
<PackageVersion Include="Microsoft.IdentityModel.JsonWebTokens" Version="8.16.0" />
114139
<PackageVersion Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.16.0" />
115140
<PackageVersion Include="System.Buffers" Version="4.6.1" />

eng/pipelines/dotnet-sqlclient-ci-core.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@ stages:
164164
buildConfiguration: ${{ parameters.buildConfiguration }}
165165
debug: ${{ parameters.debug }}
166166
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
167+
loggingArtifactsName: $(loggingArtifactsName)
168+
loggingPackageVersion: $(loggingPackageVersion)
169+
referenceType: ${{ parameters.referenceType }}
167170
# When building Abstractions via packages, we must depend on the Logging
168171
# package.
169172
${{ if eq(parameters.referenceType, 'Package') }}:

eng/pipelines/jobs/pack-abstractions-package-ci-job.yml

Lines changed: 58 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,30 @@ parameters:
5353
- detailed
5454
- diagnostic
5555

56+
# The name of the Logging pipeline artifacts to download.
57+
#
58+
# This is used when the referenceType is 'Package'.
59+
- name: loggingArtifactsName
60+
type: string
61+
default: Logging.Artifacts
62+
63+
# The Logging package version to depend on.
64+
#
65+
# This is used when the referenceType is 'Package'.
66+
- name: loggingPackageVersion
67+
type: string
68+
default: ''
69+
70+
# The C# project reference type to use when building and packing the packages.
71+
- name: referenceType
72+
type: string
73+
default: Project
74+
values:
75+
# Reference sibling packages as NuGet packages.
76+
- Package
77+
# Reference sibling packages as C# projects.
78+
- Project
79+
5680
jobs:
5781

5882
- job: pack_abstractions_package_job
@@ -102,21 +126,46 @@ jobs:
102126
- pwsh: 'Get-ChildItem Env: | Sort-Object Name'
103127
displayName: '[Debug] Print Environment Variables'
104128

129+
# For Package reference builds, we must first download the dependency
130+
# package artifacts.
131+
- ${{ if eq(parameters.referenceType, 'Package') }}:
132+
- task: DownloadPipelineArtifact@2
133+
displayName: Download Logging Package Artifacts
134+
inputs:
135+
artifactName: ${{ parameters.loggingArtifactsName }}
136+
targetPath: $(Build.SourcesDirectory)/packages
137+
105138
# Install the .NET SDK.
106139
- template: /eng/pipelines/common/steps/install-dotnet.yml@self
107140
parameters:
108141
debug: ${{ parameters.debug }}
109142

110143
# Create the NuGet packages.
111-
- task: DotNetCoreCLI@2
112-
displayName: Create NuGet Package
113-
inputs:
114-
command: pack
115-
packagesToPack: $(project)
116-
configurationToPack: ${{ parameters.buildConfiguration }}
117-
packDirectory: $(dotnetPackagesDir)
118-
verbosityToPack: ${{ parameters.dotnetVerbosity }}
119-
buildProperties: AbstractionsPackageVersion=${{ parameters.abstractionsPackageVersion }};AbstractionsAssemblyFileVersion=${{ parameters.abstractionsAssemblyFileVersion }}
144+
#
145+
# When referenceType is Package, we must pass ReferenceType and the
146+
# dependency version so that Directory.Packages.props applies version
147+
# ranges to sibling package dependencies.
148+
- ${{ if eq(parameters.referenceType, 'Package') }}:
149+
- task: DotNetCoreCLI@2
150+
displayName: Create NuGet Package
151+
inputs:
152+
command: pack
153+
packagesToPack: $(project)
154+
configurationToPack: ${{ parameters.buildConfiguration }}
155+
packDirectory: $(dotnetPackagesDir)
156+
verbosityToPack: ${{ parameters.dotnetVerbosity }}
157+
buildProperties: AbstractionsPackageVersion=${{ parameters.abstractionsPackageVersion }};AbstractionsAssemblyFileVersion=${{ parameters.abstractionsAssemblyFileVersion }};ReferenceType=Package;LoggingPackageVersion=${{ parameters.loggingPackageVersion }}
158+
159+
- ${{ else }}:
160+
- task: DotNetCoreCLI@2
161+
displayName: Create NuGet Package
162+
inputs:
163+
command: pack
164+
packagesToPack: $(project)
165+
configurationToPack: ${{ parameters.buildConfiguration }}
166+
packDirectory: $(dotnetPackagesDir)
167+
verbosityToPack: ${{ parameters.dotnetVerbosity }}
168+
buildProperties: AbstractionsPackageVersion=${{ parameters.abstractionsPackageVersion }};AbstractionsAssemblyFileVersion=${{ parameters.abstractionsAssemblyFileVersion }}
120169

121170
# Publish the NuGet packages as a named pipeline artifact.
122171
- task: PublishPipelineArtifact@1

eng/pipelines/jobs/pack-azure-package-ci-job.yml

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,19 @@ parameters:
2626
type: string
2727
default: Logging.Artifacts
2828

29-
# The Abstractions package verion to depend on.
29+
# The Abstractions package version to depend on.
3030
#
3131
# This is used when the referenceType is 'Package'.
3232
- name: abstractionsPackageVersion
3333
type: string
3434

35+
# The Logging package version to depend on.
36+
#
37+
# This is used when the referenceType is 'Package'.
38+
- name: loggingPackageVersion
39+
type: string
40+
default: ''
41+
3542
# The name of the pipeline artifacts to publish.
3643
- name: azureArtifactsName
3744
type: string
@@ -151,15 +158,31 @@ jobs:
151158
debug: ${{ parameters.debug }}
152159

153160
# Create the NuGet packages.
154-
- task: DotNetCoreCLI@2
155-
displayName: Create NuGet Package
156-
inputs:
157-
command: pack
158-
packagesToPack: $(project)
159-
configurationToPack: ${{ parameters.buildConfiguration }}
160-
packDirectory: $(dotnetPackagesDir)
161-
verbosityToPack: ${{ parameters.dotnetVerbosity }}
162-
buildProperties: AzurePackageVersion=${{ parameters.azurePackageVersion }};AzureAssemblyFileVersion=${{ parameters.azureAssemblyFileVersion }}
161+
#
162+
# When referenceType is Package, we must pass ReferenceType and the
163+
# dependency versions so that Directory.Packages.props applies version
164+
# ranges to sibling package dependencies.
165+
- ${{ if eq(parameters.referenceType, 'Package') }}:
166+
- task: DotNetCoreCLI@2
167+
displayName: Create NuGet Package
168+
inputs:
169+
command: pack
170+
packagesToPack: $(project)
171+
configurationToPack: ${{ parameters.buildConfiguration }}
172+
packDirectory: $(dotnetPackagesDir)
173+
verbosityToPack: ${{ parameters.dotnetVerbosity }}
174+
buildProperties: AzurePackageVersion=${{ parameters.azurePackageVersion }};AzureAssemblyFileVersion=${{ parameters.azureAssemblyFileVersion }};ReferenceType=Package;LoggingPackageVersion=${{ parameters.loggingPackageVersion }};AbstractionsPackageVersion=${{ parameters.abstractionsPackageVersion }}
175+
176+
- ${{ else }}:
177+
- task: DotNetCoreCLI@2
178+
displayName: Create NuGet Package
179+
inputs:
180+
command: pack
181+
packagesToPack: $(project)
182+
configurationToPack: ${{ parameters.buildConfiguration }}
183+
packDirectory: $(dotnetPackagesDir)
184+
verbosityToPack: ${{ parameters.dotnetVerbosity }}
185+
buildProperties: AzurePackageVersion=${{ parameters.azurePackageVersion }};AzureAssemblyFileVersion=${{ parameters.azureAssemblyFileVersion }}
163186

164187
# Publish the NuGet packages as a named pipeline artifact.
165188
- task: PublishPipelineArtifact@1

eng/pipelines/stages/build-abstractions-package-ci-stage.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,30 @@ parameters:
6767
- detailed
6868
- diagnostic
6969

70+
# The name of the Logging pipeline artifacts to download.
71+
#
72+
# This is used when the referenceType is 'Package'.
73+
- name: loggingArtifactsName
74+
type: string
75+
default: Logging.Artifacts
76+
77+
# The Logging package version to depend on.
78+
#
79+
# This is used when the referenceType is 'Package'.
80+
- name: loggingPackageVersion
81+
type: string
82+
default: ''
83+
84+
# The C# project reference type to use when building and packing the packages.
85+
- name: referenceType
86+
type: string
87+
default: Project
88+
values:
89+
# Reference sibling packages as NuGet packages.
90+
- Package
91+
# Reference sibling packages as C# projects.
92+
- Project
93+
7094
stages:
7195

7296
- stage: build_abstractions_package_stage
@@ -141,3 +165,6 @@ stages:
141165
- test_abstractions_package_job_windows
142166
- test_abstractions_package_job_macos
143167
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
168+
loggingArtifactsName: ${{ parameters.loggingArtifactsName }}
169+
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
170+
referenceType: ${{ parameters.referenceType }}

eng/pipelines/stages/build-azure-package-ci-stage.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,4 +331,6 @@ stages:
331331
- test_azure_package_job_windows_integration
332332
- test_azure_package_job_macos
333333
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
334+
loggingArtifactsName: ${{ parameters.loggingArtifactsName }}
335+
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
334336
referenceType: ${{ parameters.referenceType }}

src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,9 +207,16 @@
207207
<Error Condition="'$(_SqlServerPackageVersionTrimmed)' == ''"
208208
Text="SqlServerPackageVersion is required for SqlClient packaging. When packing via build.proj, set -p:PackageVersionSqlServer=&lt;version&gt;; when packing the project directly, set -p:SqlServerPackageVersion=&lt;version&gt;; otherwise ensure the SqlServer Versions.props import can resolve a value." />
209209

210-
<!-- Expand the SqlClientPackNuspec template with the computed package versions. -->
210+
<!-- Expand the SqlClientPackNuspec template with computed version ranges. -->
211211
<PropertyGroup>
212-
<_SqlClientPackNuspecExpandedText>$([System.IO.File]::ReadAllText('$(SqlClientPackNuspecTemplatePath)').Replace('$AbstractionsPackageVersion$','$(AbstractionsPackageVersion)').Replace('$LoggingPackageVersion$','$(LoggingPackageVersion)').Replace('$SqlServerPackageVersion$','$(SqlServerPackageVersion)'))</_SqlClientPackNuspecExpandedText>
212+
<!-- Compute version ranges: [floor, (floor.Major+1).0.0) — ceiling derived from floor.
213+
Use trimmed values to guard against whitespace passed via -p: arguments. -->
214+
<_AbstractionsVersionRange>[$(_AbstractionsPackageVersionTrimmed), $([MSBuild]::Add($(_AbstractionsPackageVersionTrimmed.Split('.')[0]), 1)).0.0)</_AbstractionsVersionRange>
215+
<_LoggingVersionRange>[$(_LoggingPackageVersionTrimmed), $([MSBuild]::Add($(_LoggingPackageVersionTrimmed.Split('.')[0]), 1)).0.0)</_LoggingVersionRange>
216+
<_SqlServerVersionRange>[$(_SqlServerPackageVersionTrimmed), $([MSBuild]::Add($(_SqlServerPackageVersionTrimmed.Split('.')[0]), 1)).0.0)</_SqlServerVersionRange>
217+
</PropertyGroup>
218+
<PropertyGroup>
219+
<_SqlClientPackNuspecExpandedText>$([System.IO.File]::ReadAllText('$(SqlClientPackNuspecTemplatePath)').Replace('$AbstractionsVersionRange$','$(_AbstractionsVersionRange)').Replace('$LoggingVersionRange$','$(_LoggingVersionRange)').Replace('$SqlServerVersionRange$','$(_SqlServerVersionRange)').Replace('$SniVersionRange$','$(SniVersionRange)'))</_SqlClientPackNuspecExpandedText>
213220
</PropertyGroup>
214221
<WriteLinesToFile File="$(SqlClientPackNuspecGeneratedPath)"
215222
Lines="$(_SqlClientPackNuspecExpandedText)"

src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.nuspec

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@
3838
<group targetFramework="net462">
3939
<dependency id="Microsoft.Bcl.Cryptography" version="8.0.0" />
4040
<dependency id="Microsoft.Bcl.TimeProvider" version="8.0.1" />
41-
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsPackageVersion$" />
42-
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingPackageVersion$" />
43-
<dependency id="Microsoft.Data.SqlClient.SNI" version="6.0.2" />
41+
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsVersionRange$" />
42+
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingVersionRange$" />
43+
<dependency id="Microsoft.Data.SqlClient.SNI" version="$SniVersionRange$" />
4444
<dependency id="Microsoft.Extensions.Caching.Memory" version="8.0.1" exclude="Compile" />
4545
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="8.16.0" />
4646
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="8.16.0" />
@@ -56,38 +56,38 @@
5656
</group>
5757
<group targetFramework="net8.0">
5858
<dependency id="Microsoft.Bcl.Cryptography" version="8.0.0" />
59-
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsPackageVersion$" />
60-
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingPackageVersion$" />
61-
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="6.0.2" exclude="Compile" />
59+
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsVersionRange$" />
60+
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingVersionRange$" />
61+
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="$SniVersionRange$" exclude="Compile" />
6262
<dependency id="Microsoft.Extensions.Caching.Memory" version="8.0.1" exclude="Compile" />
6363
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="8.16.0" />
6464
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="8.16.0" />
65-
<dependency id="Microsoft.SqlServer.Server" version="$SqlServerPackageVersion$" />
65+
<dependency id="Microsoft.SqlServer.Server" version="$SqlServerVersionRange$" />
6666
<dependency id="System.Configuration.ConfigurationManager" version="8.0.1" exclude="Compile" />
6767
<dependency id="System.Security.Cryptography.Pkcs" version="8.0.1" />
6868
</group>
6969
<group targetFramework="net9.0">
7070
<dependency id="Microsoft.Bcl.Cryptography" version="9.0.13" />
71-
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsPackageVersion$" />
72-
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingPackageVersion$" />
73-
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="6.0.2" exclude="Compile" />
71+
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsVersionRange$" />
72+
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingVersionRange$" />
73+
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="$SniVersionRange$" exclude="Compile" />
7474
<dependency id="Microsoft.Extensions.Caching.Memory" version="9.0.13" exclude="Compile" />
7575
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="8.16.0" />
7676
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="8.16.0" />
77-
<dependency id="Microsoft.SqlServer.Server" version="$SqlServerPackageVersion$" />
77+
<dependency id="Microsoft.SqlServer.Server" version="$SqlServerVersionRange$" />
7878
<dependency id="System.Configuration.ConfigurationManager" version="9.0.13" exclude="Compile" />
7979
<dependency id="System.Security.Cryptography.Pkcs" version="9.0.13" />
8080
</group>
8181
<group targetFramework="netstandard2.0">
8282
<dependency id="Microsoft.Bcl.Cryptography" version="8.0.0" />
8383
<dependency id="Microsoft.Bcl.TimeProvider" version="8.0.1" />
84-
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsPackageVersion$" />
85-
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingPackageVersion$" />
86-
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="6.0.2" exclude="Compile" />
84+
<dependency id="Microsoft.Data.SqlClient.Extensions.Abstractions" version="$AbstractionsVersionRange$" />
85+
<dependency id="Microsoft.Data.SqlClient.Internal.Logging" version="$LoggingVersionRange$" />
86+
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="$SniVersionRange$" exclude="Compile" />
8787
<dependency id="Microsoft.Extensions.Caching.Memory" version="8.0.1" exclude="Compile" />
8888
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="8.16.0" />
8989
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="8.16.0" />
90-
<dependency id="Microsoft.SqlServer.Server" version="$SqlServerPackageVersion$" />
90+
<dependency id="Microsoft.SqlServer.Server" version="$SqlServerVersionRange$" />
9191
<dependency id="System.Configuration.ConfigurationManager" version="8.0.1" exclude="Compile" />
9292
<dependency id="System.Security.Cryptography.Pkcs" version="8.0.1" />
9393
<dependency id="System.Text.Json" version="10.0.3" />

0 commit comments

Comments
 (0)