web-dev-qa-db-ja.com

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

上記のコマンドは、プロジェクトのApp_Dataフォルダーに.mdfファイルを追加しました。

9
user8930129

mdfファイルをgitにコミットするべきではありません-これらはデータベースのデータファイルです。 gitは、ファイルが使用中であり、データをリポジトリに送信できるようにするために読み取りアクセス権が必要であるため、文句を言う可能性があります。最も簡単な解決策は、git rmを使用してgitから削除することです。たとえば、コマンドラインで:

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

それでもmdfファイルをgitに追加する場合。私もこれでいくつかの問題を抱えていたので、私が見つけたのは:

Visual Studioからサーバーエクスプローラーを使用している場合は、サーバーエクスプローラーウィンドウで接続名を右クリックし、接続を閉じるをクリックします。

5
andrecj

これは将来誰かを助けるかもしれない。問題は、サーバーエクスプローラーでローカルDBにファイルが接続されたままであり、ファイルに使用中のハンドルがあり、コミットをブロックすることです。

私が実際にしたことは

  1. Local Dbまたはファイルが関連付けられているデータベースを右クリックし、

  2. .mdfまたは.ldfファイルからハンドルを解放できるように、[分離]オプションを選択します。

PS:コミット時間枠を除き、いつでもデータベースをアタッチできます。

データベースがデタッチされると、コミットは問題なく機能します。これを試してみると、ほとんどの場合うまくいきます。

1
Jabez