共享数据库在TFS 2010团队项目集合之间的项目

问题描述:

我有一个数据库项目,它在几个视图和存储过程中使用链接服务器。共享数据库在TFS 2010团队项目集合之间的项目

根据微软的Visual Studio 2010数据库项目不明确支持链接的服务器,但你可以使用参考和SQLCMD变量样的本事: http://msdn.microsoft.com/en-us/library/bb386242.aspx

我的数据库(数据库本身)有一个链接服务器结合仓库数据库。 Warehouse数据库项目存储在单独的Team Project Collection中。

有什么方法可以在我的项目中添加仓库项目作为参考?

以下文章解释了如何在数据库项目中使用引用变量。 http://msdn.microsoft.com/en-us/library/bb386242.aspx

当您引用不在同一解决方案中的数据库时(参见第一个图表,第二行),这是必需的。

就我而言,我可能会为每个不同的业务环境(内部应用程序,外部应用程序,仓库等)分别提供解决方案。这些解决方案中的每一个都有几个数据库但数据库需要引用不在同一解决方案中的数据库(例如,内部数据库可能有存储从外部数据库中提取数据的存储过程)。

在这种情况下,我认为最好的解决方案是引用项目生成时生成的.dbschema文件。您可以为每个项目配置夜间构建,并将构建输出复制到特定的共享驱动器位置。然后,您可以通过向数据库的.dbschema(在共享驱动器上)添加数据库引用(在上面的文章中进行描述),将任何数据库项目指向任何其他数据库的模式。

如果你想让它更复杂,你可以修改生成的模板必要的.dbschema文件从生成输出复制到每一个项目,并检查他们进来

的情况下数据库不有一个项目并且没有被主动更改,那么有必要为数据库创建一个临时数据库项目,以便您可以构建一个.dbschema文件。然后可以将构建的.dbschema文件签入到依赖项目中,除非更改,否则不必再次生成它。

我会尽我所能一个例子...

问题: 项目ABC依赖于数据仓库,并在项目XYZ。 XYZ项目采用不同的解决方案进行源代码管理,但仓库不在源代码管理中。

解决方案

  1. 项目创建一个每晚构建XYZ
  2. 配置构建输出目录去共享驱动器
  3. 创建项目ABC自定义生成模板将复制XYZ.dbschema文件放入ABC项目并在
  4. 中检查
  5. 在项目ABC中,右键单击“数据库引用”并添加对XYZ的引用,指定XYZ。找到dbschema文件(而不是XYZ数据库项目,这是解决方案外)
  6. 创建参考变量XYZ项目(不知道这是必要的...)
  7. 中存储的特效替换为XYZ引用与参考&意见您在上一步中创建的变量(不确定这是必要的...)
  8. 现在ABC中的参考文件应该解析为XYZ。
  9. 创建一个新的数据库项目(这可能是暂时的,扔掉的项目)
  10. 有它拉的定义从仓库(右键单击项目,选择“从数据库导入”)
  11. 生成项目
  12. 复制从生成输出Warehouse.dbschema文件到ABC项目
  13. 在项目ABC,“数据库引用”单击鼠标右键,并加入到Warehouse.dbschema参考文件
  14. 创建的参考变量仓库
  15. 用参考变量替换对仓库的参考
  16. 现在可以解决ABC中仓库中的引用。

我不知道它是否会像这样工作,但那是理论。希望它有帮助...