显然没有理由,每次我打开解决方案时,Visual Studio都会将sln文件签出。
如果将其与以前的版本进行比较,则没有任何变化。但这确实令人沮丧,因为每个人都有解决方案。
我正在使用VS 2008和TFS 2008,两者均为SP2。
关于如何阻止这种情况发生的任何想法?或者是VS的TFS源代码控制提供程序的功能/错误?
显然没有理由,每次我打开解决方案时,Visual Studio都会将sln文件签出。
如果将其与以前的版本进行比较,则没有任何变化。但这确实令人沮丧,因为每个人都有解决方案。
我正在使用VS 2008和TFS 2008,两者均为SP2。
关于如何阻止这种情况发生的任何想法?或者是VS的TFS源代码控制提供程序的功能/错误?
Answers:
.sln文件中包含以下内容时,会发生这种情况:
GlobalSection(ExtensibilityGlobals) = postSolution
MyGlobalProperty = AnyValue
EndGlobalSection
我发现企业库添加了其中之一。我将其删除,在解决方案中签入,然后关闭然后重新打开,不再进行自动签出。
从内存中,如果使用“ 工具”,“选项”菜单并选择“ 源代码控制”,“环境”面板,则应该有一些选项用于配置IDE与版本控件的接口方式。
我认为其中一些选项可控制开放行为的检出。
尽管最初并不能阻止问题,但是如果没有进行任何更改,那么自由使用Team Foundation Power Tools的 “撤消不变”命令将(使您感到惊讶)撤消待处理的编辑。
允许签出,然后比较两个文件。如果VS添加了类似的东西
<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
您在VS2008中遇到带有解决方案的VS错误,但未移植到VS2005
检查此链接以获取更多详细信息:
正在使用Microsoft企业库通过一个或多个解决方案项目以静默方式检出Visual Studio解决方案文件-我相信这与企业库配置实用程序有关,后者允许对各种应用程序块进行配置管理-http ://msdn.microsoft.com/zh-CN/library/ff649479.aspx
请参阅此Microsoft反馈过帐:http : //connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open
您是否在比较之前保存文件?不久前发生在我身上,并一直说文件之间没有变化,但是一段时间之后,我意识到我没有保存文件,并且它与磁盘中的版本进行比较,而不是与内存中的版本进行比较。
每次在Visual Studio中打开某个解决方案时,它都会执行某些操作,这可能会导致您的.sln或项目文件更改,然后要求您检出该文件。当开发人员机器中的文件夹结构发生更改时,或者当他们没有所有文件的相同版本时,就会发生这种情况。也许有人在某个文件夹中添加了一个项目,而另一个开发人员在另一个地方拥有了相同的项目。我看到发生这种情况的另一种情况是,当我们有一些c ++项目的解决方案时,由于某种原因,其中一个c ++项目具有一个带有绝对路径的.res文件。VS自动生成此文件后,它将在开发人员机器之间保持更改。
我建议您打开.sln文件,并根据某些开发人员机器中可能不存在的绝对路径或相对路径来查找,这取决于它们从您的源代码管理中获取的文件。