我正在尝试编写一个 PowerShell 脚本来部署需要我编写的特定 DeploymentPlanExecutor 扩展的 DACPAC。该扩展实现了 OnApplyDeploymentConfiguration 和 OnExecute 的覆盖方法。
当我直接从 Visual Studio 2017 从数据库项目部署时,一切正常。但是,当我尝试使用 SqlPackage.exe 或使用 API 中的 DacServices 类部署使用扩展的 DACPAC 时,仅调用我的扩展的 OnApplyDeploymentConfiguration . 部署成功完成,无需调用 OnExecute 方法。
我安装了最新版本的 SSDT,并且正在 Visual Studio 2017 目录下的安装中运行 SqlPackage.exe。我的扩展安装在相同目录结构下的 Extensions 文件夹中。
我已经验证它是由它在 OnApplyDeploymentConfiguration 期间产生的输出消息以及通过附加调试器的断点加载的。我在 OnExecute 方法开头的断点永远不会被命中。