【问题描述】用 Visual Studio 2013打开一个项目时,出现下面错误:

【问题原因】参考 http://codeverge.com/asp.net.web-forms/the-project-appears-to-be-under-source-cont/434113

出现上面错误的原因是,项目使用了 VSS 或 TFS 或 SVN 等版本控制工具,而本机没有安装对应的工具。

如果使用了 VSS 或 TFS,那么工程所在的文件夹下会有 .vssscc 文件;

如果使用了SVN,那么工程所在的文件夹下会有一个隐藏的 .svn 文件夹。

【解决方案】 参考 http://blog.useasp.net/archive/2015/12/15/how-to-permanently-remove-vs-project-TFS-source-version-control-binding.aspx

1、清除(删除)项目下的所有版本控制文件,这些文件有: *.vssscc,*.vspscc,*.scc,删除这些版本控制文件比较简单,搜索这些后缀的文件,删除即可;

2、修改项目的解决方案文件:*.sln

先要确认解决方案文件(*.sln)是可修改的,如果是Read-Only的文件,则需要先调整为可修改。
切勿使用Visual Studio打开文件,使用文本编辑器打开*.sln文件,在文件中,我们将能看到类似下面的代码:

GlobalSection(TeamFoundationVersionControl) = preSolution
       SccNumberOfProjects =
       SccEnterpriseProvider = {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
       SccTeamFoundationServer = here is your project's tfs
       SccLocalPath0 = .
       SccProjectUniqueName1 = project-unique-name1.csproj
       SccProjectName1 = your-project-name
       SccLocalPath1 = project-local-path
       SccProjectUniqueName2 = project-unique-name2.csproj
       SccProjectName2 = project-name-
       SccLocalPath2 = local-path2
       SccProjectUniqueName3 = project-unique-name3.csproj
       SccProjectName3 = project-name-
       SccLocalPath3 = local-path3.
   EndGlobalSection

这段代码是项目启动时加载的TFS配置,我们要剔除TFS,此段代码就必须删掉了,删除之后,保存文件即可。

3、修改各个子项目中的版本控制信息,这些信息在:*.csproj(C#项目,其他项目文件后缀不同)

完成上面两步,项目的TFS控制信息已经清理的差不多了,如果是VS2010项目,则用2010打开的时候会有提示,选择永久(完全)删除源代码控制的关联绑定,确认即可完成整个项目的TFS清理工作1

Mitchell这里使用的是VS2012,打开的是VS2013的项目,在打开项目的时候,虽然完成了上面两步,但在加载项目时,在VS的输出窗口中还是会显示:

未能找到解决方案的映射。
未能找到解决方案的映射。
未能找到解决方案的映射。
活动解决方案已暂时与源代码管理断开连接,因为服务器不可用。若要尝试重新连接源代码管理,请在服务器可用时关闭并重新打开解决方案。如果要连接到其他服务器,请使用“更改源代码管理”对话框。

这种问题是因为*.csproj中还有版本控制信息,导致VS还会尝试进行TFS相关操作,要解决这个问题,需要删除*.csproj文件中的相关信息,用文本编辑器打开文件,你能看到类似下面的信息:

<PropertyGroup>
  <!--其他配置-->
  <TargetFrameworkVersion>v4.</TargetFrameworkVersion>
  <FileAlignment></FileAlignment>
  <SccProjectName>???</SccProjectName>
  <SccLocalPath>???</SccLocalPath>
  <SccAuxPath>???</SccAuxPath>
  <SccProvider>???</SccProvider>
</PropertyGroup>

上面的Scc*的配置即是版本控制信息。可以简单粗暴的将它删除即可,删除完成后,保存文件。

完成上面的操作之后,我们再次用VS打开项目,就不会再有任何TFS的相关信息提示了,又可以和VS快乐的玩耍了。

4、当然 如果你觉得这还是麻烦,那么你可以下载Mitchell写的TFSEliminator工具(需要.NET 4.0支持),使用也是相当方便,有两种方式:

(1) 命令行:

# 在命令行下,使用:
# Application ProjectRoot
# 的格式即可完成对指定目录下的TFS信息的剔除
# 如:项目在D:\Temp\Test下面
TFSEliminator.exe D:\Temp\Test

(2) 要直接运行,只需要将程序复制到项目的根目录下,然后双击运行即可。

注意: 命令行会有提示,如果确认路径没有问题,记得按回车或者Y哦~

最新文章

  1. python常用模块json、os、sys
  2. mysql5.6 主从同步
  3. 动态创建script在IE中缓存js文件时导致编码不正确bug
  4. OAF_开发系列13_实现OAF通过Vector动态查询设置(案例)
  5. GTAC 2015将于11月10号和11号召开
  6. memcache 开发版
  7. C#事务相关
  8. 读懂diff
  9. LeetCode 343
  10. 《Swift编程语言》中文翻译及读书笔记page25
  11. POJ 1284 Primitive Roots 原根
  12. BZOJ 1303 【CQOI2009】中位数图
  13. Delphi xe7并行编程快速入门(转)
  14. Jenkins的新建job和配置job
  15. Android开发之NavigationView的使用
  16. 50行Python代码构建小型区块链
  17. SaltStack 架构自动部署 03
  18. PyChram简单使用教程
  19. 27.app后端搭建聊天服务器的经历
  20. python常用函数用法整理

热门文章

  1. Linux运维笔记--第四部
  2. (转发)IOS高级开发~Runtime(三)
  3. iOS动画之iOS UIBezierPath类 介绍
  4. FTP服务-实现vsftpd虚拟用户
  5. 快速排序和快速选择(quickSort and quickSelect)算法
  6. vue-cli webpack配置cdn路径 以及 上线之后的字体文件跨域处理
  7. HDU - 1251 统计难题(Trie树)
  8. hdu 5441
  9. SQL_2_查询Select语句的使用
  10. 4003.基于Dijsktra算法的最短路径求解