Visual StudioThe project appears to be under source control, but the associated source control plu(代

少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述Visual StudioThe project appears to be under source control, but the associated source control plu(代相关的知识,希望能为你提供帮助。
【Visual StudioThe project appears to be under source control, but the associated source control plu(代】【问题描述】用 Visual Studio 2013打开一个项目时,出现下面错误:

Visual StudioThe project appears to be under source control, but the associated source control plu(代

文章图片

【问题原因】参考 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 = 4               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-2               SccLocalPath2 = local-path2               SccProjectUniqueName3 = project-unique-name3.csproj               SccProjectName3 = project-name-3               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.5< /TargetFrameworkVersion>     < FileAlignment> 512< /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哦~

    推荐阅读