たきるブログ

C#やOracleなどの情報を書いています。

【TFS】Team Foundation Serverの手動バインド解除

A社が開発が必要でB社に依頼した時、Team Foundation Serverを使ってバージョン管理をすると、接続先やリポジトリ名などをA社、B社ともに完全に一致させておかないと、差分プログラムなどの差し替えがめんどくさいことになる、と思う。
(差分ファイルだけ受け取れて、ドラッグ&ドロップ差し替えが可能ならそんなことないでしょうけど)

ともにTeam Foundation Serverを使っているなら少なからず連動するからそこまで大変じゃないのかもだけど、A社Subversion、B社Team Foundation Serverってなってると、めんどくさいことになった。
よくは知らないが、Team Foundation Serverで管理してると、管理が外れた状態でソースをエクスポートできない?
Subversionで管理しているから、ソリューション/プロジェクトファイルごと丸々コピペするとバインド先がないと怒られるし、元々自分の環境ではバインドしていないんだからIDE上からは解除も出来ない。

で、そういう時の手動でバインドする方法を記しておこうと思う。


手順

1.全ディレクトリ、ファイルの読み取り専用を外す。

2.ソリューションファイル(.sln)と同じディレクトリ配下にある.vsssccファイルを削除する。

3.プロジェクトファイル(.vbproj)と同じディレクトリ配下にある.vspsccファイルを削除する。

4.ソリューションファイルを編集する。
以下のような「GlobalSection(TeamFoundationVersionControl)」セクションがあるので、そのセクションを削除する。

GlobalSection(TeamFoundationVersionControl) = preSolution
    SccNumberOfProjects = 10
    SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
    SccTeamFoundationServer = http://servername:8080/tfs/%E3%83%86%E3%82%B9%E3%83%88
    SccLocalPath0 = .
    SccProjectUniqueName1 = Common\\Common.vbproj
    SccProjectName1 = Common
    SccLocalPath1 = Common
EndGlobalSection

5.プロジェクトファイルを編集する。
タグ内に、以下のような記述があるので、削除する。

<SccProjectName>TEST</SccProjectName>
<SccLocalPath>TEST</SccLocalPath>
<SccAuxPath>TEST</SccAuxPath>
<SccProvider>TEST</SccProvider>

これで完了!!安心してソリューションファイルをダブルクリックしてIDEを起動し、開発を行えます。
Team Foundation Serverを使うなら、そもそもA社、B社とかいう閉鎖的な空間でサーバ構築するべきじゃないんだろうな。