所以在 Visual Studio 中,我在 GitHub 上有一个项目,在 app_data 目录中有一个 mdf 文件。
关于源代码控制和构建,我该如何处理这个 .mdf 文件?
错误的解决方案 1 - 签入一个空的 .mdf 文件
我可以创建一个存根 mdf 并将其签入。但我不喜欢这个解决方案。一旦我签入它,它就会显示为已更改,并且我必须在每次后续签入时排除 .mdf。更糟糕的是,如果我忘记排除它,那么我必须恢复签入。
错误的解决方案 2 - 忽略 *.mdf 文件
我可以忽略 mdf 文件。但是现在当有人检查我的解决方案并单击构建时,构建失败。手动创建 SQL 文件非常容易。但前提是你知道这是你应该做的。此外,许多潜在用户/贡献者可能会查看我的开源项目,单击构建,看到它失败,然后决定继续。
目前我正在使用错误的解决方案 1。
平庸的解决方案 1 - 复制另一个签入文件
将 mdf 文件签入到项目中的某个位置。运行复制命令。我可能不得不接受这个选项。我希望这只是一个脚本思想。
更好的解决方案 - 如果缺少预构建操作来构建 mdf 我正在努力实施这个解决方案。
在 Visual Studio 项目的预构建操作中,我有这个:
IF NOT EXIST "$(ProjectDir)App_Data\SqlRepository.mdf" (
REM Command to create SqlRepository.mdf here
)
但是 Visual Studio 正在添加一个 *.mdf。如果文件丢失,应该有一个脚本可以创建存根。Visual Studio 在做什么?
因此,一个有效的答案将涉及:
- mdf 未签入
- 不是另一个签入文件的文件副本
- 如果不存在,脚本将构建 mdf
- 脚本并不过分复杂
- 适用于几乎所有其他 Windows + Visual Studio 环境