GitHub提交错误:权限被拒绝致命:无法处理路径〜/ App_Data / aspnet-MyProject.mdf

我试图使用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文件夹中。

你不应该将mdf文件提交给git – 它们是数据库的数据文件。 git可能会抱怨,因为该文件正在使用中,并且需要读取权限才能将数据发送到存储库。 最简单的解决方案是使用git rm将其从git中删除。 例如,在命令行:

 git rm MyProject/App_Data/aspnet- MyProject-20171110110346.mdf 

如果你仍想将你的mdf文件添加到git。 我也遇到了一些麻烦,所以我发现的是:

如果您正在使用Visual Studio中的服务器资源管理器 ,只需在“服务器资源管理器”窗口中右键单击“连接”名称 ,然后单击“关闭连接”

可能这将有助于将来的某个人。 问题是您仍然将文件连接到服务器资源管理器中的本地数据库,并且该文件具有正在使用的句柄,这会阻止提交发生。

我实际做的是

  1. 右键单击本地Db或与文件关联的数据库

  2. 选择Detach选项,以便它可以从.mdf或.ldf文件中释放任何句柄。

PS:除了在提交时间范围内,您可以随时附加数据库。

分离数据库后,提交工作没有任何问题。 试试这个,它大部分时间都有效。