2017-03-21 55 views
0

在db项目中,当您添加数据库dac-pac作为参考在视图中使用以引用第三方数据库时,似乎仅对您的本地副本有效。与VS数据库项目中的TF同步引用

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

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

有谁知道如何同步这些?我找不到这样做的选择!

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

回答

1

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

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

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

enter image description here

在.sqlproj文件:

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

注: “.. \” 的意思转到uplevel路径从.sqlproj在哪里。它有2个“.. \”,所以去2个uplevels。

+0

这不会为其他用户添加引用吗? – JQuery

+0

所以说,我签出一个项目并添加一些视图,因为我需要添加一个新的数据库引用的视图。我构建并部署它并检查它。 另一个用户不是签出该解决方案,而是添加的新引用不会为他们签出? – JQuery

+0

@JQuery是的,我知道你的问题。我上面发布的意思是你最好检查数据库.dacpac文件和你的数据库项目。因为其他人在他们的计算机上签出时没有该.dacpac文件来引用它们,所以他们会遇到参考错误。如果您检入.dacpac文件,而其他人下载它,那么该引用将在DB项目中引用一个文件。 –