【问题标题】:VS2012 Automated Database deployment issue - .dacpac does not exist?VS2012 自动化数据库部署问题 - .dacpac 不存在?
【发布时间】:2015-06-24 05:15:31
【问题描述】:

我们正在尝试设置数据库项目的自动化部署,需要一些帮助。

我们正在使用 VS2012、TFS 2012 和 SQL server 2008 R2。 我们有一个包含所有项目的解决方案文件。 我们希望以设定的时间间隔构建和部署数据库项目 - 比如每晚。

我已经创建了有效的发布配置文件,但是当我安排构建定义时,我收到了这个错误:

C:\程序文件 (x86)\MSBuild\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets (1255): 文件“C:\Builds\1\projectName\Deploy Database\output\Binaries\Storage.SqlServer.dacpac" 不存在。

据我所知,构建机器和部署服务器都设置正确。

我该如何解决这个问题?我们没有我可以看到的 .dacpac 文件。

【问题讨论】:

  • 您确定我们正在构建您的数据库项目吗?是否设置为创建 dacpac?它是否在本地构建中构建一个?

标签: sql-server visual-studio-2012


【解决方案1】:

检查构建日志和构建服务器上的输出目录(例如 \project\bin\Debug 或 \project\bin\Release),以查看项目是否正在构建。如果尚未构建,请检查解决方案的配置属性,以确保为您的数据库项目检查了构建标志。

如果它正在构建但未输出,那么如果数据库项目上没有直接引用或依赖关系,则可能会发生这种情况。检查解决方案的 Project Dependencies 并确保为数据库项目检查 Depends on 标志。

如果数据库项目正在按预期构建但仍未部署,则解决方案的配置属性中还有一个部署标志可以解决此问题。

【讨论】:

    【解决方案2】:

    “我们没有我可以看到的 .dacpac 文件。” 猜测这就是为什么它会因为“文件”C:\Builds\1\projectName\Deploy Database\output\Binaries\Storage.SqlServer.dacpac“不存在而失败。”

    大概你需要一个更早的任务(例如) a) 从源代码管理中获取数据库定义, b) 根据定义创建一个数据库,然后 c) 您可以通过 sqlpackage.exe 自动创建 .dacpac(例如 here's a blog walkthough

    【讨论】:

      【解决方案3】:

      我今天刚碰到这个。我通过添加构建解决方案的构建任务来解决它。这会在部署命令查找它的 bin 文件夹中生成我的 dacpac 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-29
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        相关资源
        最近更新 更多