プロジェクトファイルが勝手にチェックアウト状態になる

ウェブアプリケーションを開発している際に、何も変更していないのにプロジェクトファイルがチェックアウト状態になることがあります。


原因は、プロジェクトプロパティの[Web]タブの設定です。



・[すべてのユーザにサーバ設定を適用(プロジェクトファイルに格納)]がオン。
・[Visual Studio 開発サーバを使用する(D)]がオン。
・[ポートの自動割り当て]がオン。



となっている環境で発生します。これは自動割り当てされたポートがプロジェクトファイルに書き込まれるためです。VisualStudioが編集のためにTFSやVSSなどのソースコード管理システムから自動チェックアウトします。


対応方法は、上記のうち[すべてのユーザにサーバ設定を適用(プロジェクトファイルに格納)]をオフにしておきます。開発時に利用するウェブサーバの設定がすべてプロジェクトファイルではなく、ユーザファイル(**.csproj.user)に書き込まれるようになります。ユーザファイルはソースコード管理対象外ですから、変更もしていないのにチェックアウト状態になることはなくなります。



★★★★★★★★★★★★★★★★★★★★★★



また、開発用ウェブサーバのポート割り当てを固定にしている場合(IIS Expressなど。最近はこちらがデフォルトですね。)だと、ターミナルサービス(RDPセッション)環境ではポート番号が重複しデバッグが出来なくなります。(VisualStudioがデバッグ実行直後、終了する。)



・[すべてのユーザにサーバ設定を適用(プロジェクトファイルに格納)]はオフにしておいた方が無難です。


PS:プロジェクト設定ついでに、デバッガーセクションの[エディットコンティニュを有効にする(B)]もオンにしておきましょう。