VisualStudio2015 Update1で発生したチームエクスプローラーのGitに関するエラーと回避方法

※2016/6/11 記事の内容に誤りがあったので修正いたしました。


 先日VisualStudio2015 Update1が公開されたのでアプデートしました。

 アップデートは問題なく完了し、以前のVisualStudio2015で使用していたプロジェクト(正確に言うと2013で作成したプロジェクトを2015向けに変換したもの)を開いてみました。しばらく使って問題も特に起こっていないと思ったら……

 なぜかチームエクスプローラーの「変更」の項目に、変更や追加を行ったファイルが反映されていません。それどころか、除外するファイルも無視するファイルもなにも表示されていないことに気が付きました。VisualStudio2015ではGitを使ってソースコードのバージョン管理を行うことができ、チームエクスプローラーのウインドウから操作できるのですが、この状態では変更が検知されておらず、VisualStudioからのコミットができません。(コマンドプロンプトからはできそうでした)
 
 そこで、VisualStudioの出力ウインドウの「Git」の項を確認してみると、ソリューションディレクトリにある「(ソリューション名).VC.opendb」というファイルが他のプロセスに使用されているため開けないといったエラーが表示されていました。
 エクスプローラーでソリューションディレクトリを確認してみると、確かに「(ソリューション名).VC.opendb」というファイルが隠しファイルとして存在し、試しにテキストエディタで開こうとしてみてもアクセス権限がないと警告され開くことができません。

 もしかしたらVisualStudioがこのファイルを使っているのではないかと思い、VisualStudioを閉じてみたところそのファイルも消えました。どうやらVisualStudioが一時的に作るファイルのようです。VisualStudioのあるプロセスが開いているこの一時ファイルを、それとはまた別のVisualStudioのチームエクスプローラーに関するプロセスが開こうとしているためにエラーが発生しているのだと考えました。
 ですがVisualStudioが起動している間のみ存在する一時ファイルなので、Gitで管理する必要は無いはずです。

 そこで、ソリューションディレクトリにある、「.gitignore」ファイル内に「*.VC.opendb」を追加することで、上記の一時ファイルをGitの管理対象外に指定したところ、VisualStudioで出力ウインドウに表示されていたエラーが消え、変更されたファイルも正常にチームエクスプローラーで検知されるようになりました。


2016/6/11追記
 いただいたコメントをきっかけに、VisualStudio2015 Update2 で作成したプロジェクトの.gitignoreファイルを確認したところ、既定で「*.opendb」が記述されていました。
 そのため、ソリューションディレクトリにある、「.gitignore」ファイル内に「*.opendb」を追加する方がよさそうです。これによりGitのエラーは消え、チームエクスプローラーからも正常に操作できるようになります。


 アップデート前はこのようなことは起こらなかったので、このファイルは今回のアップデート後から新たに作成されるようになったのかもしれません。
スポンサーサイト




  • テーマ:プログラミング
  • ジャンル:コンピュータ
  • コメント

    No title

    自分の環境では
    「*.VS.opendb」 だと効果がなく
    「*.opendb」だと効果がありました

    参考までに

    Re: No title

    > 自分の環境では
    > 「*.VS.opendb」 だと効果がなく
    > 「*.opendb」だと効果がありました
    >
    > 参考までに

    ご報告ありがとうございます。
    記事が間違えていました。すみません。
    正しくは*.VC.opendbでした。

    コメントの投稿

    非公開コメント

    プロフィール

    Cdec

    Author:Cdec
    情報系修士出身のIT系企業会社員。趣味で変なゲームを作ったり、気まぐれにゲームしたりしています。

    ■メインPC
    Win11Pro, Core i7-13700K, DDR5-6000 32GB*2, SSD 512GB, HDD 2TB*2, RTX4070
    ■サブPC1
    Win11Pro, Core i5-11400H, DDR4 16GB, SSD 512GB, RTX3050 Laptop
    ■サブPC2
    MacBook Air M2(2022年)
    ■ファイルサーバー
    WinServer2016Standard, DDR4-2133 2GB*2, Corei5-6500, SSD 128GB, HDD 1TB*2+2TB
    ■趣味制作
    ゲームを作ってます。
    ・C#(Unity):
    ・C++(DXライブラリ)
    ・Python
    ■仕事
    主にWebサービス開発をしてます。
    ・Pythoh/JavaScript/TypeScript