Das Visual Studio 2015-Datenbankprojektverzeichnis enthält eine Datei mit der Erweiterung jfm

242

Angenommen, wir haben ein Datenbankprojekt namens, MyDatabasedann erscheint eine Datei namens MyDatabase.jfmim Stammverzeichnis des Projektverzeichnisses.

  • Es ist ausschließlich gesperrt, während das Projekt in Visual Studio geöffnet ist
  • Es ist eine Binärdatei
  • Es erscheint erst seit kurzem (in den letzten Tagen).

Ich habe eine Google-Suche durchgeführt, die keinen Einblick bietet. Es gibt einige Verweise auf alte Software, aber die meisten Ergebnisse sind Spam / Trojaner. Ich habe auch in SO gesucht, aber das hat auch keine Ergebnisse gebracht.

Weiß jemand was es ist und warum es da ist?

Der Plan ist, es der Gitignore-Datei für Visual Studio hinzuzufügen , aber ich muss wissen, was es zuerst ist, um die PR einzureichen ...

AKTUALISIEREN

Dies unterbricht jetzt die Ansicht "Team Explorer-Änderungen". Im Ausgabefenster werden keine folgenden Änderungen angezeigt:

Screenshot des Fehlers auf der Registerkarte "Ausgabe"

Als solches werde ich die Datei zur .gitignore-Datei hinzufügen und die PR einreichen . Es wäre gut, irgendwann zu erfahren, was diese Datei ist und woher sie stammt ...

Das bärtige Lama
quelle
61
Ich habe Windows 10 mit dem Jubiläums-Update aktualisiert und jetzt wird diese Datei generiert.
Fabian Vilers
16
Das Hinzufügen von * .jfm zur .gitignore-Datei scheint das Problem zu beheben.
Fabian Vilers
4
Ich muss scherzen: Haben Sie versucht, zu deinstallieren und neu zu installieren?
Pookie
3
+1 Hatte das Problem, bei dem überhaupt keine Änderungen angezeigt wurden. Das Löschen der jfm-Datei aus der Quellcodeverwaltung über gitbash und das Hinzufügen zur gitignore-Datei behebt das Problem nach langem Kampf. Musste Visual Studio schließen, damit der Git "git rm -rf" funktioniert. Was für ein Albtraum!
Noobie3001
2
@ Noobie3001 hat auch bei mir funktioniert. Fügen Sie * .jfm zu .gitignore hinzu, löschen Sie dann .jfm aus dem Remote-Git-Repo, verwerfen Sie lokale Änderungen und synchronisieren Sie mit Remote. Problem behoben.
Ivan G.

Antworten:

187

Dies ist ein Problem, das durch die ESENT-Engine sich SQL Projects wenn eine neue Datei hinzugefügt wird. Dies ist eine neue Funktion in Windows 10 Anniversary Edition, um Datenverlust zu vermeiden. Die Tatsache, dass SQL Projects die .dbmdl-Cache-Datei unter dem Projektstamm speichert, bedeutet jedoch, dass diese gesperrte Datei zur Git-Quellcodeverwaltung hinzugefügt wird.

Anmerkungen:

  • EIN Pull-Anfrage zur Behebung dieses Problems in GitIgnore wurde akzeptiert, und das Visual Studio-Team arbeitet daran, dies in zukünftige Updates aufzunehmen. Dadurch wird sichergestellt, dass bei neuen Projekten die Gitignore-Datei .jfm enthält und das Problem nicht auftritt
  • Das Kernteam von SSDT arbeitet daran, in einem zukünftigen Update eine Lösung für dieses Problem bereitzustellen. Derzeit ist es jedoch am besten, manuell hinzuzufügen, wie in den Kommentaren erläutert.

Offenlegung : Ich arbeite im SSDT-Team für Microsoft.

Kevin Cunnane
quelle
Vielen Dank auch, dass Sie endlich eine echte Antwort auf die Datei gegeben haben!
Das bärtige Lama
1
Entschuldigung für die PR - Ich habe dieses Problem intern weiterverfolgt und die empfohlenen Schritte befolgt (einschließlich PR). Ich bemerkte erst, nachdem ich eingereicht hatte, dass dieser Beitrag auf eine separate PR verweist und bis dahin hatten sie ihn im Grunde genommen akzeptiert! Lektion gelernt, StackOverflow-Beiträge genauer zu lesen :-) Übrigens hatte Technocore die vorherige Antwort auf diese Frage, aber sie wurde aus irgendeinem Grund gelöscht. Vielen Dank, dass Sie dieses Problem angesprochen haben, und entschuldigen Sie die Unannehmlichkeiten. Wir waren von der Änderung der ESENT-Funktionen überrascht und haben immer noch versucht, das Problem richtig zu beheben.
Kevin Cunnane
Keine Sorge, Kumpel, das PR-Zeug war nicht wirklich so wichtig. Ich bin mir nicht sicher, warum es entfernt wurde. Vielleicht war es nicht so detailliert / genau, wie es für eine Antwort sein musste.
Das bärtige Lama
8
Ich habe gerade diesen Fehler entdeckt und einen halben Tag gebraucht, um herauszufinden, was los war. Im Ernst, wer hat sich überhaupt dafür entschieden, die Datenbank in das Projektstammverzeichnis aufzunehmen? Sollte es nicht in / obj oder so sein? Ich meine, gelegentlich muss ich die .dbmdl löschen, damit SSDT funktioniert. Es hat mein Team verdammt verwirrt, als ich erklärte, dass "CLEAN" diese Datei nicht wirklich löscht, weil sie nicht in obj ist, und jetzt hat die dumme dbmdl mit diesem jfm-Unsinn noch ein paar Stunden meiner Produktivität zerstört.
Pxtl
1
Zu Ihrer Information, dies ist jetzt in der neuesten Version von VS .gitgnore. Ich habe gerade die alte gelöscht und VS sie neu erstellen lassen, und das hat das Problem für mein Team gelöst. Seien Sie vorsichtig, wenn Ihre vorhandene Datei benutzerdefinierte Einträge enthält.
Gabe
67

Das Mitnehmen von anderen ist ...

  • Fügen Sie *.jfmIhrem hinzu.gitignore

(In Powershell Add-Content .\.gitignore *.jfm)

  • Möglicherweise müssen Sie ausführen git rm --cached *.jfm
Emragine
quelle
1
Einhundert Mal JA zu dieser Antwort. Klar, einfach und es hat funktioniert. Nebenbei habe ich vor einiger Zeit SSDT und sqlproj's aufgegeben. Und genau diese Art von Problem war genau der Grund. Jetzt verlasse ich mich auf einfache alte SQL-Skripte und benutzerdefinierte Migrationen. Viel überschaubarer und weniger Kopfschmerzen (was Ihrer Meinung nach das Gegenteil wäre).
Pimbrouwers
1
Wenn Sie .gitignoremöglicherweise nicht mit einer neuen Add-Content .\.gitignore `r`n*.jfmZeile enden , stellen Sie sicher , dass diese in einer eigenen Zeile endet.
Codespaced
git rm --cached * .jfm hat wirklich geholfen. Vielen Dank!
Valeriy Lyuchyn