DacDeployOptions DeployeDatabaseInSingleUserMode 似乎没有效果

DacDeployOptions DeployeDatabaseInSingleUserMode seems to have no effect

我正在尝试使用 DacFx 进行部署,并且需要将数据库置于单用户模式,以便没有人(但 dac 更新上下文)可以更新数据库。

_deployOptions =  new DacDeployOptions
            {
                BlockOnPossibleDataLoss = false,
                IncludeCompositeObjects = true,
                IncludeTransactionalScripts = true,
                DropConstraintsNotInSource = deployConfig.DropConstraintsNotInSource,
                DropIndexesNotInSource = deployConfig.DropIndexesNotInSource,
                DropDmlTriggersNotInSource = false,
                DeployDatabaseInSingleUserMode = true
            };

DacServices.Deploy(dacpac, _dbName, true, _deployOptions);

部署过程(我已经确认)不会将数据库置于单用户模式;但是,如果我使用

 var script = DacServices.GenerateDeployScript(dacpac, _dbName, _deployOptions);

生成的脚本确实在开头设置了单用户,在结尾设置了多用户。是否有任何原因导致执行 Deploy 没有像预期的那样正确使用 DeployDatabaseInSingleUserMode 设置?在一天结束时,我只需要确保在此更新期间不会发生数据库更新 - 如果有其他方式(除了单用户),那么我愿意接受建议。

我也试过 generating\executing 脚本,但我担心脚本可能会变得太大(而且脚本中使用的 $(DatabaseName) 存在问题,这意味着我必须在实际执行之前对其进行按摩)。

关系问题: Publish dacpac in single user mode using Microsoft.SqlServer.Dac.DacServices

非常感谢。

这很简单 - 我的 SSDT(SQL 服务器数据工具)需要更新。更新到最新版本 (11.1.50717.0) 后,设置开始工作。