【发布时间】:2013-12-24 17:38:52
【问题描述】:
我需要澄清一下何时将数据库注册为数据层应用程序 (DAC)。我查看了所有指南,但有几点被卡住了。
- 数据库未注册
- 构建数据库项目以生产 DacPac
- 发布数据库项目
- 选中“注册为数据层应用程序”
- 选中“当数据库偏离注册版本时阻止发布”
第一次,这行得通。它注册数据库并成功。
但是,在随后的发布中失败了,因为它说数据库已经注意到两个没有改变的用户。
我是否遵循正确的流程?即设置发布脚本每次都重新注册?
进行更改的最佳做法是什么?通过更改数据库项目中的相关 .sql 文件然后构建?指南谈论了很多关于能够使用 DacPac 对 DB 进行版本控制的问题,但不清楚如何。我应该重命名每个 DacPac 并将其提交到 TFS 吗?
我的下一步是将数据库作为整体 ASP.Net 解决方案的一部分发布。当我尝试这样做时(不包括数据库发布时它工作正常),它会出现以下错误
Web deployment task failed. (The SQL provider cannot run with dacpac option because of a missing dependency. Please make sure that DacFx is installed. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_DACFX_NEEDED_FOR_SQL_PROVIDER.)
但是,我已在发布机器上安装了所有必需的元素。它们是否需要位于 SQL Server 或 IIS VM 上?
任何指导将不胜感激。
【问题讨论】:
-
拥有出版机器上的所有位就足够了。你能登录到那台机器来验证它是否工作吗?此外,看到“Web 部署”失败,您可能需要检查 IIS 以确保它拥有一切。我们一直在使用 Jenkins 进行发布,使用 SQLPackage 来完成这项工作,它似乎可以工作。
-
对于“漂移”问题,您可能需要仔细检查生成的脚本是否符合预期。我之前看到过由于额外或缺少括号或在对象名称周围使用 [] 而导致对象“需要”更改的问题。
标签: asp.net sql-server visual-studio visual-studio-2013 sql-server-data-tools