diff --git a/Packages.props b/Packages.props
index 2036741f..85b958c9 100644
--- a/Packages.props
+++ b/Packages.props
@@ -23,7 +23,7 @@
-
+
diff --git a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.20-alpha.nupkg b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.20-alpha.nupkg
deleted file mode 100644
index 7fb4eb03..00000000
Binary files a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.20-alpha.nupkg and /dev/null differ
diff --git a/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.37-alpha.nupkg b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.37-alpha.nupkg
new file mode 100644
index 00000000..31b87483
Binary files /dev/null and b/bin/nuget/Microsoft.SqlServer.DacFx.Projects.162.1.37-alpha.nupkg differ
diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs
index 2beb7ae8..eaa34d84 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/Contracts/DatabaseReferences/AddSystemDatabaseReference.cs
@@ -18,6 +18,11 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects.Contracts
/// Type of system database
///
public SystemDatabase SystemDatabase { get; set; }
+
+ ///
+ /// Type of reference - ArtifactReference or PackageReference
+ ///
+ public ReferenceType ReferenceType { get; set; }
}
///
diff --git a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs
index 64a26aaf..de85ca33 100644
--- a/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs
+++ b/src/Microsoft.SqlTools.ServiceLayer/SqlProjects/SqlProjectsService.cs
@@ -385,7 +385,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SqlProjects
new SystemDatabaseReference(
requestParams.SystemDatabase,
requestParams.SuppressMissingDependencies,
- requestParams.DatabaseLiteral)),
+ requestParams.DatabaseLiteral,
+ requestParams.ReferenceType)),
requestContext);
}
diff --git a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs
index 49f25868..6d659c5b 100644
--- a/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs
+++ b/test/Microsoft.SqlTools.ServiceLayer.IntegrationTests/SqlProjects/SqlProjectsServiceTests.cs
@@ -527,21 +527,40 @@ namespace Microsoft.SqlTools.ServiceLayer.IntegrationTests.SqlProjects
{
var (service, projectUri, _, _) = await SetUpDatabaseReferenceTest();
+ // Artifact reference
MockRequest requestMock = new();
await service.HandleAddSystemDatabaseReferenceRequest(new AddSystemDatabaseReferenceParams()
{
ProjectUri = projectUri,
SystemDatabase = SystemDatabase.MSDB,
DatabaseLiteral = "EmEssDeeBee",
- SuppressMissingDependencies = false
+ SuppressMissingDependencies = false,
+ ReferenceType = ReferenceType.ArtifactReference
}, requestMock.Object);
requestMock.AssertSuccess(nameof(service.HandleAddSystemDatabaseReferenceRequest));
- Assert.AreEqual(1, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference");
- SystemDatabaseReference systemDbRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.MSDB.ToString());
- Assert.AreEqual(SystemDatabase.MSDB, systemDbRef.SystemDb, "Referenced system DB");
- Assert.AreEqual("EmEssDeeBee", systemDbRef.DatabaseVariableLiteralName);
- Assert.IsFalse(systemDbRef.SuppressMissingDependencies, nameof(systemDbRef.SuppressMissingDependencies));
+ Assert.AreEqual(1, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference to msdb");
+ SystemDatabaseReference msdbRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.MSDB.ToString());
+ Assert.AreEqual(SystemDatabase.MSDB, msdbRef.SystemDb, "Referenced system DB");
+ Assert.AreEqual("EmEssDeeBee", msdbRef.DatabaseVariableLiteralName);
+ Assert.IsFalse(msdbRef.SuppressMissingDependencies, nameof(msdbRef.SuppressMissingDependencies));
+ Assert.AreEqual(ReferenceType.ArtifactReference, msdbRef.ReferenceType);
+
+ // Package reference
+ await service.HandleAddSystemDatabaseReferenceRequest(new AddSystemDatabaseReferenceParams()
+ {
+ ProjectUri = projectUri,
+ SystemDatabase = SystemDatabase.Master,
+ SuppressMissingDependencies = false,
+ ReferenceType = ReferenceType.PackageReference
+ }, requestMock.Object);
+
+ requestMock.AssertSuccess(nameof(service.HandleAddSystemDatabaseReferenceRequest));
+ Assert.AreEqual(2, service.Projects[projectUri].DatabaseReferences.Count, "Database references after adding system db reference to master");
+ SystemDatabaseReference masterRef = (SystemDatabaseReference)service.Projects[projectUri].DatabaseReferences.Get(SystemDatabase.Master.ToString());
+ Assert.AreEqual(SystemDatabase.Master, masterRef.SystemDb, "Referenced system DB");
+ Assert.IsFalse(masterRef.SuppressMissingDependencies, nameof(masterRef.SuppressMissingDependencies));
+ Assert.AreEqual(ReferenceType.PackageReference, masterRef.ReferenceType);
}
[Test]