0

我有两个数据库项目 DB_A 和 DB_B。项目 DB_A 引用 DB_B。

我通过指向 DB_B.dbschema 添加了一个数据库引用

C:\SourceParent\DB Projects\DB_B\sql\debug\DB_B.dbschema

当我在本地机器上构建项目 DB_A 时,它工作正常。

现在我想在我的 TFS 构建服务器上构建它,但我收到以下错误

File D:\Builds\SourceParent\Build_Name\DB_B\sql\debug\DB_B.dbschema does not exist

我的构建服务器上有一个 DB_B 构建,但它位于不同的路径(构建定义不一定与项目名称匹配)。

我想我可以在我的构建定义中添加一个构建事件来将 .dbschema 文件复制到服务器上的正确位置,但我不想这样做。(这需要为每个构建定义提供一个特殊的构建模板。)

有什么方法可以让 TFS 构建指向不同的位置吗?或者其他一些我可以做到这一点的好方法?

4

1 回答 1

0

我通过创建一个$(DB_SCHEMAS)指向我机器上的目录的环境变量来解决这个问题(例如C:\dbschemas)。

然后我在项目 DB_B 中添加了一个构建后事件,将 DB_B.dbschema 复制到$(DB_SCHEMAS).

然后我在项目 DB_A 中添加了一个数据库引用,指向$(DB_SCHEMAS)\DB_B.dbschema. 请注意,Visual Studio 将使用相对路径添加此引用。为了解决这个问题,我在解决方案资源管理器中卸载了项目,并编辑了提示路径以使用$(DB_SCHEMAS)环境变量。

现在我刚刚在 TFS 服务器上添加了这个环境变量,它将按预期工作。构建项目 DB_B 将其 .dbschema 文件复制到$(DB_SCHEMAS)(无论在哪里),然后构建项目 DB_A 引用此方案。

唯一的缺点是我的队友都得在他们的机器上添加这个环境变量,否则他们无法在本地构建。

于 2012-05-08T22:38:20.590 回答