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

Max*_*sky 11 database sql-server database-project visual-studio-2010 visual-studio

我遇到了一个小而奇怪的烦恼,似乎也发生在其他人身上(例如,查看SEDE的修订历史).我在Visual Studio 2010中有一个正常工作的SQL Server 2008数据库项目.当我提交/签入源代码控制时,我被告知我的DB项目的.dbmdl文件已经改变,即使我没有对项目进行任何更改!

我不确定是通过构建我的解决方案(其中还包括ASP.NET MVC应用程序和单元测试项目)或简单地打开数据库项目来触发更改,但是这会变得有点烦人并且正在创建混乱源控制.

是否可以阻止这些更改发生,或者删除.dbmdl文件?

小智 18

如果你删除.dbml文件,它会被重建而没有错误或警告,所以我认为它只是一个用于引用,智能感知等的缓存文件.我将把它从源代码控制中排除.


Joe*_*lli 6

我相信Visual Studio会在每次打开项目时序列化dbmdl文件.唯一可能的解决方法是保持项目开放.

  • 根据http://stackoverflow.com/questions/3634649/what-is-the-function-of-the-dbmdl-file-in-vs-database-project/3766902#3766902,您的dbmdl文件不应该被签入回购,永远不会过时. (9认同)
  • 有关dbmdl文件的一些信息在这里 - http://blogs.msdn.com/b/bahill/archive/2009/02/24/deserialization-has-failed-for-project.aspx (2认同)