Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual Studio 2015 Database Project directory contains a file with extension jfm

Assuming we have a database project called MyDatabase then a file called MyDatabase.jfm appears in the root of the project directory.

  • It is exclusively locked while the project is open in Visual Studio
  • It is a binary file
  • It has only started appearing recently (past couple of days)

I have done a Google search, which has not offered any insight. There are some references to some old software, but most of the results are spam/trojanware. I have also looked in SO, but that has not produced any results either.

Does anyone know what it is and why it's there?

The plan is to add it to the gitignore file for Visual Studio, but I need to know what it is first to submit the PR...

UPDATE

This is now breaking the Team Explorer Changes view. There are no changes being shown with the following from the Output window:

Screenshot of the error from the output tab

As such I will be adding the file to the .gitignore file and submitting the PR. It would be good to eventually learn what this file is and where it came from...

like image 531
The Bearded Llama Avatar asked Jun 08 '16 13:06

The Bearded Llama


People also ask

What is a JFM file in Visual Studio?

Assuming we have a database project called MyDatabase then a file called MyDatabase. jfm appears in the root of the project directory. It is exclusively locked while the project is open in Visual Studio. It is a binary file. It has only started appearing recently (past couple of days)

How do I open a JFM file?

If you cannot open your JFM file correctly, try to right-click or long-press the file. Then click "Open with" and choose an application. You can also display a JFM file directly in the browser: Just drag the file onto this browser window and drop it.


2 Answers

This is an issue caused by the ESENT engine relied on by SQL Projects adding in a new file. This is a new feature in Windows 10 Anniversary Edition to avoid data loss, but the fact SQL Projects store the .dbmdl cache file under the project root means this locked file is added to the Git source control.

Notes:

  • A pull request to fix this in GitIgnore has been accepted and the Visual Studio team is working to include this in future updates. This will ensure that for new projects the .gitignore file includes .jfm and the problem will not occur
  • The core SSDT team is working to provide a solution to this in a future update, but for now the best solution is to manually add as discussed in the comments.

Disclosure: I work on the SSDT team for Microsoft.

like image 151
Kevin Cunnane Avatar answered Oct 10 '22 15:10

Kevin Cunnane


The takeaway from others is...

  • Add *.jfm to your .gitignore

(In powershell, Add-Content .\.gitignore *.jfm)

  • You may need to run git rm --cached *.jfm
like image 30
emragins Avatar answered Oct 10 '22 16:10

emragins