Katalog projektu bazy danych Visual Studio 2015 zawiera plik z rozszerzeniem jfm

242

Zakładając, że mamy projekt bazy danych o nazwie, MyDatabasewtedy plik o nazwie MyDatabase.jfmpojawia się w katalogu głównym katalogu projektu.

  • Jest wyłącznie zablokowany, gdy projekt jest otwarty w Visual Studio
  • Jest to plik binarny
  • Zaczęło się pojawiać dopiero niedawno (kilka ostatnich dni)

Przeprowadziłem wyszukiwanie w Google, które nie zapewniło żadnego wglądu. Istnieją pewne odniesienia do niektórych starych programów, ale większość wyników to spam / trojanware. Zajrzałem również do SO, ale to również nie przyniosło żadnych rezultatów.

Czy ktoś wie, co to jest i dlaczego tam jest?

Planuję dodać go do pliku gitignore dla Visual Studio , ale muszę wiedzieć, co jest pierwsze, aby przesłać PR ...

AKTUALIZACJA

To łamie teraz widok zmian w Eksploratorze zespołu. W oknie Dane wyjściowe nie są wyświetlane żadne zmiany:

Zrzut ekranu błędu z zakładki danych wyjściowych

Jako taki będę dodawał plik do pliku .gitignore i przesyłałem PR . Dobrze byłoby w końcu dowiedzieć się, co to jest plik i skąd pochodzi ...

Brodata lama
źródło
61
Zaktualizowałem system Windows 10 aktualizacją rocznicową i teraz generowany jest ten plik.
Fabian Vilers,
16
Wydaje się, że dodanie * .jfm do pliku .gitignore rozwiązuje problem.
Fabian Vilers,
4
Muszę żartować: próbowałeś odinstalować i ponownie zainstalować?
pookie
3
+1 Wystąpił problem polegający na tym, że w ogóle nie wyświetlały się żadne zmiany. Usunięcie pliku jfm z kontroli źródła przez gitbash i dodanie go do pliku gitignore naprawiło problem po wielu zmaganiach. Musiałem zamknąć program Visual Studio, aby git „git rm -rf” działał. Co za koszmar!
Noobie3001,
2
@ Noobie3001 też dla mnie pracował. Dodaj * .jfm do .gitignore, nie usuwaj .jfm ze zdalnego repozytorium git, odrzuć lokalne zmiany i zsynchronizuj ze zdalnym. Problem naprawiony.
Ivan G.,

Odpowiedzi:

187

Jest to problem spowodowany przez aparat ESENT, na który polegało dodawanie nowego pliku przez SQL Projects. Jest to nowa funkcja w Windows 10 Anniversary Edition, aby uniknąć utraty danych, ale fakt, że SQL Projects przechowuje plik pamięci podręcznej .dbmdl w katalogu głównym projektu, oznacza, że ​​ten zablokowany plik jest dodawany do kontroli źródła Git.

Uwagi:

  • Prośba przyciąganie aby rozwiązać ten problem w GitIgnore została przyjęta i Visual Studio zespół pracuje na uwzględnienie tego w przyszłych aktualizacjach. Zapewni to, że w przypadku nowych projektów plik .gitignore zawiera .jfm i problem nie wystąpi
  • Główny zespół SSDT pracuje nad rozwiązaniem tego problemu w przyszłej aktualizacji, ale na razie najlepszym rozwiązaniem jest ręczne dodawanie zgodnie z opisem w komentarzach.

Ujawnienie : Pracuję w zespole SSDT dla Microsoft.

Kevin Cunnane
źródło
dziękuję również za udzielenie prawdziwej odpowiedzi na to, czym jest plik!
The Bearded Llama,
1
Przepraszam za PR - śledziłem wewnętrznie ten problem i postępowałem zgodnie z zalecanymi krokami (w tym robienie PR). Zauważyłem dopiero po tym, jak zgłosiłem, że w tym poście jest mowa o osobnym PR i do tego czasu zasadniczo go zaakceptowali! Lekcja nauczyła się uważniej czytać posty StackOverflow :-) Nawiasem mówiąc, Technocore miała poprzednią odpowiedź na to pytanie, ale z jakiegoś powodu została usunięta. Dziękujemy za zgłoszenie tego problemu i przepraszamy za niedogodności - zaskoczyła nas zmiana funkcji ESENT i nadal szukamy możliwości jej poprawienia.
Kevin Cunnane,
Nie martw się kolego, PR nie było tak ważne. Nie jestem pewien, dlaczego został usunięty; być może nie było tak szczegółowe / dokładne, jak trzeba było uzyskać odpowiedź.
The Bearded Llama,
8
Właśnie trafiłem w błąd i zajęło mi pół dnia, aby dowiedzieć się, co się dzieje. Poważnie, kto w ogóle zdecydował się umieścić dbmdl w katalogu głównym projektu? Czy nie powinno to być w katalogu / obj? Mam na myśli, że czasami muszę usunąć plik .dbmdl, aby SSDT działało. Zdezorientował mnie mój zespół, kiedy wyjaśniłem, że „CLEAN” tak naprawdę nie usuwa tego pliku, ponieważ nie ma go w obj, a teraz głupi dbmdl zniszczył kolejne kilka godzin mojej produktywności z tym nonsensem jfm.
Pxtl,
1
Do Twojej wiadomości jest teraz w najnowszym VS .gitgnore. Właśnie usunąłem stary i kazałem VS odtworzyć go, co rozwiązało problem dla mojego zespołu. Bądź ostrożny, jeśli masz niestandardowe wpisy w istniejącym pliku.
Gabe,
67

Na wynos od innych jest ...

  • Dodaj *.jfmdo swojego.gitignore

(W PowerShell Add-Content .\.gitignore *.jfm)

  • Może być konieczne uruchomienie git rm --cached *.jfm
emragins
źródło
1
Sto razy TAK na tę odpowiedź. Jasne, proste i działało. Na marginesie, jakiś czas temu zrezygnowałem z SSDT i sqlproj. I właśnie tego rodzaju problem był właśnie przyczyną. Teraz polegam na zwykłych starych skryptach SQL i niestandardowych migracjach. O wiele łatwiejsze do opanowania i mniej bóli głowy (co Twoim zdaniem byłoby odwrotnie).
pimbrouwers
1
Jeśli możesz .gitignorenie skończyć z użyciem nowej linii, Add-Content .\.gitignore `r`n*.jfmaby upewnić się, że skończy na własnej linii.
Codespaced
git rm --cached * .jfm naprawdę pomógł. Dziękuję Ci bardzo!
Valeriy Lyuchyn