Direktori Visual Studio 2015 Database Project berisi file dengan ekstensi jfm

242

Dengan asumsi kita memiliki proyek basis data yang disebut MyDatabasemaka file yang dipanggil MyDatabase.jfmmuncul di root direktori proyek.

  • Ini dikunci secara eksklusif saat proyek terbuka di Visual Studio
  • Ini adalah file biner
  • Itu baru mulai muncul baru-baru ini (beberapa hari terakhir)

Saya telah melakukan pencarian Google, yang belum menawarkan wawasan apa pun. Ada beberapa referensi ke beberapa perangkat lunak lama, tetapi sebagian besar hasilnya adalah spam / trojanware. Saya juga sudah mencari di SO, tapi itu belum membuahkan hasil juga.

Adakah yang tahu apa itu dan mengapa itu ada di sana?

Rencananya adalah menambahkannya ke file gitignore untuk Visual Studio , tapi saya perlu tahu apa yang pertama kali mengirimkan PR ...

MEMPERBARUI

Ini sekarang melanggar tampilan Perubahan Tim Explorer. Tidak ada perubahan yang ditampilkan dengan yang berikut dari jendela Output:

Cuplikan layar kesalahan dari tab output

Karena itu saya akan menambahkan file ke file .gitignore dan mengirimkan PR . Akan lebih baik untuk akhirnya mempelajari apa file ini dan dari mana asalnya ...

Llama Berjanggut
sumber
61
Saya telah memperbarui Windows 10 dengan pembaruan hari jadi dan sekarang file ini dibuat.
Fabian Vilers
16
Menambahkan * .jfm ke file .gitignore tampaknya memperbaiki masalah.
Fabian Vilers
4
Saya harus bercanda: Apakah Anda mencoba mencopot pemasangan dan pemasangan resin?
pookie
3
+1 Punya masalah saat tidak ada perubahan sama sekali yang ditampilkan. Menghapus file jfm dari kontrol sumber melalui gitbash dan menambahkannya ke file gitignore memperbaiki masalah setelah banyak perjuangan. Harus menutup Visual Studio agar git "git rm -rf" berfungsi .. Sungguh mimpi buruk!
Noobie3001
2
@ Noobie3001 bekerja untuk saya juga. Tambahkan * .jfm ke .gitignore, lalu hapus .jfm dari repo git jarak jauh, buang perubahan lokal dan sinkronkan dengan remote. Masalah diperbaiki.
Ivan G.

Jawaban:

187

Ini adalah masalah yang disebabkan oleh mesin ESENT yang diandalkan oleh Proyek SQL menambahkan dalam file baru. Ini adalah fitur baru di Windows 10 Anniversary Edition untuk menghindari kehilangan data, tetapi faktanya SQL Projects menyimpan file cache .dbmdl di bawah root proyek berarti file yang dikunci ini ditambahkan ke kontrol sumber Git.

Catatan:

  • Sebuah permintaan tarik untuk memperbaiki ini dalam gitignore telah diterima dan tim Visual Studio bekerja untuk memasukkan ini dalam masa depan pembaruan. Ini akan memastikan bahwa untuk proyek baru file .gitignore menyertakan .jfm dan masalahnya tidak akan terjadi
  • Tim SSDT inti bekerja untuk memberikan solusi untuk hal ini dalam pembaruan di masa mendatang, tetapi untuk saat ini solusi terbaik adalah menambahkan secara manual seperti yang dibahas dalam komentar.

Pengungkapan : Saya bekerja di tim SSDT untuk Microsoft.

Kevin Cunnane
sumber
juga terima kasih karena akhirnya memberikan jawaban nyata untuk file apa itu!
The Bearded Llama
1
Maaf tentang PR - Saya telah menindaklanjuti masalah ini secara internal dan mengikuti langkah-langkah yang disarankan (termasuk melakukan PR). Saya hanya memperhatikan setelah saya mengirimkan bahwa posting ini mereferensikan PR terpisah dan pada saat itu mereka pada dasarnya menerimanya! Pelajaran belajar membaca posting StackOverflow lebih hati-hati :-) Ngomong-ngomong, Technocore memiliki jawaban sebelumnya untuk pertanyaan ini tetapi sudah dihapus karena beberapa alasan. Terima kasih telah mengemukakan masalah ini dan meminta maaf atas ketidaknyamanan ini - kami terkejut oleh perubahan fitur ESENT dan masih mencari cara untuk memperbaikinya dengan benar.
Kevin Cunnane
Jangan khawatir sobat, hal-hal PR tidak begitu penting. Tidak yakin mengapa itu dihapus; mungkin itu tidak sedetail / seakurat yang diperlukan untuk mendapat jawaban.
The Bearded Llama
8
Saya baru saja menekan bug ini dan butuh setengah hari untuk mencari tahu apa yang sedang terjadi. Serius, siapa yang memutuskan untuk meletakkan dbmdl di root proyek? Bukankah seharusnya di / obj atau sesuatu? Maksud saya, sesekali saya harus menghapus .dbmdl hanya agar SSDT berfungsi. Sungguh membingungkan tim saya ketika saya menjelaskan bahwa "BERSIH" tidak benar-benar menghapus file ini karena tidak ada dalam keberatan, dan sekarang dbmdl konyol telah menghancurkan beberapa jam lagi dari produktivitas saya dengan omong kosong ini.
Pxtl
1
FYI ini ada di VS .gitgnore terbaru sekarang. Saya baru saja menghapus yang lama dan memiliki VS membuatnya kembali dan itu memecahkan masalah untuk tim saya. Berhati-hatilah jika Anda memiliki entri khusus di file yang ada.
Gabe
67

Takeaway dari orang lain adalah ...

  • Tambahkan *.jfmke.gitignore

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

  • Anda mungkin harus berlari git rm --cached *.jfm
emragin
sumber
1
Seratus kali YA untuk jawaban ini. Jelas, sederhana dan berhasil. Sebagai tambahan, saya menyerah pada SSDT dan sqlproj beberapa waktu lalu. Dan jenis masalah ini adalah persis mengapa. Sekarang saya mengandalkan skrip sql tua polos, dan migrasi khusus. Jauh lebih mudah dikelola dan sedikit sakit kepala (yang Anda pikir akan menjadi kebalikannya).
pimbrouwers
1
Jika Anda .gitignoretidak dapat menggunakan baris baru Add-Content .\.gitignore `r`n*.jfmuntuk memastikannya berakhir pada jalurnya sendiri.
Codespaced
git rm --cached * .jfm sangat membantu. Terima kasih banyak!
Valeriy Lyuchyn