我正在尝试使用Microsoft Visual Studio 2017中的GitHub集成来提交我的ASP.Net MVC项目的更新。
我正致力于Code-First Migrations。在我上次成功提交之后,我在Visual Studio中的程序包管理器控制台上执行了以下命令:
PM> Enable-Migrations -ContextType ApplicationDbContext
PM> Add-Migration AccountNumberChanges
PM> Update-Database -Verbose
完成此操作后,我尝试执行提交,但是我收到了以下错误:
Git failed with a fatal error.
error: open("MyProject/App_Data/aspnet-MyProject-
20171110110346.mdf"): Permission denied
fatal: Unable to process path MyProject/App_Data/aspnet-
MyProject-20171110110346.mdf
以上命令已将.mdf文件添加到项目的App_Data文件夹中。
答案 0 :(得分:12)
您不应该将mdf
个文件提交给git - 它们是数据库的数据文件。 git
可能会抱怨,因为该文件正在使用中,并且需要具有读取权限才能将数据发送到存储库。最简单的解决方案是使用git rm
将其从git中删除。例如,在命令行:
git rm MyProject/App_Data/aspnet- MyProject-20171110110346.mdf
答案 1 :(得分:4)
如果您仍想将mdf
个文件添加到git中。
我也遇到了一些麻烦,所以我发现的是:
如果您正在使用Visual Studio中的服务器资源管理器,只需在服务器资源管理器窗口中右键单击您的连接名称,然后单击关闭连接强>
答案 2 :(得分:1)
可能这将有助于将来的某个人。问题是您仍然将文件连接到服务器资源管理器中的本地数据库,并且该文件具有正在使用的句柄,这会阻止发生提交。
我实际上做的是
右键单击本地Db或与文件关联的数据库
选择Detach选项,以便它可以从.mdf或.ldf文件中释放任何句柄。
PS:除了在提交时间范围内,您可以随时附加数据库。
分离数据库后,提交工作没有任何问题。试试这个,它大部分时间都有效。
答案 3 :(得分:0)
这只是我在以前没有此问题的旧项目中全新安装VS 2019时发生的(也许我的忽略列表不正确)。有一个导致问题的MySQL db.lock文件。
在Team Explorer中,右键单击该文件,然后选择“忽略此本地资源”。
为快速解决问题而努力(并不是说这是完美或正确的方法,但它确实有效)