MDF 数据库文件在不同 Windows 机器之间的可移植性

Portability of an MDF database file across different Windows machines

上下文如下:我正在编写一个连接到本地数据库文件 (MDF) 的 C# 应用程序。该应用程序的 GUI 使用户能够执行各种查询并在网格视图控件中查看结果。 MDF 文件与应用程序一起分发,可以被视为 immutable(或只读)资源,即不打算由最终用户更新或修改。

该应用程序目前处于 alpha 阶段,从未部署过。源代码和 MDF 数据库是源代码控制的(通过 Perforce),因此当我团队中的其他开发人员同步他们的工作区时,他们会获得 MDF 数据库(和 LDF 日志)的副本以及代码。不涉及服务器连接,所有查询都是使用 (LocalDB)\MSSQLLocalDB 和默认的 Windows 身份验证对本地数据库副本进行的。

这是我的问题: MDF 文件似乎不能在任何地方使用,只能在创建它的机器上使用。如果另一个开发人员在他的计算机上构建我的应用程序,则与本地数据库的连接会失败并显示通用 SQL Server error 5171。但是,MDF 文件 损坏并且是 主要 数据库文件,因此错误在其他地方。

这是我试过的:

我发现的唯一解决方法是在机器上重新生成整个数据库,但这是不可接受的:不能只连接到从 Perforce 获取的 MDF 文件并完成它吗?谢谢。

很抱歉在最初发布后这么晚才回答我自己的问题,但这里是:解决方案是确保 MDF 文件在 Perforce 中保存为 binary不是作为文本

这立即解决了数据损坏问题,MDF 数据库最终可以跨 machines/users 移植,没有任何进一步的问题。