Ошибка была вызвана libgit2. Категория = Os (Ошибка)

Я уже несколько раз сталкивался с этим:

 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, поскольку я не помню, чтобы у меня была эта проблема до того, как я установил расширение Git для Visual Studio и Team Foundation.

Кто-нибудь еще сталкивался с этим и как они это решили?


person Komengem    schedule 23.04.2013    source источник
comment
О каком файле идет речь?   -  person Edward Thomson    schedule 23.04.2013
comment
@EdwardThomson в основном .mdf, но также я не могу использовать определенные клавиши на клавиатуре, например: введите клавишу, находясь в источнике   -  person Komengem    schedule 24.04.2013
comment
Интересно, а ваши .mdf файлы есть в вашем репозитории? Они игнорируются через .gitignore?   -  person Edward Thomson    schedule 24.04.2013
comment
МОИ .mdf файлы находятся в App_Data. Это MVC 4 приложение. И я только что проверил, .mdf не игнорируется через .gitignore.   -  person Komengem    schedule 24.04.2013


Ответы (3)


Я только что столкнулся с этим сегодня с новым проектом 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

И я смог продолжить работу в обычном режиме.

person Douglas Ludlow    schedule 24.04.2013
comment
Это замедляет меня, я избавлюсь от git из своего проекта - person Komengem; 25.04.2013
comment
Я получаю это и на .dbmdl, хотя они у меня есть .gitignored! Очень расстраивает. Хорошо работает с Git GUI, хотя и в том же репо, и если я все это проверю, плагин VS снова будет работать какое-то время, пока не перестанет. - person Jason Kleban; 17.07.2013
comment
@uosɐſ Возможно, вам придется удалить соответствующие файлы из фактического репо. .gitignore игнорирует файлы в будущем. - person Douglas Ludlow; 18.07.2013
comment
Ранее я удалил этот файл .dbmdl (по мере его восстановления) и проверил удаление. Выполнение git rm --cached blah.dbmdl говорит, что путь не существует (он показывает правильный путь, и у меня есть только одна ветвь). - person Jason Kleban; 18.07.2013

Я хотел бы добавить, что это может быть так же просто, как => Закрыть соединение с базой данных :)

person Remi Marenco    schedule 27.09.2013

У меня была такая же ошибка. IIS Express работал в системном трее. Когда я убил IIS Express, все было зафиксировано, как и ожидалось.

person user1526035    schedule 29.10.2013