我有一个非常烦人的问题,我找到了解决方案,但我想问你为什么它会这样......
我正在使用 Visual Studio 2012 和 TFS 2012。一切都很好,但有一天我发现了一个问题。当我将新项目添加到我的解决方案时,每次重新打开解决方案时我总是会收到此消息:
This project file ... is not bound to source control, but the solution contains source control binding information for it. Do you want...
不管我做了什么,我仍然有这个信息。在 File->Source Control->Advanced->Change Source Control...' 窗口中,一切都很好。正确创建的 *.vspscc 文件具有良好的内容。我正在删除绑定(bind)并一次又一次地添加它,但这没有帮助。我一直收到这个烦人的消息...
然后我在 *.csproj 文件中发现了一个不同之处。我有问题的项目没有以下 XML 数据:
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
当我添加这些行时,问题就解决了......
有没有人可以告诉我为什么缺少这些元素以及为什么它们会导致关于解决方案绑定(bind)的烦人消息导致这种永无止境的问题?
谢谢
最佳答案
发生这种情况是因为解决方案文件中包含源代码控制信息,而 .csproj 文件将只实现解决方案文件告诉它的内容。
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
SAK 指的是“应该已经知道”,因为它从解决方案文件中提取信息。
解决方案文件应包含类似于下面显示的内容
GlobalSection(TeamFoundationVersionControl) = preSolution
SccNumberOfProjects = 4
SccEnterpriseProvider = {3BA58AB2-18FA-4F8D-95D4-32DDF27D184A}
SccTeamFoundationServer = http://TFSSERVER:8080/tfs/DPC
SccLocalPath0 = .
SccProjectUniqueName1 = Project1\\Project1.csproj
SccProjectName1 = Project1
SccLocalPath1 = Project1
SccProjectUniqueName2 = Project2\\Project2.csproj
SccProjectName2 = Project2
SccLocalPath2 = Project2
SccProjectUniqueName3 = Project3\\Project3.csproj
SccProjectName3 = Project3
SccLocalPath3 = Project3
SccProjectUniqueName4 = Project4\\Project4.csproj
SccProjectName4 = Project4
SccLocalPath4 = Project4
EndGlobalSection
现在可能发生的情况是,如果第一次 checkin 解决方案和项目的人不包含 Solution.vssscc 文件,那么 Visual Studio 无法确定源代码管理。如果发生这种情况,请删除 vssscc 文件并关闭解决方案。重新打开解决方案将创建一个新的 vssscc 文件,确保将其重新 checkin 源代码管理。
添加项目时要检查的另一件事是确保解决方案文件被 checkout ,然后在您提交项目时再次 checkin 。
只要源代码管理正确处理了解决方案文件和 vssscc 文件,那么当您添加新项目时,它应该从解决方案文件中获取源代码管理设置,然后将 SCC 节点应用于新项目
关于visual-studio-2012 - 为什么在项目文件中缺少 <SccProjectName> 导致 "The project file is not bound to source control",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467994/