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

Posted ~小小鸟~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual StudioThe project appears to be under source control, but the associated source control plu(代相关的知识,希望对你有一定的参考价值。

【问题描述】用 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的文件,则需要先调整为可修改。
切勿使用打开文件,使用文本编辑器打开*.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哦~

以上是关于Visual StudioThe project appears to be under source control, but the associated source control plu(代的主要内容,如果未能解决你的问题,请参考以下文章

错误“在 Visual Studio 中找不到元数据文件 '...\Release\project.dll'”

如何在Visual Studio安装程序中添加Project输出时添加Project Dependency DLL?

Visual Studio add linux Project

Visual Studio Project System遇到错误

Visual Studio环境变量使用实例:使用环境变量来组织project

Visual Studio displaying errors even if projects build