2

以下是我的数据库项目中的确切场景,我正在创建 dacpac 以在目标 SQL 实例上部署数据库:

  • 数据库项目有 CLR 程序集的引用。
  • TFS构建服务器用于构建项目
  • dacpac 在 TFS 构建过程中被创建

– 当我尝试运行 sqlpackage.exe 以在我的环境中部署 dacpac(在 TFS 构建过程中生成)时,我收到一条错误消息 –</p>

*** 没有提供文件供参考 XXXX.XXXX.XXXX.dll;部署可能会失败。创建 C:\Temp\Dacpac_testing\XXX.XXXXX.XXXX.dacpac 时,原始引用文件位于 C:\BUILDS\1\XXXX\XXXX\SRC\XXXXXXXX\ASSEMBLIES\XXXX.XXXX.XXXX.dll

如何创建 dacpac 以引用部署环境中 CLR 程序集的路径(而不是在构建 dacpac 时使用的路径)

对此的任何帮助将不胜感激。

4

2 回答 2

1

对不起,我现在只选择了这个线程,但我遇到了类似的问题。打开 Sql Server 项目中的引用,转到您要引用的 dll 右键单击​​并选择属性。

更改以下设置: 生成 Sql 脚本:True 模型感知:True

根据 clr 代码的要求选择相关的权限集。

于 2015-06-17T09:44:08.243 回答
1

我能够通过将所有文件包含在由部署 dacpac 的机器上的 SSDT 项目构建的 bin/output 文件夹中来解决此问题。此文件夹包括所有引用的 DLL 和 DAPAC。我还在构建输出中包含了 publish.xml 文件和一些示例 SQLPackage cmd 文件,以便于部署。

我从 Richard Gavel 在 SQL Server Data Tools 论坛上的帖子中找到了答案。 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/aba60b70-396f-4624-890c-015c1f2d68f7/dacpac-dependencies-for-sqlpackageexe?forum=ssdt

我不知道这是否有帮助,但我在编译的 DACPAC 和提取的 DACPAC 之间运行 SqlPackage /Action:Script 时遇到了问题,并且出现了类似的错误(添加引用时发生错误)。我通过从我的 DACPAC 的 \bin\debug 目录中复制所有 DACPACS 来解决它(它大约引用了 15 个其他数据库项目以及 master 和 msdb)。在那之后,它奏效了。因此,似乎在查找引用时,它会首先检查目录(我不知道它是专门查看当前目录还是根 DACPAC 所在的目录,因为它们是相同的)。

于 2016-09-23T20:35:09.440 回答