Le répertoire du projet de base de données Visual Studio 2015 contient un fichier avec l'extension jfm

242

En supposant que nous ayons un projet de base de données appelé, MyDatabaseun fichier appelé MyDatabase.jfmapparaît à la racine du répertoire du projet.

  • Il est exclusivement verrouillé lorsque le projet est ouvert dans Visual Studio
  • C'est un fichier binaire
  • Il n'a commencé à apparaître que récemment (deux derniers jours)

J'ai effectué une recherche Google, qui n'a fourni aucun aperçu. Il existe quelques références à certains anciens logiciels, mais la plupart des résultats sont des spams / chevaux de Troie. J'ai également regardé SO, mais cela n'a donné aucun résultat non plus.

Est-ce que quelqu'un sait ce que c'est et pourquoi c'est là?

Le plan est de l'ajouter au fichier gitignore pour Visual Studio , mais j'ai besoin de savoir ce que c'est d'abord de soumettre le PR ...

METTRE À JOUR

Cela brise désormais la vue des modifications de Team Explorer. Aucune modification n'est affichée avec les éléments suivants dans la fenêtre Sortie:

Capture d'écran de l'erreur depuis l'onglet de sortie

En tant que tel, je vais ajouter le fichier au fichier .gitignore et soumettre le PR . Il serait bon d'apprendre à terme ce qu'est ce fichier et d'où il vient ...

Le lama barbu
la source
61
J'ai mis à jour Windows 10 avec une mise à jour anniversaire et j'ai maintenant généré ce fichier.
Fabian Vilers
16
L'ajout de * .jfm au fichier .gitignore semble résoudre le problème.
Fabian Vilers
4
Je dois plaisanter: avez-vous essayé de désinstaller et de réinstaller?
pookie
3
+1 A eu le problème où aucun changement n'était affiché. Supprimer le fichier jfm du contrôle de source via gitbash et l'ajouter au fichier gitignore a résolu le problème après beaucoup de difficultés. J'ai dû fermer Visual Studio pour que le git "git rm -rf" fonctionne .. Quel cauchemar!
Noobie3001
2
@ Noobie3001 a également fonctionné pour moi. Ajoutez * .jfm à .gitignore, puis supprimez .jfm du dépôt git distant, annulez les modifications locales et synchronisez avec la télécommande. Problème résolu.
Ivan G.

Réponses:

187

Il s'agit d'un problème causé par le moteur ESENT sur lequel s'appuie SQL Projects pour ajouter un nouveau fichier. Il s'agit d'une nouvelle fonctionnalité de Windows 10 Anniversary Edition pour éviter la perte de données, mais le fait que les projets SQL stockent le fichier cache .dbmdl sous la racine du projet signifie que ce fichier verrouillé est ajouté au contrôle de source Git.

Remarques:

  • Une demande d'extraction pour résoudre ce problème dans GitIgnore a été acceptée et l'équipe de Visual Studio travaille pour l'inclure dans les futures mises à jour. Cela garantira que pour les nouveaux projets, le fichier .gitignore comprend .jfm et le problème ne se produira pas
  • L'équipe SSDT principale travaille à fournir une solution à cela dans une future mise à jour, mais pour l'instant la meilleure solution consiste à ajouter manuellement comme indiqué dans les commentaires.

Divulgation : je travaille dans l'équipe SSDT pour Microsoft.

Kevin Cunnane
la source
merci aussi d'avoir enfin apporté une vraie réponse à ce qu'est le fichier!
The Bearded Llama
1
Désolé pour le PR - J'avais suivi ce problème en interne et suivi les étapes recommandées (y compris faire un PR). Je n'ai remarqué qu'après avoir soumis que ce post faisait référence à un PR séparé et qu'ils avaient alors accepté cela! Leçon a appris à lire les articles StackOverflow plus attentivement :-) Soit dit en passant, Technocore avait la réponse précédente à cette question, mais elle a été supprimée pour une raison quelconque. Merci d'avoir soulevé ce problème et d'excuses pour la gêne occasionnée - nous avons été surpris par le changement de fonctionnalité d'ESENT et cherchons toujours à le corriger correctement.
Kevin Cunnane
Pas de soucis mon pote, les relations publiques n'étaient pas vraiment importantes. Je ne sais pas pourquoi il a été supprimé; peut-être que ce n'était pas aussi détaillé / précis qu'il le fallait pour obtenir une réponse.
The Bearded Llama
8
Je viens de frapper ce bug et il m'a fallu une demi-journée pour comprendre ce qui se passait. Sérieusement, qui a décidé de mettre le dbmdl dans la racine du projet en premier lieu? Cela ne devrait-il pas être dans / obj ou quelque chose? Je veux dire, parfois, je dois supprimer le .dbmdl juste pour continuer à travailler SSDT. Cela a complètement dérouté mon équipe quand j'ai expliqué que "CLEAN" ne supprimait pas réellement ce fichier parce qu'il n'était pas en obj, et maintenant le stupide dbmdl a détruit encore quelques heures de ma productivité avec ce non-sens jfm.
Pxtl
1
Pour info c'est dans le dernier VS .gitgnore maintenant. Je viens de supprimer l'ancien et de le faire recréer par VS, ce qui a résolu le problème pour mon équipe. Faites juste attention si vous avez des entrées personnalisées dans votre fichier existant.
Gabe
67

Les plats à emporter des autres sont ...

  • Ajoutez *.jfmà votre.gitignore

(En PowerShell, Add-Content .\.gitignore *.jfm)

  • Vous devrez peut-être exécuter git rm --cached *.jfm
emragins
la source
1
Cent fois OUI à cette réponse. Clair, simple et cela a fonctionné. En passant, j'ai abandonné SSDT et sqlproj il y a quelque temps. Et ce type de problème était exactement pourquoi. Maintenant, je me fie à d'anciens scripts sql et à des migrations personnalisées. Beaucoup plus facile à gérer et moins de maux de tête (ce qui, selon vous, serait le contraire).
pimbrouwers
1
Si vous .gitignorene pouvez pas terminer avec une nouvelle ligne, Add-Content .\.gitignore `r`n*.jfmassurez-vous qu'elle se termine sur sa propre ligne.
Codespaced
git rm --cached * .jfm a vraiment aidé. Merci beaucoup!
Valeriy Lyuchyn