Visual Studio 2015データベースプロジェクトディレクトリには拡張子jfmのファイルが含まれています


242

というデータベースプロジェクトがあるとするとMyDatabase、というファイルMyDatabase.jfmがプロジェクトディレクトリのルートに表示されます。

  • プロジェクトがVisual Studioで開いている間は排他的にロックされます
  • バイナリファイルです
  • 最近(数日間)表示され始めたばかりです

Google検索を実行しましたが、洞察は得られませんでした。古いソフトウェアへの言及がいくつかありますが、結果のほとんどはスパム/トロイの木馬です。私もSOを調べましたが、それでも結果は出ていません。

それが何で、なぜそこにあるのか誰か知っていますか?

Visual Studioのgitignoreファイルに追加する計画ですが、最初にPRを送信する方法を知る必要があります...

更新

これにより、チームエクスプローラーの変更ビューが壊れます。「出力」ウィンドウには、次のように表示される変更はありません。

出力タブのエラーのスクリーンショット

そのため、ファイルを.gitignoreファイルに追加し、PR送信します。最終的にこのファイルが何であるか、どこから来たのかを学ぶのは良いことです...


61
Windows 10をアニバーサリーアップデートで更新し、このファイルを生成しています。
Fabian Vilers、2016

16
* .jfmを.gitignoreファイルに追加すると、問題が解決するようです。
Fabian Vilers

4
冗談ですが、アンインストールしてから再インストールしましたか?
pookie

3
+1変更がまったく表示されないという問題がありました。gitbashを介してソース管理からjfmファイルを削除し、それをgitignoreファイルに追加すると、多くの苦労の後に問題が修正されました。git "git rm -rf"を機能させるためにVisual Studioを閉じる必要がありました。
Noobie3001

2
@ Noobie3001も私のために働いた。* .jfmを.gitignoreに追加し、リモートgitリポジトリから.jfmを削除して、ローカルの変更を破棄し、リモートと同期します。問題が修正されました。
Ivan G.

回答:


187

これは、SQLプロジェクトが依存するESENTエンジンが新しいファイルに追加することによって引き起こされる問題です。これは、データの損失を回避するためのWindows 10 Anniversary Editionの新機能ですが、SQLプロジェクトがプロジェクトルートの下に.dbmdlキャッシュファイルを格納するという事実は、このロックされたファイルがGitソース管理に追加されることを意味します。

ノート:

  • プル要求 GitIgnoreでこれを修正するには、受け入れられているとVisual Studioチームは、今後のアップデートでこれを含めるために取り組んでいます。これにより、新しいプロジェクトでは.gitignoreファイルに.jfmが含まれ、問題は発生しなくなります
  • コアSSDTチームは、これに対するソリューションを将来のアップデートで提供するよう取り組んでいますが、現時点での最善のソリューションは、コメントで説明されているように手動で追加することです。

開示:私はMicrosoftのSSDTチームで働いています。


また、最終的にファイルが何であるかについて本当の答えを提供してくれてありがとう!
Bearded Llama

1
PRについて申し訳ありません。私はこの問題について社内でフォローアップしており、推奨される手順(PRを行うことを含む)に従っていました。この投稿が別のPRを参照していることを私が提出した後に気づいたのは、それまでに基本的にそれを受け入れていたからです。StackOverflowの投稿をより注意深く読むことを学んだレッスン:-)ちなみに、Technocoreは以前にこの質問に答えていましたが、何らかの理由で削除されました。この問題を報告していただきありがとうございます。ご不便をおかけして申し訳ありません。ESENT機能の変更に驚かされ、適切に修正することを検討していました。
Kevin Cunnane 2016

心配する必要はありません。PRのことはそれほど重要ではありませんでした。それが削除された理由がわかりません。おそらく、答えを出すために必要なほど詳細で正確ではありませんでした。
Bearded Llama

8
私はこのバグにぶつかっただけで、何が起こっているのかを理解するのに半日かかりました。真剣に、誰がdbmdlを最初にプロジェクトルートに置くことに決めましたか?/ objか何かにすべきではありませんか?つまり、SSDTを機能させるためだけに.dbmdlを削除する必要がある場合があります。「CLEAN」はこのファイルがobjにないため実際には削除されないことを説明したとき、それは私のチームの地獄を混乱させました、そして今、愚かなdbmdlはこのjfmナンセンスで私の生産性の別の数時間を破壊しました。
Pxtl

1
ちなみに、これは最新のVS .gitgnoreに含まれています。私は古いものを削除してVSに再作成させただけで、私のチームの問題は解決しました。既存のファイルにカスタムエントリがある場合は注意してください。
Gabe 2017年

67

他からのテイクアウトは...

  • 追加*.jfmあなたへ.gitignore

(Powershellでは、Add-Content .\.gitignore *.jfm

  • 実行する必要があるかもしれません git rm --cached *.jfm

1
この答えは100倍YESです。明快でシンプル、それはうまくいった。余談ですが、しばらく前にSSDTとsqlprojをあきらめました。そして、この種の問題はまさにその理由でした。今、私はプレーンな古いsqlスクリプトとカスタム移行に依存しています。より扱いやすく、頭痛が少なくなります(逆になると思います)。
pimbrouwers 2017年

1
もしあなた.gitignoreが改行で終わらないかもしれないなら、Add-Content .\.gitignore `r`n*.jfmそれがそれ自身の行で終わることを確実にするために使います。
コードスペース、

git rm --cached * .jfmは本当に役立ちました。どうもありがとうございました!
Valeriy Lyuchyn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.