数据库项目 - 输出 dacpac

Posted

技术标签:

【中文标题】数据库项目 - 输出 dacpac【英文标题】:Database Project - Output dacpac 【发布时间】:2016-03-17 20:20:21 【问题描述】:

我在同一个解决方案中有一个 WinForms 应用和数据库项目。

如何在 WinForms 输出目录中输出我的数据库项目的 dacpac?

我使用 Microsoft.SqlServer.Dac.dll 创建了一个例程来部署数据库。我需要在我的部署文件中发送什么才能在没有安装 DACFramework 的站点上正确使用此 dll?

【问题讨论】:

【参考方案1】:

您似乎有两个问题:

1 - 如何将 dacpac 复制到 winforms 应用程序的 bin 目录?

几种方法:

将 CopyFile msbuild 任务添加到 winforms 项目 编写一个脚本,以便在需要复制时运行 手动?

2 - 如果没有安装 DacFx,你如何使用它?

您可以从 dac\bin 文件夹中复制 dll,您还需要在 sql 安装的 sdk\assembly 文件夹中添加 Microsoft.SqlServer.TransactSql.ScriptDom.dll。

所以我机器上的路径是:

C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies

警告 microsoft 的 dll 通常没有被许可随意复制,因此如果您将它们分发给客户,您可能需要安装 DacFx.msi,但这是为您的律师:)

编辑

【讨论】:

相当肯定,当我由 SSDT 团队运行此程序时,他们说您可以使用安装程序,但这仍然比“您需要这台机器的 SQL Server 许可证”要好得多,即使它所做的只是构建或部署。 是的 kevin cunnane 之前确认您可以使用 license.txt github.com/Microsoft/DACExtensions/issues/… 复制 dll

以上是关于数据库项目 - 输出 dacpac的主要内容,如果未能解决你的问题,请参考以下文章

在发布期间忽略 Dacpac 快照选项

发布 dacpac(SSDT 数据库项目)时为数据库配置初始大小和自动增长大小的默认值

使用 c# 提高 dacpac 部署的性能

找不到文件 dacpac?

带有 dacpac 参考的 SSDT 未解析参考

如何在 DACPAC 部署中仅部署一组选定的存储过程?