【问题标题】:How to create/open DAC application in Visual Studio 2012?如何在 Visual Studio 2012 中创建/打开 DAC 应用程序?
【发布时间】:2013-12-27 16:42:58
【问题描述】:

我很难弄清楚如何使用 Visual Studio 2012 实际创建甚至打开 DAC 应用程序。我使用的是 SQL Server 2012。我安装了 SSDT。

从 Visual Studio 创建:

根据在线文档,我应该能够看到一个名为“数据层应用程序”的项目模板,但我看到的只是 SQL Server 数据库项目。他们是一样的吗?

从 SSMS 创建:

在一个在线视频中,演示者正在使用 SSMS -> 数据库 -> 右键单击​​ -> 创建项目菜单项,然后在向导之后弹出一个 VS 项目。我没有这个菜单项,我有的是任务-> 导出为数据层应用程序。这会创建 DACPAC 文件,但不会创建 VS 项目,我无法弄清楚如何从 VS 打开 dacpac。

【问题讨论】:

    标签: sql-server visual-studio dac


    【解决方案1】:

    DACPAC 的目的是提供数据库架构的可移植表示,可用于将该架构部署到数据库,将其导入 Visual Studio 中的数据库项目,并用于 Schema Compare 等功能检查不同来源之间的差异。每当您在 Visual Studio 中构建数据库项目时,都会生成一个 .dacpac 文件,然后可以使用该文件将该项目中定义的架构部署到数据库。

    完整信息的最佳位置是SSDT help,但我会给你一个简短的总结。

    如果你已经有一个DACPAC,你可以在VS中通过以下方式使用它:

    • 通过右键单击解决方案资源管理器中的项目并选择“导入 -> 数据层应用程序 (*.dacpac)”,将架构导入项目。然后选择你的 dacpac,内容将被转换成 SQL Scripts 并添加到项目中
    • 通过打开 SQL Server 对象资源管理器、导航到服务器、右键单击数据库并选择“发布数据层应用程序...”将 dacpac 发布到数据库。这会将 DACPAC 的内容发布到数据库在那台服务器上。您可以通过右键单击“数据库”列表中的数据库来更新数据库。请注意,如果 SQL Server 对象资源管理器视图未打开,您可以选择“查看 -> SQL Server 对象资源管理器”以确保它出现。

    要在 Visual Studio 中创建 DACPAC,您可以

    • 构建一个项目。这会在 bin\Debug 目录中创建一个 dacpac(假设您在 Debug 模式下构建)。
    • 快照项目。这将创建一个 dacpac 并将其保存在项目中。跟踪数据库架构的时间点版本并将以前版本的数据库与最新定义进行比较非常有用。
    • 在 SQL Server 对象资源管理器中右键单击数据库并选择“提取数据层应用程序...”这将创建一个代表数据库内容的 dacpac。

    最后,我不确定您观看的是什么视频,但他们可能显示右键单击 SQL Server 对象资源管理器中的数据库并从那里创建项目。这是使用数据库项目开始开发的一种非常常见的方式,因为通常您已经拥有一个包含您的模式的数据库。通常,最佳实践是使用项目进行开发,并在部署到不同环境(例如生产服务器)时使用 dacpacs(可能还有命令行部署工具,如 SqlPackage.exe)(同样,dacpacs 非常适合传输模式定义和部署它们不同的环境)。希望这有助于回答您的问题!

    【讨论】:

    • 谢谢,这让我走上了正轨。只是碰巧没有图表编辑器/实体设计器支持?
    • “构建一个项目”,有没有一种方法可以使用命令行工具,就像使用 SQLPackage 部署 dacpac 一样?
    • @Davos 您可以使用 MSBuild 从命令行构建 .sqlproj 文件。或者,您可以使用一组几乎完整的公共 API 来自己执行此操作(例如,对于给定的脚本目录,构建具有完整验证、错误处理等的 dacpac)。请参阅github.com/Microsoft/DACExtensions 以获取一组示例来展示如何执行此操作。我们不提供支持此功能的 exe,但您自己设置一个非常简单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 2012-09-17
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多