为什么即使我没有对项目进行任何更改,我的数据库项目的.dbmdl文件也会发生变化?

12

我遇到了一个小但奇怪的麻烦,似乎其他人也遇到了类似问题(例如,请查看SEDE的修订历史记录)。我在Visual Studio 2010中有一个SQL Server 2008数据库项目,它正常工作。当我要提交/检入源代码控制时,我被告知我的DB项目的.dbmdl文件已更改,即使我没有对该项目进行任何更改!

我不确定这些更改是否由构建解决方案(还包括ASP.NET MVC应用程序和单元测试项目)或仅仅是打开DB项目来触发,但这变得有点烦人,并在源代码控制中创建了杂乱。

是否可能阻止这些更改���生,或者彻底删除.dbmdl文件?


3个回答

19
如果您删除了.dbml文件,则会重新构建该文件而不会出现错误或警告,所以我认为它只是一个用于引用、智能感知等的缓存文件。因此,我将在源代码控制中排除它。

8
我相信每次打开项目时,Visual Studio都会序列化dbmdl文件。唯一可能的解决方法是保持项目处于打开状态。

谢谢你的回答。如果我更改项目内容,这些更改会反映在 .dbmdl 文件中吗?我考虑在版本控制中忽略该文件 - 如果 .dbmdl 过时了,项目是否能正常运行? - Maxim Zaslavsky
我不能确定,但我会不愿冒险使用过时的文件。 - Joe Stefanelli
9
根据https://dev59.com/wXA65IYBdhLWcg3wyRyk#3766902,你的dbmdl文件不应该被提交到版本库,并且永远不会过时。 - roman m
2
这是关于dbmdl文件的一些信息 - http://blogs.msdn.com/b/bahill/archive/2009/02/24/deserialization-has-failed-for-project.aspx - Anil Vangari

4

请参考此处的相关问题。.dbmdl文件对每个用户都是唯一的(并且是某种缓存,如上所述),因此正确的解决方案确实是将其从源代码控制中排除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接