0

我目前正在尝试使用 TFS 2017 的 vNext 构建过程自动化我们的一个构建过程。

我有一个数据库解决方案作为系统的一部分,它包含两个数据库 db1 和 db2。db1 引用 db2 但 db2 什么也不引用。

db1 项目的构建后步骤使用 sqlpackage.exe 将其与先前构建的版本进行比较并生成更改脚本。其命令如下所示:

"sqlpackage.exe" /a:script /sf:"d:\Builds\1\a\db1\db1.dacpac" /tf:"d:\Builds\1\s\\Databases\Current Live Versions\db1.dacpac" /op:"d:\Builds\1\s\\bin\Release\Sql\db1.sql" /tdn:db1

从 Visual Studio 构建时,它工作正常,但是 TFS vNext 给出以下错误

EXEC(0,0): Error SQL0: The reference to external elements from the source named 'db2.dacpac' could not be resolved, because no such source is loaded.

我已将 Suppress Reference Warnings 设置为“True”,但没有任何效果。

任何人有任何想法如何解决这个问题?

4

1 回答 1

1

好的,我已经解决了..似乎引用文件的位置在 dacpacs 中使用了绝对路径而不是相对路径,但是因为构建用户无法访问 dacpac 的“当前实时版本”版本的目录是从中构建的它给出了这个错误......

一旦我授予 Build User 访问此文件夹的权限,它就一切正常。

于 2017-02-07T09:01:43.847 回答