原文:http://blog.useasp.net/archive/2015/12/15/how-to-permanently-remove-vs-project-TFS-source-version-control-binding.aspx
對於曾經做過TFS版本控制的項目,在版本控制服務不可用的時候,依然會在每次打開項目的時候都提示:當前項目是版本控制的項目,但是當前版本控制不可用,balabala的信息,如果是需要進行版本控制的項目在臨時無法連接到版本控制服務器的時候出現這個提示,也屬於正常的,但是如果是不再需要進行版本控制的項目,還這么次次打開都這么提示,就有些受不了——關鍵是,沒有TFS,只能想辦法刪除了。
在項目中要永久清除TFS版本控制,需要操作三步(請確保操作之前沒有在使用當前項目):
- 清除(刪除)項目下的所有版本控制文件,這些文件有:
*.vssscc,*.vspscc
刪除這些版本控制文件比較簡單,搜索這些后綴的文件,刪除即可;
- 修改項目的解決方案文件:
*.sln
先要確認解決方案文件(
*.sln)是可修改的,如果是Read-Only的文件,則需要先調整為可修改。
切勿使用Visual Studio打開文件,使用文本編輯器打開*.sln文件,在文件中,我們將能看到類似下面的代碼:code 123456789101112131415GlobalSection(TeamFoundationVersionControl) = preSolutionSccNumberOfProjects = 4SccEnterpriseProvider = {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}SccTeamFoundationServer = here is your project's tfsSccLocalPath0 = .SccProjectUniqueName1 = project-unique-name1.csprojSccProjectName1 = your-project-nameSccLocalPath1 = project-local-pathSccProjectUniqueName2 = project-unique-name2.csprojSccProjectName2 = project-name-2SccLocalPath2 = local-path2SccProjectUniqueName3 = project-unique-name3.csprojSccProjectName3 = project-name-3SccLocalPath3 = local-path3.EndGlobalSection這段代碼是項目啟動時加載的TFS配置,我們要剔除TFS,此段代碼就必須刪掉了,刪除之后,保存文件即可。
- 修改各個子項目中的版本控制信息,這些信息在:
*.csproj(C#項目,其他項目文件后綴不同)
完成上面兩步,項目的TFS控制信息已經清理的差不多了,如果是VS2010項目,則用2010打開的時候會有提示,選擇永久(完全)刪除源代碼控制的關聯綁定,確認即可完成整個項目的TFS清理工作1。
Mitchell這里使用的是VS2012,打開的是VS2013的項目,在打開項目的時候,雖然完成了上面兩步,但在加載項目時,在VS的輸出窗口中還是會顯示:
code 1234未能找到解決方案的映射。未能找到解決方案的映射。未能找到解決方案的映射。活動解決方案已暫時與源代碼管理斷開連接,因為服務器不可用。若要嘗試重新連接源代碼管理,請在服務器可用時關閉並重新打開解決方案。如果要連接到其他服務器,請使用“更改源代碼管理”對話框。這種問題是因為
*.csproj中還有版本控制信息,導致VS還會嘗試進行TFS相關操作,要解決這個問題,需要刪除*.csproj文件中的相關信息,用文本編輯器打開文件,你能看到類似下面的信息:code 123456789<PropertyGroup><!--其他配置--><TargetFrameworkVersion>v4.5</TargetFrameworkVersion><FileAlignment>512</FileAlignment><SccProjectName>???</SccProjectName><SccLocalPath>???</SccLocalPath><SccAuxPath>???</SccAuxPath><SccProvider>???</SccProvider></PropertyGroup>上面的
Scc*的配置即是版本控制信息。可以簡單粗暴的將它刪除即可,刪除完成后,保存文件。
完成上面的操作之后,我們再次用VS打開項目,就不會再有任何TFS的相關信息提示了,又可以和VS快樂的玩耍了。
當然如果你覺得這還是麻煩,那么你可以下載Mitchell寫的TFSEliminator 工具(需要.NET 4.0支持)
使用也是相當方便,有兩種方式:
- 1. 命令行:
|
1
2
3
4
5
|
# 在命令行下,使用:
# Application ProjectRoot
# 的格式即可完成對指定目錄下的TFS信息的剔除
# 如:項目在D:\Temp\Test下面
TFSEliminator.exe D:\Temp\Test
|
- 要直接運行,只需要將程序復制到項目的根目錄下,然后雙擊運行即可。
注意: 命令行會有提示,如果確認路徑沒有問題,記得按回車或者Y哦~


