ไดเรกทอรีโครงการฐานข้อมูล Visual Studio 2015 ประกอบด้วยไฟล์ที่มีนามสกุล jfm


242

สมมติว่าเรามีโครงการฐานข้อมูลชื่อMyDatabaseแล้วไฟล์ที่เรียกว่าMyDatabase.jfmปรากฏในรูทของไดเรกทอรีโครงการ

  • มันถูกล็อคโดยเฉพาะในขณะที่โครงการเปิดใน Visual Studio
  • มันเป็นไฟล์ไบนารี
  • มันเพิ่งเริ่มปรากฏเมื่อเร็ว ๆ นี้ (สองสามวันที่ผ่านมา)

ฉันทำการค้นหาโดย Google ซึ่งไม่ได้ให้ข้อมูลเชิงลึกใด ๆ มีการอ้างอิงถึงซอฟต์แวร์เก่าบางตัว แต่ผลลัพธ์ส่วนใหญ่เป็นสแปม / โทรจัน ฉันได้ดูด้วยเช่นกัน แต่นั่นก็ไม่ได้ให้ผลลัพธ์ใด ๆ เช่นกัน

ไม่มีใครรู้ว่ามันคืออะไรและทำไมมันอยู่ที่นั่น?

แผนจะเพิ่มลงในไฟล์ gitignore สำหรับ Visual Studioแต่ฉันต้องรู้ว่ามันคืออะไรก่อนส่ง PR ...

UPDATE

นี่คือการทำลายมุมมองการเปลี่ยนแปลง Team Explorer ไม่มีการเปลี่ยนแปลงที่จะแสดงพร้อมกับสิ่งต่อไปนี้จากหน้าต่างเอาต์พุต:

สกรีนช็อตของข้อผิดพลาดจากแท็บผลลัพธ์

เป็นเช่นฉันจะเพิ่มไฟล์ไปยังแฟ้ม .gitignore และส่งประชาสัมพันธ์ มันจะเป็นการดีหากได้เรียนรู้ว่าไฟล์นี้คืออะไรและมาจากไหน ...


61
ฉันได้อัปเดต Windows 10 พร้อมอัปเดตครบรอบและตอนนี้ฉันกำลังสร้างไฟล์นี้
Fabian Vilers

16
การเพิ่ม * .jfm ไปยังไฟล์. gitignore ดูเหมือนว่าจะแก้ไขปัญหาได้
Fabian Vilers

4
ฉันต้องล้อเล่น: คุณลองถอนการติดตั้งและติดตั้งใหม่หรือไม่?
pookie

3
+1 มีปัญหาที่ไม่มีการเปลี่ยนแปลงใด ๆ ปรากฏขึ้น การลบไฟล์ jfm จากแหล่งควบคุมผ่าน gitbash และเพิ่มลงในไฟล์ gitignore แก้ไขปัญหาหลังจากการต่อสู้อย่างหนัก ต้องปิด Visual Studio สำหรับคอมไพล์ "git rm -rf" เพื่อทำงาน .. ช่างเป็นฝันร้าย!
Noobie3001

2
@ Noobie3001 ก็ทำงานให้ฉันด้วย เพิ่ม * .jfm ไปยัง. gignignore จากนั้นลบ. jfm จาก repo git ระยะไกลทิ้งการเปลี่ยนแปลงในท้องถิ่นและซิงค์กับรีโมท แก้ไขปัญหาแล้ว
Ivan G.

คำตอบ:


187

นี่เป็นปัญหาที่เกิดจากเอ็นจิ้น ESENT ที่พึ่งพาโดยโครงการ SQL ที่เพิ่มเข้าไปในไฟล์ใหม่ นี่เป็นคุณลักษณะใหม่ใน Windows 10 Anniversary Edition เพื่อหลีกเลี่ยงการสูญเสียข้อมูล แต่ความจริงแล้วโครงการ SQL เก็บไฟล์แคช. dbmdl ภายใต้รูทโปรเจ็กต์หมายความว่าไฟล์ที่ถูกล็อคนี้ถูกเพิ่มไปยังการควบคุมแหล่ง Git

หมายเหตุ:

  • คำขอดึงการแก้ไขปัญหานี้ใน GitIgnore ได้รับการยอมรับและทีม Visual Studio คือการทำงานที่จะรวมในการปรับปรุงในอนาคต สิ่งนี้จะช่วยให้มั่นใจได้ว่าสำหรับโครงการใหม่ไฟล์. gignignore จะรวม. jfm และปัญหาจะไม่เกิดขึ้น
  • ทีมงาน SSDT หลักกำลังทำงานเพื่อมอบโซลูชั่นนี้ในการอัปเดตในอนาคต แต่สำหรับตอนนี้ทางออกที่ดีที่สุดคือการเพิ่มด้วยตนเองตามที่กล่าวไว้ในความคิดเห็น

การเปิดเผยข้อมูล : ฉันทำงานกับทีม SSDT สำหรับ Microsoft


ขอขอบคุณสำหรับการให้คำตอบที่แท้จริงกับไฟล์นั้น ๆ !
Bearded Llama

1
ขออภัยเกี่ยวกับ PR - ฉันได้รับการติดตามปัญหานี้ภายในแล้วและทำตามขั้นตอนที่แนะนำ (รวมถึงการทำ PR) ฉันสังเกตเห็นหลังจากที่ฉันส่งว่าโพสต์นี้อ้างอิง PR แยกต่างหากจากนั้นพวกเขาก็ยอมรับโดยทั่วไป บทเรียนเรียนรู้ที่จะอ่าน StackOverflow อย่างระมัดระวังมากขึ้น :-) โดยวิธีการที่ Technocore มีคำตอบก่อนหน้าสำหรับคำถามนี้ แต่มันถูกลบด้วยเหตุผลบางอย่าง ขอขอบคุณที่แจ้งปัญหานี้และขออภัยในความไม่สะดวก - เราได้รับความประหลาดใจจากการเปลี่ยนแปลงคุณสมบัติของ ESENT และยังคงต้องการแก้ไขอย่างเหมาะสม
Kevin Cunnane

ไม่ต้องกังวลกับคู่ครองสิ่งประชาสัมพันธ์ไม่สำคัญจริงๆ ไม่แน่ใจว่าทำไมมันถึงถูกลบ บางทีมันอาจจะไม่ละเอียด / แม่นยำเท่าที่จำเป็นสำหรับคำตอบ
Bearded Llama

8
ฉันเพิ่งกดจุดบกพร่องนี้และฉันใช้เวลาครึ่งวันเพื่อหาสิ่งที่เกิดขึ้น ใครที่ตัดสินใจวาง dbmdl ในรูทโปรเจ็กต์อย่างจริงจัง ไม่ควรอยู่ใน / obj หรืออะไรนะ? ฉันหมายถึงบางครั้งฉันต้องลบ. dbmdl เพียงเพื่อให้ SSDT ทำงานต่อไป มันสร้างความสับสนให้กับทีมของฉันเมื่อฉันอธิบายว่า "CLEAN" ไม่ได้ลบไฟล์นี้เพราะมันไม่ได้อยู่ใน obj และตอนนี้ dbmdl ที่โง่ ๆ ได้ทำลายประสิทธิภาพการทำงานของฉันไปอีกสองสามชั่วโมงด้วย jfm ไร้สาระนี้
Pxtl

1
FYI นี้อยู่ใน VS. gitgnore ล่าสุดในขณะนี้ ฉันเพิ่งลบไฟล์เก่าและมี VS สร้างมันขึ้นมาใหม่และแก้ไขปัญหาให้กับทีมของฉัน โปรดระวังหากคุณมีรายการที่กำหนดเองในไฟล์ที่มีอยู่
Gabe

67

สิ่งที่ควรหลีกเลี่ยงจากผู้อื่นคือ ...

  • เพิ่ม*.jfmของคุณ.gitignore

(ใน PowerShell Add-Content .\.gitignore *.jfm)

  • คุณอาจต้องเรียกใช้ git rm --cached *.jfm

1
หนึ่งร้อยเท่าใช่สำหรับคำตอบนี้ ชัดเจนง่ายและใช้งานได้ นอกจากนี้ฉันเลิกใช้ SSDT และ sqlproj เมื่อไม่นานมานี้ และปัญหาประเภทนี้เป็นสาเหตุที่แท้จริง ตอนนี้ฉันพึ่งพาสคริปต์ sql แบบธรรมดาและการย้ายข้อมูลที่กำหนดเอง ปวดหัวจัดการง่ายขึ้นและน้อยลง (ซึ่งคุณคิดว่าจะตรงกันข้าม)
จ่ายเงิน

1
หากคุณ.gitignoreไม่ได้ขึ้นอยู่กับการขึ้นบรรทัดใหม่Add-Content .\.gitignore `r`n*.jfmเพื่อให้แน่ใจว่ามันจะจบลงที่บรรทัดของตัวเอง
Codespaced

git rm --cached * .jfm ช่วยได้จริงๆ ขอบคุณมาก!
Valeriy Lyuchyn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.