【问题标题】:An error was raised by libgit2. Category = Os (Error)libgit2 引发错误。类别 = Os(错误)
【发布时间】:2013-04-23 07:10:23
【问题描述】:

我已经遇到过好几次了:

 An error was raised by libgit2. Category = Os (Error). 

在我编写代码时有时会导致此错误或类似错误:

Failed to open '.../App_Data/....mdf': 
The process cannot access the file because it is being used by another process.

发生这种情况时,如果不重新启动我的Visaul Studio 2012,我将无法编码。

我认为这是由Source Control - Git 引起的,因为我不记得在为 Visual Studio 和 Team Foundation 安装 Git 扩展之前遇到过这个问题。

有没有其他人遇到过这个问题,他们是如何解决的?

【问题讨论】:

  • 有问题的文件是什么?
  • @EdwardThomson 主要是.mdf,但我也不能使用键盘上的某些键,例如:在源代码中输入键
  • 有趣,你的.mdf 文件在你的存储库中吗?他们被.gitignore忽略了吗?
  • 我的.mdf 文件位于App_Data。它是一个MVC 4 应用程序。我刚刚检查过,.mdf 不会被 .gitignore 忽略。

标签: git version-control visual-studio-2012 azure-devops libgit2


【解决方案1】:

我今天刚刚在一个新的 Visual Studio 项目中遇到了这个问题。该项目使用自动生成的.gitignore,其中包含以下条目,我认为这些条目应该很好地涵盖了.mdf 文件:

# SQL Server files
App_Data/*.mdf
App_Data/*.ldf

但是我还是收到了:

An error was raised by libgit2. Category = Os (Error). 
Failed to open '.../App_Data/....mdf': 
The process cannot access the file because it is being used by another process.

所以我编辑了.gitignore,在每个条目前加上一个星号斜杠,如下所示:

# SQL Server files
*/App_Data/*.mdf
*/App_Data/*.ldf

我能够照常营业。

【讨论】:

  • 这让我慢了下来,我会从我的项目中删除git
  • 我也在 .dbmdl 上得到这个,即使我有它们 .gitignored!真令人沮丧。尽管在同一个 repo 上从 Git GUI 可以正常工作,如果我将其全部检查,那么 VS 插件将再次工作一段时间,直到它不起作用。
  • @uosɐſ 您可能必须从实际存储库中删除有问题的文件。 .gitignore 忽略以后的文件。
  • 我之前删除了这个 .dbmdl 文件(因为它会重新生成)并签入删除。执行git rm --cached blah.dbmdl 表示路径不存在(它显示了正确的路径,我只有一个分支)。
【解决方案2】:

我想添加它可能就像 => 关闭您的数据库连接一样简单 :)

【讨论】:

    【解决方案3】:

    我有同样的错误。 IIS express 正在系统托盘中运行。当我杀死 IIS Express 时,一切都按预期提交。

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2022-01-14
      • 2016-01-26
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多