【问题描述】用 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 文件夹。
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清理工作。
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哦~