diff --git a/.gitignore b/.gitignore
index 0d8dfed6d5..da143d57ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -376,3 +376,6 @@ MigrationBackup/
# MDS "Not Supported" GenAPI code
**/notsupported/*.cs
+
+# C# language server cache
+*.lscache
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 62918f7d65..37b72ca205 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -1,4 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
true
-
-
-
-
-
-
-
-
+
+
-
+
diff --git a/build.proj b/build.proj
index 971cfb12fa..38f82aac7c 100644
--- a/build.proj
+++ b/build.proj
@@ -1,5 +1,6 @@
+
@@ -208,12 +209,15 @@
ReferenceType
Applies to: BuildSqlClient, BuildSqlClientUnix, BuildSqlClientWindows
Description: Determines how to build SqlClient. If set to "Project", any cross-project
- references (eg, Abstractions from SqlClient) will be made as project references. If
- set to "Package", package references will be made instead. When running in
- package mode, target versions can be specified via PackageVersion* build
- parameters. If these are not provided, the central feed version will be used
- instead (see Directory.Packages.props). When running in project mode, the
- dependencies will be built automatically.
+ references (eg, Abstractions from SqlClient) will be made as project
+ references. If set to "Package", package references will be made instead. When
+ running in package mode, target versions can be specified via PackageVersion*
+ build parameters. If these are not provided, the central feed version will be
+ used instead (see Directory.Packages.props). In package mode, all Pack*
+ targets also mirror their .nupkg/.snupkg output into the local NuGet feed
+ directory (packages/) so that downstream builds in the same invocation can
+ restore them without a separate feed publish step. When running in project
+ mode, the dependencies will be built automatically.
Applies to: TestSqlClientFunctional, TestSqlClientManual
Description: Determines whether to test against a project reference or a package version
@@ -227,6 +231,19 @@
-p:ReferenceType=Package
+
+ false
+
+
+
+ -p:TestSigningKeyPath="$(TestSigningKeyPath)"
+
+
category!=failing&category!=flaky&category!=interactive
+
+ $(TestFilters)&category!=signed
--filter "$(TestFilters)"
@@ -370,6 +410,7 @@
$(SqlClientSrcRoot)src/Microsoft.Data.SqlClient.csproj
$(SqlClientSrcRoot)ref/Microsoft.Data.SqlClient.csproj
$(SqlClientSrcRoot)notsupported/Microsoft.Data.SqlClient.csproj
+ $(SqlClientArtifactRoot)$(ReferenceType)-$(Configuration)/
$(SqlClientSrcRoot)tests/FunctionalTests/Microsoft.Data.SqlClient.FunctionalTests.csproj
@@ -390,7 +431,10 @@
PlatformNotSupportedException. It generates the source for this using GenAPI which is built as
the first step of this target.
-->
-
+
+ PackLogging;PackAbstractions;PackSqlServer
+
+
"$(DotnetPath)dotnet" build "$(GenApiProjectPath)"
@@ -424,6 +468,7 @@
$(ReferenceTypeArgument)
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
@@ -434,7 +479,10 @@
-
+
+ PackLogging;PackAbstractions;PackSqlServer
+
+
"$(DotnetPath)dotnet" build $(SqlClientRefProjectPath)
@@ -449,6 +497,7 @@
$(ReferenceTypeArgument)
$(PackageVersionAbstractionsArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
@@ -459,7 +508,10 @@
-
+
+ PackLogging;PackAbstractions;PackSqlServer
+
+
"$(DotnetPath)dotnet" build $(SqlClientProjectPath)
@@ -476,6 +528,7 @@
$(ReferenceTypeArgument)
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
@@ -486,7 +539,10 @@
-
+
+ PackLogging;PackAbstractions;PackSqlServer
+
+
"$(DotnetPath)dotnet" build $(SqlClientProjectPath)
@@ -503,6 +559,7 @@
$(ReferenceTypeArgument)
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
@@ -545,15 +602,27 @@
$(ReferenceTypeArgument)
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
+ $(PackageVersionSqlServerArgument)
- -p:PackageOutputPath="$(SqlClientArtifactRoot)/$(ReferenceType)-$(Configuration)"
+ -p:PackageOutputPath="$(SqlClientPackageArtifactRoot)"
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
+
+
+
+
+
+
+
@@ -582,6 +651,7 @@
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
$(PackageVersionSqlClientArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
@@ -613,6 +683,7 @@
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
$(PackageVersionSqlClientArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
@@ -624,10 +695,6 @@
-
SqlClientUnit-$(OS)
$(LogFilePrefix)-$(TestFramework)
@@ -638,6 +705,10 @@
$(TestCodeCoverageArgument)
$(TestFiltersArgument)
$(TestFrameworkArgument)
+ $(ReferenceTypeArgument)
+ $(TestSigningKeyPathArgument)
+ $(PackageVersionSqlClientArgument)
+ $(PackageVersionSqlServerArgument)
--results-directory "$(TestResultsFolderPath)"
--logger:"trx;LogFilePrefix=$(LogFilePrefix)"
@@ -650,14 +721,18 @@
-
+
$(RepoRoot)src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/
$(AkvProviderSrcRoot)src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
+ $(RepoRoot)artifacts/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/$(Configuration)/
-
-
+
+
+ PackSqlClient;PackLogging
+
+
"$(DotnetPath)dotnet" build "$(AkvProviderProjectPath)"
@@ -674,12 +749,13 @@
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
$(PackageVersionSqlClientArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
-
+
@@ -687,7 +763,7 @@
- "$(DotnetPath)dotnet" pack "$(AkvProviderProjectpath)"
+ "$(DotnetPath)dotnet" pack "$(AkvProviderProjectPath)"
-p:Configuration=$(Configuration)
$(PackBuildArgument)
$(SigningKeyPathArgument)
@@ -702,25 +778,42 @@
$(PackageVersionAbstractionsArgument)
$(PackageVersionLoggingArgument)
$(PackageVersionSqlClientArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
-
+
+
+
+
+
+
+
+
+
$(RepoRoot)src/Microsoft.Data.SqlClient.Extensions/Abstractions/
$(AbstractionsSrcRoot)src/Abstractions.csproj
$(AbstractionsSrcRoot)test/Abstractions.Test.csproj
+ $(RepoRoot)artifacts/Microsoft.Data.SqlClient.Extensions.Abstractions/$(Configuration)/
-
+
+ PackLogging
+
+
"$(DotnetPath)dotnet" build "$(AbstractionsProjectPath)"
@@ -768,6 +861,17 @@
+
+
+
+
+
+
+
@@ -775,7 +879,7 @@
AbstractionsTests-$(OS)
$(LogFilePrefix)-$(TestFramework)
@@ -804,10 +908,14 @@
$(RepoRoot)src/Microsoft.Data.SqlClient.Extensions/Azure/
$(AzureSrcRoot)src/Azure.csproj
$(AzureSrcRoot)test/Azure.Test.csproj
+ $(RepoRoot)artifacts/Microsoft.Data.SqlClient.Extensions.Azure/$(Configuration)/
-
+
+ PackLogging;PackAbstractions
+
+
"$(DotnetPath)dotnet" build "$(AzureProjectPath)"
@@ -855,6 +963,17 @@
+
+
+
+
+
+
+
@@ -875,14 +994,16 @@
$(ReferenceTypeArgument)
-
+ $(PackageVersionAbstractionsArgument)
+ $(PackageVersionLoggingArgument)
$(PackageVersionSqlClientArgument)
+ $(PackageVersionSqlServerArgument)
$([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " "))
-
+
@@ -891,6 +1012,7 @@
$(RepoRoot)src/Microsoft.Data.SqlClient.Internal/Logging/src/
$(LoggingSrcRoot)Logging.csproj
+ $(RepoRoot)artifacts/Microsoft.Data.SqlClient.Internal.Logging/$(Configuration)/
@@ -934,6 +1056,17 @@
+
+
+
+
+
+
+
@@ -941,6 +1074,7 @@
$(RepoRoot)src/Microsoft.SqlServer.Server/
$(SqlServerSrcRoot)Microsoft.SqlServer.Server.csproj
+ $(RepoRoot)artifacts/Microsoft.SqlServer.Server/$(Configuration)/
@@ -984,5 +1118,16 @@
+
+
+
+
+
+
+
diff --git a/doc/Directory.Packages.props b/doc/Directory.Packages.props
index 2ead6c1757..d47f7e01b9 100644
--- a/doc/Directory.Packages.props
+++ b/doc/Directory.Packages.props
@@ -6,5 +6,6 @@
+
diff --git a/doc/samples/Microsoft.Data.SqlClient.Samples.csproj b/doc/samples/Microsoft.Data.SqlClient.Samples.csproj
index c194fac4d0..44a153f6f2 100644
--- a/doc/samples/Microsoft.Data.SqlClient.Samples.csproj
+++ b/doc/samples/Microsoft.Data.SqlClient.Samples.csproj
@@ -10,14 +10,19 @@
False
+
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/eng/pipelines/ci/package/sqlclient-package.yml b/eng/pipelines/ci/package/sqlclient-package.yml
new file mode 100644
index 0000000000..c907fd0219
--- /dev/null
+++ b/eng/pipelines/ci/package/sqlclient-package.yml
@@ -0,0 +1,169 @@
+#################################################################################
+# Licensed to the .NET Foundation under one or more agreements. #
+# The .NET Foundation licenses this file to you under the MIT license. #
+# See the LICENSE file in the project root for more information. #
+#################################################################################
+
+# This pipeline builds all packages using the build.proj Pack target with ReferenceType=Package,
+# then publishes the resulting .nupkg and .snupkg files as a single pipeline artifact.
+#
+# It runs:
+# - On pushes to GitHub main and ADO internal/main (batched)
+# - Nightly at 00:00 UTC on both branches
+#
+# On internal/main the strong-name signing key is downloaded and used to sign assemblies during the
+# build.
+#
+# GOTCHA: This pipeline definition is triggered by GitHub _and_ ADO CI. We distinguish the two via
+# branch filters:
+#
+# - Only the GitHub repo has a 'main' branch.
+# - Only the ADO repo has an 'internal/main' branch.
+
+name: $(DayOfYear)$(Rev:rr)
+
+# Do not trigger this pipeline for PRs.
+pr: none
+
+# Trigger on pushes to main and internal/main, batching concurrent commits.
+trigger:
+ batch: true
+ branches:
+ include:
+ - main
+ - internal/main
+
+# Nightly schedule at 00:00 UTC.
+schedules:
+ - cron: '0 0 * * *'
+ displayName: Nightly Build
+ branches:
+ include:
+ - main
+ - internal/main
+ always: true
+
+# Pipeline parameters visible in the Azure DevOps UI.
+parameters:
+
+ # The agent image to use for the build. This must exist in both the ADO-1ES-Pool and
+ # ADO-CI-1ES-Pool agent pools.
+ - name: agentImage
+ displayName: Agent Image
+ type: string
+ default: ADO-UB24
+ values:
+ - ADO-UB24
+ - ADO-Win25
+
+ # The build configuration to use, either Debug or Release.
+ - name: buildConfiguration
+ displayName: Build Configuration
+ type: string
+ default: Release
+ values:
+ - Debug
+ - Release
+
+ # True to enable debug steps and output.
+ - name: debug
+ displayName: Enable debug output
+ type: boolean
+ default: false
+
+ # The verbosity level of dotnet CLI commands.
+ - name: dotnetVerbosity
+ displayName: dotnet CLI Verbosity
+ type: string
+ default: normal
+ values:
+ - quiet
+ - minimal
+ - normal
+ - detailed
+ - diagnostic
+
+variables:
+ # Whether this is an internal (ADO.Net project) or public (Public project) build.
+ - name: isInternalBuild
+ value: ${{ eq(variables['System.TeamProject'], 'ADO.Net') }}
+
+ # Signing key argument passed to build.proj. On internal builds this references the secure file
+ # downloaded by DownloadSecureFile@1; on public builds it expands to empty.
+ - name: signingKeyArg
+ ${{ if eq(variables.isInternalBuild, true) }}:
+ value: '-p:SigningKeyPath="$(keyFile.secureFilePath)"'
+ ${{ else }}:
+ value: ''
+
+jobs:
+ - job: pack_all_packages
+ displayName: Pack All Packages
+
+ pool:
+ ${{ if eq(variables.isInternalBuild, true) }}:
+ name: ADO-1ES-Pool
+ ${{ else }}:
+ name: ADO-CI-1ES-Pool
+ demands:
+ - ImageOverride -equals ${{ parameters.agentImage }}
+
+ steps:
+
+ # Emit environment variables if debug is enabled.
+ - ${{ if eq(parameters.debug, true) }}:
+ - pwsh: |
+ Get-ChildItem Env: | Sort-Object Name | Format-Table -AutoSize -Wrap
+ displayName: '[Debug] Print Environment Variables'
+
+ # Install the .NET SDK from global.json.
+ - template: /eng/pipelines/steps/install-dotnet.yml@self
+ parameters:
+ debug: ${{ parameters.debug }}
+
+ # Clean any pre-existing .nupkg / .snupkg files from the packages/ directory
+ # to ensure we only publish packages produced by this run.
+ - pwsh: |
+ Write-Host 'Cleaning packages/ directory...'
+ Remove-Item -Force "$(Build.SourcesDirectory)/packages/*.nupkg" -ErrorAction SilentlyContinue
+ Remove-Item -Force "$(Build.SourcesDirectory)/packages/*.snupkg" -ErrorAction SilentlyContinue
+ Write-Host 'Done.'
+ displayName: Clean packages/ directory
+
+ # On internal builds, download the strong-name signing key.
+ - ${{ if eq(variables.isInternalBuild, true) }}:
+ - task: DownloadSecureFile@1
+ displayName: Download Signing Key
+ inputs:
+ secureFile: netfxKeypair.snk
+ name: keyFile
+
+ # Run the Pack target via build.proj.
+ - task: DotNetCoreCLI@2
+ displayName: build.proj - Pack (ReferenceType=Package)
+ inputs:
+ command: build
+ projects: '$(Build.SourcesDirectory)/build.proj'
+ arguments: >-
+ -t:Pack
+ -p:Configuration=${{ parameters.buildConfiguration }}
+ -p:ReferenceType=Package
+ -p:BuildNumber="$(Build.BuildNumber)"
+ -p:BuildSuffix=ci
+ $(signingKeyArg)
+ --verbosity ${{ parameters.dotnetVerbosity }}
+
+ # List produced packages for diagnostics.
+ - pwsh: |
+ Write-Host 'Packages produced:'
+ Get-ChildItem "$(Build.SourcesDirectory)/packages/*.nupkg" -ErrorAction SilentlyContinue | Format-Table Name, Length -AutoSize -Wrap
+ Get-ChildItem "$(Build.SourcesDirectory)/packages/*.snupkg" -ErrorAction SilentlyContinue | Format-Table Name, Length -AutoSize -Wrap
+ displayName: List produced packages
+
+ # Publish all .nupkg and .snupkg files from packages/ as a pipeline artifact.
+ - task: PublishPipelineArtifact@1
+ displayName: Publish NuGet Packages
+ inputs:
+ targetPath: '$(Build.SourcesDirectory)/packages'
+ artifactName: Packages
+ publishLocation: pipeline
diff --git a/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml b/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml
index 8d051e5167..e9c3ad7c64 100644
--- a/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml
+++ b/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml
@@ -77,6 +77,16 @@ parameters:
- name: akvPackageVersion
type: string
+ # The version of the SqlServer package to depend on when referenceType is 'Package'.
+ - name: sqlServerPackageVersion
+ type: string
+ default: $(sqlServerPackageVersion)
+
+ # The name of the SqlServer pipeline artifact to download when referenceType is 'Package'.
+ - name: sqlServerArtifactsName
+ type: string
+ default: SqlServer.Artifacts
+
jobs:
- job: build_mds_akv_packages_job
displayName: Build MDS & AKV Packages
@@ -115,6 +125,12 @@ jobs:
artifactName: ${{ parameters.loggingArtifactsName }}
targetPath: $(localFeedPath)
+ - task: DownloadPipelineArtifact@2
+ displayName: Download SqlServer Package Artifacts
+ inputs:
+ artifactName: ${{ parameters.sqlServerArtifactsName }}
+ targetPath: $(localFeedPath)
+
# Install the .NET SDK.
- template: /eng/pipelines/steps/install-dotnet.yml@self
@@ -139,6 +155,7 @@ jobs:
build: MDS
abstractionsPackageVersion: ${{parameters.abstractionsPackageVersion}}
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
- task: DotNetCoreCLI@2
displayName: 'Create MDS NuGet Package'
@@ -153,6 +170,7 @@ jobs:
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
# PackSqlClient outputs to artifacts/Microsoft.Data.SqlClient/-/.
# Downstream steps (local feed copy, AKV pack, artifact publish) all expect packages at
@@ -184,6 +202,7 @@ jobs:
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
akvPackageVersion: ${{ parameters.akvPackageVersion }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
- task: DotNetCoreCLI@2
displayName: 'Create AKV Provider NuGet Package'
@@ -199,6 +218,7 @@ jobs:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:PackageVersionAkvProvider=${{ parameters.akvPackageVersion }}
- task: CopyFiles@2
diff --git a/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml b/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml
index 5c593e11e3..8b79bf7274 100644
--- a/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml
+++ b/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml
@@ -88,6 +88,16 @@ parameters:
- name: mdsPackageVersion
type: string
+ # The name of the SqlServer pipeline artifact to download when referenceType is 'Package'.
+ - name: sqlServerArtifactsName
+ type: string
+ default: SqlServer.Artifacts
+
+ # The version of the SqlServer package to depend on when referenceType is 'Package'.
+ - name: sqlServerPackageVersion
+ type: string
+ default: $(sqlServerPackageVersion)
+
# TODO: What is this for?
- name: netcoreVersionTestUtils
type: string
@@ -194,6 +204,12 @@ jobs:
artifactName: ${{ parameters.mdsArtifactsName }}
targetPath: $(Build.SourcesDirectory)/packages
+ - task: DownloadPipelineArtifact@2
+ displayName: Download SqlServer Package Artifacts
+ inputs:
+ artifactName: ${{ parameters.sqlServerArtifactsName }}
+ targetPath: $(Build.SourcesDirectory)/packages
+
# Install the .NET SDK and Runtimes.
- template: /eng/pipelines/steps/install-dotnet.yml@self
parameters:
@@ -364,6 +380,7 @@ jobs:
abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }}
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
- ${{ if and(eq(parameters.enableX86Test, true), eq(parameters.operatingSystem, 'Windows')) }}:
- template: /eng/pipelines/common/templates/steps/run-all-tests-step.yml@self
@@ -379,6 +396,7 @@ jobs:
abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }}
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
- template: /eng/pipelines/common/templates/steps/publish-test-results-step.yml@self
parameters:
diff --git a/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml b/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml
index fd87d7d9ac..86ddc0ca45 100644
--- a/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml
+++ b/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml
@@ -50,6 +50,16 @@ parameters:
- name: mdsPackageVersion
type: string
+ # The name of the SqlServer pipeline artifacts to download.
+ - name: sqlServerArtifactsName
+ type: string
+ default: SqlServer.Artifacts
+
+ # The version of the SqlServer package to depend on when referenceType is 'Package'.
+ - name: sqlServerPackageVersion
+ type: string
+ default: $(sqlServerPackageVersion)
+
# Jobs to run after the test jobs complete, if any.
- name: postTestJobs
type: jobList
@@ -114,6 +124,8 @@ stages:
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
prebuildSteps: ${{ parameters.prebuildSteps }}
targetFramework: ${{ targetFramework }}
netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }}
@@ -150,6 +162,8 @@ stages:
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
prebuildSteps: ${{ parameters.prebuildSteps }}
targetFramework: ${{ targetFramework }}
netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }}
diff --git a/eng/pipelines/common/templates/steps/ci-project-build-step.yml b/eng/pipelines/common/templates/steps/ci-project-build-step.yml
index fe46ad66a2..e5fa6d4424 100644
--- a/eng/pipelines/common/templates/steps/ci-project-build-step.yml
+++ b/eng/pipelines/common/templates/steps/ci-project-build-step.yml
@@ -68,6 +68,11 @@ parameters:
type: string
default: $(akvPackageVersion)
+ # Necessary when referenceType is Package. Ignored when referenceType is Project.
+ - name: sqlServerPackageVersion
+ type: string
+ default: $(sqlServerPackageVersion)
+
steps:
# Build MDS
- ${{ if or(eq(parameters.build, 'MDS'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}:
@@ -85,6 +90,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
# Build AKV Provider
- ${{ if or(eq(parameters.build, 'AkvProvider'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}:
@@ -103,3 +109,4 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
diff --git a/eng/pipelines/common/templates/steps/run-all-tests-step.yml b/eng/pipelines/common/templates/steps/run-all-tests-step.yml
index cf3ce206a4..e41c7d22b2 100644
--- a/eng/pipelines/common/templates/steps/run-all-tests-step.yml
+++ b/eng/pipelines/common/templates/steps/run-all-tests-step.yml
@@ -22,6 +22,9 @@ parameters:
- name: mdsPackageVersion
type: string
+ - name: sqlServerPackageVersion
+ type: string
+
- name: platform
type: string
default: $(Platform)
@@ -76,51 +79,62 @@ steps:
condition: succeededOrFailed()
- ${{if eq(parameters.operatingSystem, 'Windows')}}:
- - ${{if eq(parameters.referenceType, 'Project')}}:
- - task: DotNetCoreCLI@2
- displayName: 'Run Unit Tests ${{parameters.msbuildArchitecture }}'
- condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
- inputs:
- command: build
- projects: build.proj
- ${{ if eq(parameters.msbuildArchitecture, 'x64') }}:
- arguments: >-
- -t:TestSqlClientUnit
- -p:TestFramework=${{ parameters.targetFramework }}
- -p:Configuration=${{ parameters.buildConfiguration }}
- -p:TestResultsFolderPath=TestResults
- ${{ else }}: # x86
- arguments: >-
- -t:TestSqlClientUnit
- -p:TestFramework=${{ parameters.targetFramework }}
- -p:Configuration=${{ parameters.buildConfiguration }}
- -p:DotnetPath=${{ parameters.dotnetx86RootPath }}
- -p:TestResultsFolderPath=TestResults
+ - task: DotNetCoreCLI@2
+ displayName: 'Run Unit Tests ${{parameters.msbuildArchitecture }}'
+ condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
+ inputs:
+ command: build
+ projects: build.proj
+ ${{ if eq(parameters.msbuildArchitecture, 'x64') }}:
+ arguments: >-
+ -t:TestSqlClientUnit
+ -p:TestFramework=${{ parameters.targetFramework }}
+ -p:ReferenceType=${{ parameters.referenceType }}
+ -p:Configuration=${{ parameters.buildConfiguration }}
+ -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
+ -p:TestResultsFolderPath=TestResults
+ ${{ else }}: # x86
+ arguments: >-
+ -t:TestSqlClientUnit
+ -p:TestFramework=${{ parameters.targetFramework }}
+ -p:ReferenceType=${{ parameters.referenceType }}
+ -p:Configuration=${{ parameters.buildConfiguration }}
+ -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
+ -p:DotnetPath=${{ parameters.dotnetx86RootPath }}
+ -p:TestResultsFolderPath=TestResults
- - task: DotNetCoreCLI@2
- displayName: 'Run Flaky Unit Tests ${{parameters.msbuildArchitecture }}'
- condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
- inputs:
- command: build
- projects: build.proj
- ${{ if eq(parameters.msbuildArchitecture, 'x64') }}:
- arguments: >-
- -t:TestSqlClientUnit
- -p:TestFramework=${{ parameters.targetFramework }}
- -p:Configuration=${{ parameters.buildConfiguration }}
- -p:TestFilters="category=flaky"
- -p:TestResultsFolderPath=TestResults
- -p:TestCodeCoverage=false
- ${{ else }}: # x86
- arguments: >-
- -t:TestSqlClientUnit
- -p:TestFramework=${{ parameters.targetFramework }}
- -p:Configuration=${{ parameters.buildConfiguration }}
- -p:DotnetPath=${{ parameters.dotnetx86RootPath }}
- -p:TestFilters="category=flaky"
- -p:TestResultsFolderPath=TestResults
- -p:TestCodeCoverage=false
- continueOnError: true
+ - task: DotNetCoreCLI@2
+ displayName: 'Run Flaky Unit Tests ${{parameters.msbuildArchitecture }}'
+ condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
+ inputs:
+ command: build
+ projects: build.proj
+ ${{ if eq(parameters.msbuildArchitecture, 'x64') }}:
+ arguments: >-
+ -t:TestSqlClientUnit
+ -p:TestFramework=${{ parameters.targetFramework }}
+ -p:ReferenceType=${{ parameters.referenceType }}
+ -p:Configuration=${{ parameters.buildConfiguration }}
+ -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
+ -p:TestFilters="category=flaky"
+ -p:TestResultsFolderPath=TestResults
+ -p:TestCodeCoverage=false
+ ${{ else }}: # x86
+ arguments: >-
+ -t:TestSqlClientUnit
+ -p:TestFramework=${{ parameters.targetFramework }}
+ -p:ReferenceType=${{ parameters.referenceType }}
+ -p:Configuration=${{ parameters.buildConfiguration }}
+ -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
+ -p:DotnetPath=${{ parameters.dotnetx86RootPath }}
+ -p:TestFilters="category=flaky"
+ -p:TestResultsFolderPath=TestResults
+ -p:TestCodeCoverage=false
+ continueOnError: true
- task: DotNetCoreCLI@2
displayName: 'Run Functional Tests ${{parameters.msbuildArchitecture }}'
@@ -137,6 +151,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
${{ else }}: # x86
arguments: >-
@@ -147,6 +162,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestResultsFolderPath=TestResults
@@ -165,6 +181,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
-p:TestCodeCoverage=false
@@ -177,6 +194,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
@@ -199,6 +217,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
${{ else }}: # x86
arguments: >-
@@ -210,6 +229,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestResultsFolderPath=TestResults
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
@@ -230,6 +250,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
-p:TestCodeCoverage=false
@@ -243,6 +264,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
@@ -250,33 +272,38 @@ steps:
continueOnError: true
- ${{ else }}: # Linux or macOS
- - ${{if eq(parameters.referenceType, 'Project')}}:
- - task: DotNetCoreCLI@2
- displayName: 'Run Unit Tests'
- condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
- inputs:
- command: build
- projects: build.proj
- arguments: >-
- -t:TestSqlClientUnit
- -p:TestFramework=${{ parameters.targetFramework }}
- -p:Configuration=${{ parameters.buildConfiguration }}
- -p:TestResultsFolderPath=TestResults
+ - task: DotNetCoreCLI@2
+ displayName: 'Run Unit Tests'
+ condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
+ inputs:
+ command: build
+ projects: build.proj
+ arguments: >-
+ -t:TestSqlClientUnit
+ -p:TestFramework=${{ parameters.targetFramework }}
+ -p:ReferenceType=${{ parameters.referenceType }}
+ -p:Configuration=${{ parameters.buildConfiguration }}
+ -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
+ -p:TestResultsFolderPath=TestResults
- - task: DotNetCoreCLI@2
- displayName: 'Run Flaky Unit Tests'
- condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
- inputs:
- command: build
- projects: build.proj
- arguments: >-
- -t:TestSqlClientUnit
- -p:TestFramework=${{ parameters.targetFramework }}
- -p:Configuration=${{ parameters.buildConfiguration }}
- -p:TestFilters="category=flaky"
- -p:TestResultsFolderPath=TestResults
- -p:TestCodeCoverage=false
- continueOnError: true
+ - task: DotNetCoreCLI@2
+ displayName: 'Run Flaky Unit Tests'
+ condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed())
+ inputs:
+ command: build
+ projects: build.proj
+ arguments: >-
+ -t:TestSqlClientUnit
+ -p:TestFramework=${{ parameters.targetFramework }}
+ -p:ReferenceType=${{ parameters.referenceType }}
+ -p:Configuration=${{ parameters.buildConfiguration }}
+ -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
+ -p:TestFilters="category=flaky"
+ -p:TestResultsFolderPath=TestResults
+ -p:TestCodeCoverage=false
+ continueOnError: true
- task: DotNetCoreCLI@2
displayName: 'Run Functional Tests'
@@ -292,6 +319,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
- task: DotNetCoreCLI@2
@@ -308,6 +336,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
-p:TestCodeCoverage=false
@@ -327,6 +356,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
@@ -345,6 +375,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
+ -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
-p:TestCodeCoverage=false
diff --git a/eng/pipelines/dotnet-sqlclient-ci-core.yml b/eng/pipelines/dotnet-sqlclient-ci-core.yml
index c8181aff5a..f5f2269494 100644
--- a/eng/pipelines/dotnet-sqlclient-ci-core.yml
+++ b/eng/pipelines/dotnet-sqlclient-ci-core.yml
@@ -185,14 +185,17 @@ stages:
mdsPackageVersion: $(mdsPackageVersion)
akvPackageVersion: $(akvPackageVersion)
referenceType: ${{ parameters.referenceType }}
+ sqlServerArtifactsName: $(sqlServerArtifactsName)
+ sqlServerPackageVersion: $(sqlServerPackageVersion)
SNIVersion: ${{ parameters.SNIVersion }}
SNIValidationFeed: ${{ parameters.SNIValidationFeed }}
- # When building SqlClient via packages, we must depend on the Abstractions and Logging
- # packages.
+ # When building SqlClient via packages, we must depend on the Abstractions, Logging,
+ # and SqlServer packages.
${{ if eq(parameters.referenceType, 'Package') }}:
additionalDependsOn:
- build_abstractions_package_stage
- build_logging_package_stage
+ - build_sqlserver_package_stage
# Build the Azure package, and publish it to the pipeline artifacts under the
# given artifact name.
@@ -206,16 +209,21 @@ stages:
buildConfiguration: ${{ parameters.buildConfiguration }}
debug: ${{ parameters.debug }}
# When building via packages, we must depend on the Abstractions, Logging,
- # and MDS packages.
+ # SqlServer, and MDS packages.
${{ if eq(parameters.referenceType, 'Package') }}:
additionalDependsOn:
- build_abstractions_package_stage
- build_logging_package_stage
+ - build_sqlserver_package_stage
- build_sqlclient_package_stage
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
+ loggingArtifactsName: $(loggingArtifactsName)
+ loggingPackageVersion: $(loggingPackageVersion)
mdsArtifactsName: $(mdsArtifactsName)
mdsPackageVersion: $(mdsPackageVersion)
referenceType: ${{ parameters.referenceType }}
+ sqlServerArtifactsName: $(sqlServerArtifactsName)
+ sqlServerPackageVersion: $(sqlServerPackageVersion)
# Verify that all NuGet packages comply with Microsoft metadata requirements.
# This runs on a Windows agent after all packages have been built and
@@ -240,14 +248,17 @@ stages:
loggingPackageVersion: $(loggingPackageVersion)
mdsArtifactsName: $(mdsArtifactsName)
mdsPackageVersion: $(mdsPackageVersion)
+ sqlServerArtifactsName: $(sqlServerArtifactsName)
+ sqlServerPackageVersion: $(sqlServerPackageVersion)
testJobTimeout: ${{ parameters.testJobTimeout }}
# When testing MDS via packages, we must depend on the Abstractions,
- # Logging, MDS, and Azure packages.
+ # Logging, SqlServer, MDS, and Azure packages.
${{ if eq(parameters.referenceType, 'Package') }}:
additionalDependsOn:
- build_abstractions_package_stage
- build_logging_package_stage
+ - build_sqlserver_package_stage
- build_sqlclient_package_stage
- build_azure_package_stage
diff --git a/eng/pipelines/jobs/test-azure-package-ci-job.yml b/eng/pipelines/jobs/test-azure-package-ci-job.yml
index cd9b87e103..9c70433e33 100644
--- a/eng/pipelines/jobs/test-azure-package-ci-job.yml
+++ b/eng/pipelines/jobs/test-azure-package-ci-job.yml
@@ -26,6 +26,13 @@ parameters:
type: string
default: Logging.Artifacts
+ # The Logging package version to depend on.
+ #
+ # This is used when the referenceType is 'Package'.
+ - name: loggingPackageVersion
+ type: string
+ default: ''
+
# The Abstractions package verion to depend on.
#
# This is used when the referenceType is 'Package'.
@@ -79,6 +86,21 @@ parameters:
- name: mdsPackageVersion
type: string
+ # The name of the SqlServer pipeline artifacts to download.
+ #
+ # This is used when the referenceType is 'Package'. MDS depends on
+ # SqlServer.Server, so the package must be available for transitive restore.
+ - name: sqlServerArtifactsName
+ type: string
+ default: SqlServer.Artifacts
+
+ # The SqlServer package version to depend on.
+ #
+ # This is used when the referenceType is 'Package'.
+ - name: sqlServerPackageVersion
+ type: string
+ default: ''
+
# The list of .NET Framework runtimes to test against.
- name: netFrameworkRuntimes
type: object
@@ -153,7 +175,9 @@ jobs:
--verbosity ${{ parameters.dotnetVerbosity }}
-p:ReferenceType=${{ parameters.referenceType }}
-p:AbstractionsPackageVersion=${{ parameters.abstractionsPackageVersion }}
+ -p:LoggingPackageVersion=${{ parameters.loggingPackageVersion }}
-p:SqlClientPackageVersion=${{ parameters.mdsPackageVersion }}
+ -p:SqlServerPackageVersion=${{ parameters.sqlServerPackageVersion }}
# Explicitly unset the $PLATFORM environment variable that is set by the
# 'ADO Build properties' Library in the ADO SqlClientDrivers public
@@ -208,6 +232,16 @@ jobs:
artifactName: ${{ parameters.mdsArtifactsName }}
targetPath: $(Build.SourcesDirectory)/packages
+ # Download the SqlServer package artifacts into packages/.
+ #
+ # MDS depends on SqlServer.Server, so the package must be available for
+ # transitive restore.
+ - task: DownloadPipelineArtifact@2
+ displayName: Download SqlServer Package Artifacts
+ inputs:
+ artifactName: ${{ parameters.sqlServerArtifactsName }}
+ targetPath: $(Build.SourcesDirectory)/packages
+
# Install the .NET SDK and Runtimes.
- template: /eng/pipelines/steps/install-dotnet.yml@self
parameters:
diff --git a/eng/pipelines/libraries/ci-build-variables.yml b/eng/pipelines/libraries/ci-build-variables.yml
index 142e5e21fe..438b011fab 100644
--- a/eng/pipelines/libraries/ci-build-variables.yml
+++ b/eng/pipelines/libraries/ci-build-variables.yml
@@ -24,35 +24,35 @@ variables:
# Abstractions library assembly file version
- name: abstractionsAssemblyFileVersion
- value: 1.0.0.$(assemblyBuildNumber)
+ value: 1.1.0.$(assemblyBuildNumber)
# Abstractions library NuGet package version
- name: abstractionsPackageVersion
- value: 1.0.0-ci$(Build.BuildNumber)
+ value: 1.1.0-preview1ci$(Build.BuildNumber)
# AKV provider assembly file version
- name: akvAssemblyFileVersion
- value: 7.0.0.$(assemblyBuildNumber)
+ value: 7.1.0.$(assemblyBuildNumber)
# AKV provider NuGet package version
- name: akvPackageVersion
- value: 7.0.0-ci$(Build.BuildNumber)
+ value: 7.1.0-preview1ci$(Build.BuildNumber)
# Azure library assembly file version
- name: azureAssemblyFileVersion
- value: 1.0.0.$(assemblyBuildNumber)
+ value: 1.1.0.$(assemblyBuildNumber)
# Azure library NuGet package version
- name: azurePackageVersion
- value: 1.0.0-ci$(Build.BuildNumber)
+ value: 1.1.0-preview1ci$(Build.BuildNumber)
# Logging library assembly file version
- name: loggingAssemblyFileVersion
- value: 1.0.0.$(assemblyBuildNumber)
+ value: 1.1.0.$(assemblyBuildNumber)
# Logging library NuGet package version
- name: loggingPackageVersion
- value: 1.0.0-ci$(Build.BuildNumber)
+ value: 1.1.0-preview1ci$(Build.BuildNumber)
# MDS library NuGet package version
# NOTE: This differs from the other structures! MdsVersions.props will deconstruct a provided
@@ -66,7 +66,7 @@ variables:
# assembly build number, so this must remain a three-part SemVer base with a prerelease
# suffix, not a four-part numeric version.
- name: sqlServerPackageVersion
- value: 1.0.0-ci$(AssemblyBuildNumber)
+ value: 1.1.0-preview1ci$(AssemblyBuildNumber)
# Local NuGet feed directory where downloaded pipeline artifacts are placed.
# NuGet.config references this as a local package source for restore.
diff --git a/eng/pipelines/onebranch/stages/build-stages.yml b/eng/pipelines/onebranch/stages/build-stages.yml
index 096da7e949..62f26b7aa3 100644
--- a/eng/pipelines/onebranch/stages/build-stages.yml
+++ b/eng/pipelines/onebranch/stages/build-stages.yml
@@ -222,6 +222,9 @@ stages:
- artifactName: '${{ parameters.loggingArtifactsName }}'
shortName: 'Logging'
version: '${{ parameters.loggingPackageVersion }}'
+ - artifactName: '${{ parameters.sqlServerArtifactsName }}'
+ shortName: 'SqlServer'
+ version: '${{ parameters.sqlServerPackageVersion }}'
fileVersion: '${{ parameters.sqlClientFileVersion }}'
packageFullName: 'Microsoft.Data.SqlClient'
packageShortName: 'SqlClient'
@@ -284,6 +287,9 @@ stages:
- artifactName: '${{ parameters.sqlClientArtifactsName }}'
shortName: 'SqlClient'
version: '${{ parameters.sqlClientPackageVersion }}'
+ - artifactName: '${{ parameters.sqlServerArtifactsName }}'
+ shortName: 'SqlServer'
+ version: '${{ parameters.sqlServerPackageVersion }}'
fileVersion: '${{ parameters.akvProviderFileVersion }}'
packageFullName: 'Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider'
packageShortName: 'AkvProvider'
diff --git a/eng/pipelines/onebranch/steps/build-buildproj-step.yml b/eng/pipelines/onebranch/steps/build-buildproj-step.yml
index 9e02243537..080896ee10 100644
--- a/eng/pipelines/onebranch/steps/build-buildproj-step.yml
+++ b/eng/pipelines/onebranch/steps/build-buildproj-step.yml
@@ -56,6 +56,7 @@ steps:
-t:Build${{ parameters.packageShortName }}
-p:Configuration=${{ parameters.buildConfiguration }}
-p:ReferenceType=Package
+ -p:SkipDependencyPack=true
-p:SigningKeyPath="$(keyFile.secureFilePath)"
-p:BuildNumber="$(Build.BuildNumber)"
-p:PackageVersion${{ parameters.packageShortName }}="${{ parameters.packageVersion }}"
diff --git a/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml b/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml
index 1f7c22a554..89177f1d88 100644
--- a/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml
+++ b/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml
@@ -50,6 +50,7 @@ steps:
-t:Build${{ parameters.packageShortName }}
-p:Configuration=Release
-p:ReferenceType=Package
+ -p:SkipDependencyPack=true
-p:BuildNumber="$(Build.BuildNumber)"
-p:PackageVersion${{ parameters.packageShortName }}="${{ parameters.packageVersion }}"
${{ parameters.dependencyArguments }}
diff --git a/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml b/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml
index be7e2e9e3b..70a37e0fa7 100644
--- a/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml
+++ b/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml
@@ -51,6 +51,7 @@ pr:
- global.json
- NuGet.config
exclude:
+ - eng/pipelines/ci/*
- eng/pipelines/kerberos/*
- eng/pipelines/onebranch/*
- eng/pipelines/stress/*
diff --git a/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml b/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml
index 30950ec21c..f777626c90 100644
--- a/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml
+++ b/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml
@@ -51,6 +51,7 @@ pr:
- global.json
- NuGet.config
exclude:
+ - eng/pipelines/ci/*
- eng/pipelines/kerberos/*
- eng/pipelines/onebranch/*
- eng/pipelines/stress/*
diff --git a/eng/pipelines/stages/build-azure-package-ci-stage.yml b/eng/pipelines/stages/build-azure-package-ci-stage.yml
index 3b57ce8c3b..1da56a18ef 100644
--- a/eng/pipelines/stages/build-azure-package-ci-stage.yml
+++ b/eng/pipelines/stages/build-azure-package-ci-stage.yml
@@ -101,6 +101,20 @@ parameters:
- detailed
- diagnostic
+ # The name of the Logging pipeline artifacts to download.
+ #
+ # This is used when the referenceType is 'Package'.
+ - name: loggingArtifactsName
+ type: string
+ default: Logging.Artifacts
+
+ # The Logging package version to depend on.
+ #
+ # This is used when the referenceType is 'Package'.
+ - name: loggingPackageVersion
+ type: string
+ default: ''
+
# The name of the MDS pipeline artifacts to download.
#
# This is used when the referenceType is 'Package'.
@@ -114,6 +128,21 @@ parameters:
- name: mdsPackageVersion
type: string
+ # The name of the SqlServer pipeline artifacts to download.
+ #
+ # This is used when the referenceType is 'Package'. MDS depends on
+ # SqlServer.Server, so the package must be available for transitive restore.
+ - name: sqlServerArtifactsName
+ type: string
+ default: SqlServer.Artifacts
+
+ # The SqlServer package version to depend on.
+ #
+ # This is used when the referenceType is 'Package'.
+ - name: sqlServerPackageVersion
+ type: string
+ default: ''
+
# The C# project reference type to use when building and packing the packages.
- name: referenceType
type: string
@@ -152,8 +181,12 @@ stages:
displayNamePrefix: Linux
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
jobNameSuffix: linux
+ loggingArtifactsName: ${{ parameters.loggingArtifactsName }}
+ loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
netFrameworkRuntimes: []
netRuntimes: [net8.0, net9.0, net10.0]
poolName: ${{ parameters.azurePoolName }}
@@ -170,8 +203,12 @@ stages:
displayNamePrefix: Linux Integration
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
jobNameSuffix: linux_integration
+ loggingArtifactsName: ${{ parameters.loggingArtifactsName }}
+ loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
netFrameworkRuntimes: []
netRuntimes: [net8.0, net9.0, net10.0]
poolName: ${{ parameters.adoPoolName }}
@@ -197,8 +234,12 @@ stages:
displayNamePrefix: Win
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
jobNameSuffix: windows
+ loggingArtifactsName: ${{ parameters.loggingArtifactsName }}
+ loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
netFrameworkRuntimes: [net462]
netRuntimes: [net8.0, net9.0, net10.0]
poolName: ${{ parameters.azurePoolName }}
@@ -215,8 +256,12 @@ stages:
displayNamePrefix: Win Integration
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
jobNameSuffix: windows_integration
+ loggingArtifactsName: ${{ parameters.loggingArtifactsName }}
+ loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
netFrameworkRuntimes: [net462]
netRuntimes: [net8.0, net9.0, net10.0]
poolName: ${{ parameters.adoPoolName }}
@@ -251,8 +296,12 @@ stages:
displayNamePrefix: macOS
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
jobNameSuffix: macos
+ loggingArtifactsName: ${{ parameters.loggingArtifactsName }}
+ loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
netFrameworkRuntimes: []
netRuntimes: [net8.0, net9.0, net10.0]
poolName: ${{ parameters.azurePoolName }}
diff --git a/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml b/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml
index 57343a0006..858f1c8500 100644
--- a/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml
+++ b/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml
@@ -56,6 +56,16 @@ parameters:
- name: akvPackageVersion
type: string
+ # The name of the SqlServer pipeline artifacts to download.
+ - name: sqlServerArtifactsName
+ type: string
+ default: SqlServer.Artifacts
+
+ # The SqlServer package version.
+ - name: sqlServerPackageVersion
+ type: string
+ default: $(sqlServerPackageVersion)
+
# The C# project reference type to use when building and packing the packages.
- name: referenceType
type: string
@@ -97,6 +107,8 @@ stages:
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
akvPackageVersion: ${{ parameters.akvPackageVersion }}
+ sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
+ sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
${{ if ne(parameters.SNIVersion, '') }}:
prebuildSteps:
- template: /eng/pipelines/common/templates/steps/override-sni-version.yml@self
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index e760ebe9f3..f8ac03e168 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -35,7 +35,11 @@
-
+
+
$(AkvProviderAssemblyVersion)
$(AkvProviderFileVersion)
diff --git a/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props b/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props
index 31f85b7da4..dd9ddc03d5 100644
--- a/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props
+++ b/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props
@@ -13,13 +13,23 @@
NuGet package. It should be in the form: (Major).(Minor).(Patch)[-(Suffix)(BuildNumber)]
-->
+
+
+ true
+
+
- 7.0.0
+ 7.1.0-preview1
diff --git a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj
index 45acd55488..0a9d29aa1e 100644
--- a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj
+++ b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj
@@ -22,7 +22,10 @@
-
+
+
$(AbstractionsAssemblyVersion)
$(AbstractionsFileVersion)
@@ -71,9 +74,9 @@
+ Condition="'$(ReferenceType)' != 'Package'" />
+ Condition="'$(ReferenceType)' == 'Package'" />
diff --git a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props
index 14daeda570..cc6d4ca14a 100644
--- a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props
+++ b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props
@@ -13,6 +13,16 @@
naming. It must be in the form: (Major).0.0.0
-->
+
+
+ true
+
+
- 1.0.0
+ 1.1.0-preview1
diff --git a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj
index 423c55387f..dddf5673f9 100644
--- a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj
+++ b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj
@@ -22,7 +22,10 @@
-
+
+
$(AzureAssemblyVersion)
$(AzureFileVersion)
diff --git a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props
index 3c4bb9dfac..636face4e6 100644
--- a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props
+++ b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props
@@ -13,13 +13,23 @@
form: (Major).(Minor).(Patch).(BuildNumber)
-->
+
+
+ true
+
+
- 1.0.0
+ 1.1.0-preview1
diff --git a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj
index f8461d8b92..d1c3e0fc5c 100644
--- a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj
+++ b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj
@@ -24,7 +24,10 @@
-
+
+
$(LoggingAssemblyVersion)
$(LoggingFileVersion)
diff --git a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props
index eeb25b93ca..9d031d21d0 100644
--- a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props
+++ b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props
@@ -13,6 +13,16 @@
naming. It must be in the form: (Major).0.0.0
-->
+
+
+ true
+
+
- 1.0.0
+ 1.1.0-preview1
diff --git a/src/Microsoft.Data.SqlClient/Versions.props b/src/Microsoft.Data.SqlClient/Versions.props
index 2a915285b0..712263b73e 100644
--- a/src/Microsoft.Data.SqlClient/Versions.props
+++ b/src/Microsoft.Data.SqlClient/Versions.props
@@ -13,6 +13,16 @@
package. It should be in the form: (Major).(Minor).(Patch)[-(Suffix)(BuildNumber)]
-->
+
+
+ true
+
+
-
+
+
$(SqlClientAssemblyVersion)
$(SqlClientFileVersion)
@@ -112,9 +115,9 @@
+
+
+
+
+
@@ -156,7 +166,6 @@
-
@@ -170,7 +179,6 @@
-
diff --git a/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj
index 0b6282965d..fe871099e6 100644
--- a/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj
+++ b/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj
@@ -11,7 +11,10 @@
-
+
+
$(SqlClientAssemblyVersion)
$(SqlClientFileVersion)
@@ -79,6 +82,13 @@
+
+
+
+
+
@@ -112,7 +122,6 @@
-
@@ -124,7 +133,6 @@
-
diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj
index cd7fdb4b79..24c6a548f9 100644
--- a/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj
+++ b/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj
@@ -50,7 +50,10 @@
-
+
+
$(SqlClientAssemblyVersion)
$(SqlClientFileVersion)
@@ -59,13 +62,26 @@
-
+
+
<_Parameter1>UnitTests
+
+
+
+ <_Parameter1>UnitTests, PublicKey=00240000048000001401000006020000002400005253413100080000010001003D19684676DA365F331D00CE7BD4B8EF03E74102F39A5681B40622703D68F0298ECACECC723D3FFC1EA9365AF4958578550EA1EBEEC084B0B3757F3762449F5365E872802A4B548056760764FAD062BFEE81ED26183109AD46810E7E6E965419D0A10473680144D20C1BFE1027A5F586CA987523C06F5C126C44EA7D4F51EB023867A9F294315F95775ACEFD2D678186919458DFCCB4DE2E9F53AEFC766C7CBCEC474ED21C1616E5A9414D366D91D121C39F5FE6641295ADC058EF3FB10593BCDE2E82D9F217C2634909EEF496CD53AE78ABBEA572B871D72EBFC5378205950ABA97C7CCC2B9635D96933D5F9C9624D71FF53EE2094CF3A6BD38534D66E414B7
+
+
+
$(RepoRoot)artifacts/
@@ -87,6 +103,7 @@
$(RepoRoot)/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj
$(RepoRoot)/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props
$(RepoRoot)/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props
+ $(RepoRoot)/src/Microsoft.SqlServer.Server/Versions.props
@@ -129,13 +146,15 @@
+
+
<_AbstractionsPackageVersionTrimmed>$([System.String]::Copy('$(AbstractionsPackageVersion)').Trim())
<_LoggingPackageVersionTrimmed>$([System.String]::Copy('$(LoggingPackageVersion)').Trim())
+ <_SqlServerPackageVersionTrimmed>$([System.String]::Copy('$(SqlServerPackageVersion)').Trim())
-
+
- <_SqlClientPackNuspecExpandedText>$([System.IO.File]::ReadAllText('$(SqlClientPackNuspecTemplatePath)').Replace('$AbstractionsPackageVersion$','$(AbstractionsPackageVersion)').Replace('$LoggingPackageVersion$','$(LoggingPackageVersion)'))
+ <_SqlClientPackNuspecExpandedText>$([System.IO.File]::ReadAllText('$(SqlClientPackNuspecTemplatePath)').Replace('$AbstractionsPackageVersion$','$(AbstractionsPackageVersion)').Replace('$LoggingPackageVersion$','$(LoggingPackageVersion)').Replace('$SqlServerPackageVersion$','$(SqlServerPackageVersion)'))
-
+
@@ -73,7 +73,7 @@
-
+
@@ -85,7 +85,7 @@
-
+
diff --git a/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj b/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj
index 3f014f9fbe..548dd641f6 100644
--- a/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj
@@ -3,6 +3,7 @@
Microsoft.Data.SqlClient.TestCommon
Microsoft.Data.SqlClient.TestCommon
enable
+ enable
+
+
+ true
+ $(TestSigningKeyPath)
+
+
net8.0;net9.0;net10.0
@@ -25,7 +33,10 @@
-
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs
index 0576a64eba..b051f2cc26 100644
--- a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs
@@ -333,6 +333,9 @@ public void GetChar_ThrowsNotSupported()
}
[Theory]
+ #if NETFRAMEWORK
+ [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server
+ #endif
[MemberData(
nameof(GetUdtTypeTestData.Get),
MemberType = typeof(GetUdtTypeTestData),
@@ -350,7 +353,6 @@ public void GetUdt_ReturnsValue(Type udtType, object value, string serverTypeNam
Assert.Equal(value.ToString(), record.GetValue(0).ToString());
}
-
[Theory]
[MemberData(
nameof(GetXXXBadTypeTestData.Get),
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj
index 71d0f0b0cb..1145fa4790 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj
@@ -328,6 +328,13 @@
+
+
+
+
+
@@ -367,7 +374,6 @@
-
@@ -394,7 +400,6 @@
-
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs
index 3719a09328..b590a7c451 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs
@@ -35,6 +35,9 @@ public static class SqlServerTypesTest
// Synapse: Parse error at line: 1, column: 48: Incorrect syntax near 'hierarchyid'.
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ #if NETFRAMEWORK
+ [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server
+ #endif
public static void GetSchemaTableTest()
{
string db = new SqlConnectionStringBuilder(DataTestUtility.TCPConnectionString).InitialCatalog;
@@ -61,6 +64,9 @@ public static void GetSchemaTableTest()
// Synapse: Parse error at line: 1, column: 48: Incorrect syntax near 'hierarchyid'.
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ #if NETFRAMEWORK
+ [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server
+ #endif
public static void GetValueTest()
{
using (SqlConnection conn = new SqlConnection(DataTestUtility.TCPConnectionString))
@@ -219,6 +225,9 @@ void ActAndAssert(int index, string expectedHexString)
// Synapse: Parse error at line: 1, column: 41: Incorrect syntax near 'hierarchyid'.
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ #if NETFRAMEWORK
+ [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server
+ #endif
public static void TestUdtSchemaMetadata()
{
using (SqlConnection connection = new SqlConnection(DataTestUtility.TCPConnectionString))
@@ -373,6 +382,9 @@ private static string GetUdtName(Type udtClrType)
// Synapse: Parse error at line: 1, column: 8: Incorrect syntax near 'geometry'.
[ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))]
+ #if NETFRAMEWORK
+ [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server
+ #endif
public static void TestSqlServerTypesInsertAndRead()
{
string tableName = DataTestUtility.GetLongName("Type");
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj
index d481e4cca6..c98b9b3fae 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj
@@ -1,4 +1,4 @@
-
+
Address
Address
@@ -16,6 +16,9 @@
-
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj
index 6066c1c751..db53171c6e 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj
@@ -1,4 +1,4 @@
-
+
Circle
Circle
@@ -16,6 +16,9 @@
-
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj
index 67f26c9ae9..e115355bfe 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj
@@ -16,6 +16,9 @@
-
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj
index aa1dd19dd2..02e0193f82 100644
--- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj
@@ -16,6 +16,9 @@
-
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj b/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj
index 8c59d27572..b9f460d9a7 100644
--- a/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj
@@ -36,10 +36,50 @@
+
+
+
+ true
+ $(TestSigningKeyPath)
+
+
-
+
+
+
+
+
+
+ <_SqlClientRid Condition="'$(OS)' != 'Windows_NT'">unix
+ <_SqlClientRid Condition="'$(OS)' == 'Windows_NT'">win
+
+ <_SqlClientPackageTfm Condition="'$(TargetFramework)' == 'net8.0'">net8.0
+ <_SqlClientPackageTfm Condition="'$(TargetFramework)' == 'net462'">net462
+ <_SqlClientPackageTfm Condition="'$(_SqlClientPackageTfm)' == ''">net9.0
+
+
+
+
+
+
+
@@ -48,7 +88,6 @@
-
@@ -65,7 +104,6 @@
-
diff --git a/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj b/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj
index 083cca8a61..c50a251e4f 100644
--- a/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj
@@ -2,6 +2,14 @@
netstandard2.0
+
+
+
+
+ true
+ $(TestSigningKeyPath)
+
+
diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj
index 2e1a1b5c81..c9dce97ddb 100644
--- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj
@@ -3,6 +3,15 @@
Microsoft.SqlServer.TDS.EndPoint
Microsoft.SqlServer.TDS.EndPoint
netstandard2.0
+
+
+
+
+ true
+ $(TestSigningKeyPath)
+
+
+
false
diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj
index 57d3dfadd2..b6f33b0977 100644
--- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj
@@ -4,6 +4,12 @@
Microsoft.SqlServer.TDS.Servers
netstandard2.0
+
+
+
+ true
+ $(TestSigningKeyPath)
+
diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj
index a4da7c8b92..39d5aae2de 100644
--- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj
+++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj
@@ -4,4 +4,10 @@
Microsoft.SqlServer.TDS
netstandard2.0
+
+
+
+ true
+ $(TestSigningKeyPath)
+
diff --git a/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj b/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj
index ead90d9eac..a995fa13b9 100644
--- a/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj
+++ b/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj
@@ -6,7 +6,10 @@
-
+
+
$(SqlServerAssemblyVersion)
$(SqlServerFileVersion)
diff --git a/src/Microsoft.SqlServer.Server/Versions.props b/src/Microsoft.SqlServer.Server/Versions.props
index 0a342f9426..3615bd95a8 100644
--- a/src/Microsoft.SqlServer.Server/Versions.props
+++ b/src/Microsoft.SqlServer.Server/Versions.props
@@ -13,6 +13,16 @@
naming. It must be in the form: (Major).0.0.0
-->
+
+
+ true
+
+
- 1.0.0
+ 1.1.0-preview1