Thư mục dự án cơ sở dữ liệu Visual Studio 2015 chứa một tệp có phần mở rộng jfm


242

Giả sử chúng ta có một dự án cơ sở dữ liệu được gọi MyDatabasethì một tệp được gọi MyDatabase.jfmsẽ xuất hiện trong thư mục gốc của thư mục dự án.

  • Nó bị khóa độc quyền trong khi dự án đang mở trong Visual Studio
  • Nó là một tập tin nhị phân
  • Nó chỉ mới bắt đầu xuất hiện gần đây (vài ngày qua)

Tôi đã thực hiện một tìm kiếm Google, mà không cung cấp bất kỳ cái nhìn sâu sắc. Có một số tài liệu tham khảo cho một số phần mềm cũ, nhưng hầu hết các kết quả là spam / trojanware. Tôi cũng đã xem xét SO, nhưng điều đó cũng không mang lại kết quả nào.

Có ai biết nó là gì và tại sao nó ở đó?

Kế hoạch là thêm nó vào tệp gitignore cho Visual Studio , nhưng tôi cần biết trước tiên để gửi PR ...

CẬP NHẬT

Điều này hiện đang phá vỡ giao diện Team Explorer Change. Không có thay đổi nào được hiển thị với phần sau từ cửa sổ đầu ra:

Ảnh chụp màn hình lỗi từ tab đầu ra

Như vậy tôi sẽ thêm tệp vào tệp .gitignore và gửi PR . Sẽ tốt hơn nếu cuối cùng tìm hiểu tập tin này là gì và nó đến từ đâu ...


61
Tôi đã cập nhật Windows 10 với bản cập nhật kỷ niệm và giờ đây tệp này đã được tạo.
Fabian Vilers

16
Thêm * .jfm vào tệp .gitignore dường như để khắc phục sự cố.
Fabian Vilers

4
Tôi phải nói đùa: Bạn đã thử gỡ cài đặt và cài đặt lại chưa?
pookie

3
+1 Có vấn đề mà không có thay đổi nào được hiển thị. Xóa tệp jfm khỏi kiểm soát nguồn thông qua gitbash và thêm nó vào tệp gitignore đã khắc phục sự cố sau nhiều đấu tranh. Phải đóng Visual Studio để git "git rm -rf" hoạt động .. Thật là một cơn ác mộng!
Noobie3001

2
@ Noobie3001 cũng làm việc cho tôi. Thêm * .jfm vào .gitignore, xóa .jfm từ repo git từ xa, loại bỏ các thay đổi cục bộ và đồng bộ hóa với điều khiển từ xa. Vấn đề cố định.
Ivan G.

Câu trả lời:


187

Đây là một vấn đề gây ra bởi công cụ ESENT dựa trên các Dự án SQL được thêm vào trong một tệp mới. Đây là một tính năng mới trong Windows 10 Anniversary Edition để tránh mất dữ liệu, nhưng thực tế các dự án SQL lưu trữ tệp bộ đệm .dbmdl trong thư mục gốc của dự án có nghĩa là tệp bị khóa này được thêm vào kiểm soát nguồn Git.

Ghi chú:

  • Một yêu cầu kéo để sửa lỗi này trong GitIgnore đã được chấp nhận và đội Visual Studio đang làm việc để bao gồm này trong bản cập nhật trong tương lai. Điều này sẽ đảm bảo rằng đối với các dự án mới, tệp .gitignore bao gồm .jfm và sự cố sẽ không xảy ra
  • Nhóm SSDT cốt lõi đang làm việc để cung cấp giải pháp cho vấn đề này trong bản cập nhật trong tương lai, nhưng hiện tại giải pháp tốt nhất là thêm thủ công như đã thảo luận trong các bình luận.

Tiết lộ : Tôi làm việc trong nhóm SSDT cho Microsoft.


cũng cảm ơn bạn vì cuối cùng đã cung cấp một câu trả lời thực sự cho tập tin là gì!
The Beard Llama

1
Xin lỗi về PR - Tôi đã theo dõi vấn đề này trong nội bộ và làm theo các bước được đề xuất (bao gồm cả thực hiện PR). Tôi chỉ nhận thấy sau khi tôi gửi bài đăng này tham chiếu một PR riêng và sau đó về cơ bản họ đã chấp nhận nó! Bài học rút ra để đọc các bài đăng StackOverflow cẩn thận hơn :-) Nhân tiện, Technocore đã có câu trả lời trước cho câu hỏi này nhưng nó đã bị xóa vì một số lý do. Cảm ơn vì đã nêu ra vấn đề này và xin lỗi vì sự bất tiện này - chúng tôi đã bất ngờ trước sự thay đổi tính năng ESENT và vẫn đang tìm cách khắc phục đúng.
Kevin Cunnane

Đừng lo lắng, công cụ PR không thực sự quan trọng. Không chắc chắn tại sao nó đã được gỡ bỏ; có lẽ nó không chi tiết / chính xác như cần có để trả lời.
The Beard Llama

8
Tôi vừa gặp lỗi này và tôi phải mất nửa ngày để tìm hiểu chuyện gì đang xảy ra. Nghiêm túc mà nói, ai đã quyết định đặt dbmdl trong thư mục gốc của dự án? Nó không nên ở / obj hay cái gì đó? Ý tôi là, thỉnh thoảng tôi phải xóa .dbmdl chỉ để SSDT hoạt động. Nó đã làm bối rối đội ngũ của tôi khi tôi giải thích rằng "SẠCH" không thực sự xóa tệp này vì nó không ở trong obj, và bây giờ dbmdl ngớ ngẩn đã phá hủy một vài giờ năng suất của tôi với jfm vô nghĩa này.
Pxtl

1
FYI này là trong VS .gitgnore mới nhất bây giờ. Tôi vừa xóa cái cũ và VS đã tạo lại nó và điều đó đã giải quyết vấn đề cho đội của tôi. Chỉ cần cẩn thận nếu bạn có các mục tùy chỉnh trong tập tin hiện tại của bạn.
Gabe

67

Việc mua từ người khác là ...

  • Thêm *.jfmvào của bạn.gitignore

(Trong quyền hạn, Add-Content .\.gitignore *.jfm)

  • Bạn có thể cần phải chạy git rm --cached *.jfm

1
Một trăm lần CÓ cho câu trả lời này. Rõ ràng, đơn giản và nó đã làm việc. Ở một bên, tôi đã từ bỏ SSDT và sqlproj trước đây. Và loại vấn đề này chính xác là tại sao. Bây giờ tôi dựa vào các tập lệnh sql cũ đơn giản và di chuyển tùy chỉnh. Cách dễ quản lý hơn và ít đau đầu hơn (mà bạn nghĩ sẽ ngược lại).
pimbrouwers

1
Nếu bạn .gitignorecó thể không kết thúc với việc sử dụng dòng mới Add-Content .\.gitignore `r`n*.jfmđể đảm bảo nó kết thúc trên dòng riêng của mình.
Mã số

git rm --cached * .jfm thực sự có ích. Cảm ơn rât nhiều!
Valeriy Lyuchyn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.