完整的错误消息是:
项目“my.project.name”受源代码控制。一个错误 发生了向源代码管理注册该项目的情况。这是 建议您不要对此项目进行任何更改。
似乎我可以使错误消息消失,并通过打开 csproj 文件正确加载项目,并删除名称以“scc”开头的所有节点 - 但是,然后我必须确认想要使用解决方案源代码控制每次打开解决方案时的设置。
有什么建议吗?
请打开您项目的 *.csproj 文件,然后替换以下标签:
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
与
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
关闭解决方案,关闭VS,重新打开VS,问题就解决了。
问题出在
*.csproj.user
以及您是否使用 *.csproj.vspscc
进行源代码控制(在 VS2012 中)。删除两者,关闭解决方案,关闭 VS,使用运行身份(最好是管理员)重新打开 VS,应该没问题。
我会尝试删除 .csproj 文件中以前的源代码管理绑定,然后使用 文件->源代码控制->更改源代码控制...
(重新)绑定它在 VS2012 中,工具 -> 选项 -> 源代码管理 -> 插件部分。更改当前源控制插件。
将项目从 Mercurial 迁移到 GiT 后,我遇到了同样的问题。我将“当前源代码控制插件”从 Mercucial 更改为 VisualHG(我必须从扩展安装,因为我在开始时没有此选项)。
当其他人向解决方案添加项目并且我获得了最新的解决方案时,我遇到了问题。我所做的就是重新启动 Visual Studio。
如果其他人也遇到同样的问题:我们最终解决了该问题,备份了项目,从解决方案中删除了该项目,将解决方案签入源代码管理而不包含它,然后再次添加该项目。
幸运的是,这是一个新的小项目,历史很少——我讨厌用一个大型的旧项目来做这件事......
如果我在你那里,我可能会首先尝试 tbergstedt 的建议。
由于上述方法都不适合我,而且我遇到了在其他项目中正常的库的问题,因此我有理由认为这是解决方案的问题而不是单个项目的问题。
对我有用的是在记事本中打开解决方案文件(.sln)(为了安全起见,首先进行备份),如果有一个部分:
GlobalSection(SourceCodeControl) = preSolution
...
EndGlobalSection
然后删除它,保存解决方案并重新打开。问题已为我解决。
以防万一您正在使用其他工具进行源代码控制,例如Git 和 Mercurial 的源代码树,那么您只需在 VS 中将当前源代码控制插件设置为 None 即可。
在 VS2015 中,工具 -> 选项 -> 源代码管理 -> 插件部分。将当前源控制插件更改为无。