Ich versuche, ein Update für mein ASP.Net MVC-Projekt mithilfe der GitHub-Integration in Microsoft Visual Studio 2017 festzulegen.
Ich arbeite an Code-First-Migrationen. Nach meinem vorherigen erfolgreichen Commit habe ich die folgenden Befehle in der Package Manager Console in Visual Studio ausgeführt:
PM> Enable-Migrations -ContextType ApplicationDbContext
PM> Add-Migration AccountNumberChanges
PM> Update-Database -Verbose
Nachdem dies geschehen war, habe ich versucht, ein Commit auszuführen, es wurde jedoch der folgende Fehler angezeigt:
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
Die obigen Befehle haben die MDF-Datei zum Ordner App_Data des Projekts hinzugefügt.
Sie sollten keine mdf
-Dateien für git festlegen - es handelt sich um Datendateien für Ihre Datenbank. git
beschwert sich wahrscheinlich, da die Datei verwendet wird und Lesezugriff erforderlich ist, um die Daten an das Repository senden zu können. Die einfachste Lösung ist, es mit git rm
aus git zu entfernen. Zum Beispiel in der Befehlszeile:
git rm MyProject/App_Data/aspnet- MyProject-20171110110346.mdf
Wenn Sie dennoch Ihre mdf
-Dateien zu git hinzufügen möchten. Ich hatte auch einige Probleme damit, was ich herausfand, ist:
Wenn Sie Server Explorer von Visual Studio aus verwenden, klicken Sie mit der rechten Maustaste rechts auf Ihren Verbindungsnamen im Server-Explorer-Fenster und klicken Sie auf Verbindung schließen.
Vielleicht wird dies in der Zukunft jemandem helfen. Das Problem ist, dass Sie die Datei im Server-Explorer immer noch mit Ihrer lokalen Datenbank verbunden haben und dass die Datei Handles verwendet, die das Festschreiben blockieren.
Was ich eigentlich tat, war
Klicken Sie mit der rechten Maustaste auf die lokale Datenbank oder auf die Datenbank, der die Datei zugeordnet ist, und
wählen Sie die Option Trennen aus, damit alle Handles aus den MDF- oder LDF-Dateien freigegeben werden können.
PS: Sie können die Datenbank jederzeit anfügen, es sei denn, Sie möchten den Commit-Zeitrahmen verwenden.
Sobald die Datenbank getrennt ist, funktioniert das Festschreiben problemlos. Probieren Sie es aus und es funktioniert meistens.