将引用与 VS 数据库项目中的 TF 同步

Posted

技术标签:

【中文标题】将引用与 VS 数据库项目中的 TF 同步【英文标题】:Sync references with TFs in VS database projects 【发布时间】:2017-03-21 10:09:55 【问题描述】:

在 db 项目中,当您添加数据库 dac-pac 作为参考时,例如在视图中引用第三方数据库时,这似乎仅对您的本地副本有效。

在 VS 2015 中,我似乎无法找到您如何将其添加为构建,以便它与您存储在源代码管理中的版本同步并进行比较。

如果我签出一个团队项目,创建一个引用第三方数据库的视图,为该数据库创建一个 dac-pac,将其添加为数据库引用,保存、构建、签入,默认情况下该引用不是签入服务器以供其他开发人员签出最新版本,因此他们会收到参考错误。

有人知道如何同步这些吗?我找不到这样做的选项!

另外,能够编辑 dam 的东西会很好,例如,如果它们在不同的服务器上,您必须定义它。但是说服务器发生了变化,你只能在你的发布配置文件中编辑它,但是如果你这样做但其他人没有这样做,它会标记为他们的更改。

【问题讨论】:

【参考方案1】:

你最好add the .dacpac file 到 TFS 版本控制。当其他人从其他机器签出时,将 .dacpac 文件与该 db 项目一起下载。

确保当其他人将该文件和 db 项目检出到他们的本地计算机时,它们之间的相对路径与您的环境中的相同。实际上,在您的 db 项目的 .sqlproj 文件中,它已经定义了关系。

例如,我将 .dacpac 文件放在名为“DACPAC”的文件夹下,该文件夹与我的解决方案文件夹处于同一级别。

在 .sqlproj 文件中:

<ArtifactReference Include="..\..\DACPAC\TestDB.dacpac">
      <HintPath>..\..\DACPAC\TestDB.dacpac</HintPath>
        ......
 </ArtifactReference>

注意:“..\”表示从 .sqlproj 所在的上层路径。它有 2 个“..\”,所以要升级 2 个。

【讨论】:

这不会向其他用户添加引用吗? 所以,假设我签出一个项目并添加一些视图,因为这些视图我需要添加一个新的数据库引用。我构建并部署它并将其签入。另一个用户签出该解决方案但我添加的新参考不会被签出? @JQuery 是的,我知道你的问题。我在上面发布的内容意味着您最好将该数据库 .dacpac 文件与您的数据库项目一起签入。因为其他人在他们的机器上签出时没有该 .dacpac 文件可供参考,所以他们遇到了参考错误。如果您签入 .dacpac 文件,然后下载它,则该引用在 DB 项目中有一个要引用的文件。

以上是关于将引用与 VS 数据库项目中的 TF 同步的主要内容,如果未能解决你的问题,请参考以下文章

vs2015中SQLSERVER数据库项目引用系统视图

通过 dll 引用而不是 VS 中的项目引用来管理 .NET 程序集依赖项

VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧

VS2010数据库项目部署重建每张表

是否可以从同一解决方案中的另一个项目引用 VS2005 网站项目?

创建新团队项目时出现TF218027错误