diff --git a/extensions/sql-database-projects/src/dialogs/addDatabaseReferenceQuickpick.ts b/extensions/sql-database-projects/src/dialogs/addDatabaseReferenceQuickpick.ts index 84d974dba6..b89317c753 100644 --- a/extensions/sql-database-projects/src/dialogs/addDatabaseReferenceQuickpick.ts +++ b/extensions/sql-database-projects/src/dialogs/addDatabaseReferenceQuickpick.ts @@ -116,16 +116,27 @@ async function addSystemDatabaseReference(project: Project): Promise { + let referenceType = SystemDbReferenceType.ArtifactReference; + if (project.sqlProjStyle === ProjectType.SdkStyle) { + const referenceTypeString = await vscode.window.showQuickPick( + [constants.packageReference, constants.artifactReference], + { title: constants.referenceTypeRadioButtonsGroupTitle, ignoreFocusOut: true } + ); + + if (referenceTypeString === undefined) { // need to check for specifically undefined here because the enum SystemDbReferenceType.ArtifactReference evaluates to 0 + return undefined; + } + + referenceType = referenceTypeString === constants.packageReference ? SystemDbReferenceType.PackageReference : SystemDbReferenceType.ArtifactReference; + } + + return referenceType; +} diff --git a/extensions/sql-database-projects/src/models/project.ts b/extensions/sql-database-projects/src/models/project.ts index bcff915026..1a205e87e4 100644 --- a/extensions/sql-database-projects/src/models/project.ts +++ b/extensions/sql-database-projects/src/models/project.ts @@ -838,8 +838,9 @@ export class Project implements ISqlProject { result = await sqlProjService.addSystemDatabaseReference(this.projectFilePath, systemDb, settings.suppressMissingDependenciesErrors, referenceType, settings.databaseVariableLiteralValue); } else { systemDb = settings.systemDb as vscodeMssql.SystemDatabase; + referenceType = settings.systemDbReferenceType as vscodeMssql.SystemDbReferenceType; sqlProjService = this.sqlProjService as vscodeMssql.ISqlProjectsService; - result = await sqlProjService.addSystemDatabaseReference(this.projectFilePath, systemDb, settings.suppressMissingDependenciesErrors, settings.databaseVariableLiteralValue); + result = await sqlProjService.addSystemDatabaseReference(this.projectFilePath, systemDb, settings.suppressMissingDependenciesErrors, referenceType, settings.databaseVariableLiteralValue); } if (!result.success && result.errorMessage) { diff --git a/extensions/types/vscode-mssql.d.ts b/extensions/types/vscode-mssql.d.ts index 29268e52c5..4e2c166450 100644 --- a/extensions/types/vscode-mssql.d.ts +++ b/extensions/types/vscode-mssql.d.ts @@ -482,9 +482,10 @@ declare module 'vscode-mssql' { * @param projectUri Absolute path of the project, including .sqlproj * @param systemDatabase Type of system database * @param suppressMissingDependencies Whether to suppress missing dependencies + * @param referenceType Type of reference - ArtifactReference or PackageReference * @param databaseLiteral Literal name used to reference another database in the same server, if not using SQLCMD variables */ - addSystemDatabaseReference(projectUri: string, systemDatabase: SystemDatabase, suppressMissingDependencies: boolean, databaseLiteral?: string): Promise; + addSystemDatabaseReference(projectUri: string, systemDatabase: SystemDatabase, suppressMissingDependencies: boolean, referenceType: SystemDbReferenceType, databaseLiteral?: string): Promise; /** * Add a nuget package database reference to a project @@ -1112,7 +1113,7 @@ declare module 'vscode-mssql' { packageFilePath: string; databaseName: string; upgradeExisting: boolean; - sqlCommandVariableValues?: Map; + sqlCommandVariableValues?: Record; deploymentOptions?: DeploymentOptions; ownerUri: string; taskExecutionMode: TaskExecutionMode; @@ -1121,7 +1122,7 @@ declare module 'vscode-mssql' { export interface GenerateDeployScriptParams { packageFilePath: string; databaseName: string; - sqlCommandVariableValues?: Map; + sqlCommandVariableValues?: Record; deploymentOptions?: DeploymentOptions; ownerUri: string; taskExecutionMode: TaskExecutionMode; @@ -1153,7 +1154,7 @@ declare module 'vscode-mssql' { profilePath: string; databaseName: string; connectionString: string; - sqlCommandVariableValues?: Map; + sqlCommandVariableValues?: Record; deploymentOptions?: DeploymentOptions; } @@ -1209,6 +1210,11 @@ declare module 'vscode-mssql' { * Type of system database */ systemDatabase: SystemDatabase; + + /** + * Type of reference - ArtifactReference or PackageReference + */ + referenceType: SystemDbReferenceType; } export interface AddNugetPackageReferenceParams extends AddUserDatabaseReferenceParams { @@ -1249,6 +1255,13 @@ declare module 'vscode-mssql' { path: string; } + export interface MoveFolderParams extends FolderParams { + /** + * Path of the folder, typically relative to the .sqlproj file + */ + destinationPath: string; + } + export interface CreateSqlProjectParams extends SqlProjectParams { /** * Type of SQL Project: SDK-style or Legacy