【发布时间】:2013-09-25 17:52:11
【问题描述】:
我有一个 VS 2012 解决方案,其中包括一个 SSDT 项目 (sqlproj) 和一个 MVC Web 应用程序。我已经设置了许多用于部署 Web 应用程序的配置文件,现在想使用 dbdacfx(或其他什么?)来部署由 SSDT 项目生成的 dacpac。我已经测试了 dacpac 本身,它可以完美运行。然而,弄清楚如何将两者结合起来是难以捉摸的。我见过的使用 Web 部署部署增量数据库更改的每个示例似乎都需要一个数据库实例 - 我如何让它使用我现有的 dacpac?
希望我问的是正确的问题:)
谢谢!
【问题讨论】:
-
您是否考虑过设置发布配置文件并使用 SQLPackage 推送增量更改?
-
我已经在 web 应用程序和 sql 项目中设置了多个配置文件,我可以使用 VS 中的“发布”选项为每个项目发布所有配置文件。至于 SQLPackage,您的意思是从命令行调用它还是以某种方式使 Web 应用程序中的发布配置文件使用 SQLPackage?对不起,这对我来说有点新。
-
我指的是从命令行调用 SQLPackage。我不太确定您的网络应用程序部署代码的幕后发生了什么,所以不确定这是否是一个可行的选择。
-
最终不得不编写一个 powershell 脚本来适应使用 msdeploy 和 dbdacfx 的 db 安装。我可以通过 UI 或直接在 .pubxml 中将 dacpac 添加到发布配置文件,它会被复制到目标机器。但是,dbdacfx 提供程序根本找不到该文件,并且在执行时会出错。似乎 web deploy 并不意味着安装任意 dacpac。我花了几个星期在谷歌上搜索,发现几乎没有任何用处。我不回答这个问题,希望有人看到它并有更好的答案。
-
我没有尝试使用 dacfx 代码,但可能像 Procmon 这样的东西可以帮助您找出它在哪里寻找 dacpac 文件。需要调查的信息可能很多,但我在使用它之前发现了那些对丢失文件夹/文件的调用。 live.sysinternals.com
标签: msbuild msdeploy sql-server-data-tools sqlproj