似乎没有任何原因,每次我打开我的解决方案时,Visual Studio 都会检查 sln 文件。
如果我将其与之前的版本进行比较,就不会发现任何更改。但是这真的很令人沮丧,因为每个人都已经将解决方案检出了。
我正在使用 VS 2008 和 TFS 2008,都是 SP2 版本。
有没有办法阻止这种情况发生?或者这是 TFS 源代码控制提供程序为 VS 的一个功能/错误?
似乎没有任何原因,每次我打开我的解决方案时,Visual Studio 都会检查 sln 文件。
如果我将其与之前的版本进行比较,就不会发现任何更改。但是这真的很令人沮丧,因为每个人都已经将解决方案检出了。
我正在使用 VS 2008 和 TFS 2008,都是 SP2 版本。
有没有办法阻止这种情况发生?或者这是 TFS 源代码控制提供程序为 VS 的一个功能/错误?
当以下内容在.sln文件中时,就会发生这种情况:
GlobalSection(ExtensibilityGlobals) = postSolution
MyGlobalProperty = AnyValue
EndGlobalSection
我发现Enterprise Library添加了其中一个。我将其删除,检查了解决方案,关闭然后重新打开它,不再自动检出。
从记忆中来看,如果您使用 工具菜单 -> 选项 并选择源代码控制 -> 环境 面板,那里应该有一些选项可以配置IDE与版本控制的交互方式。
我认为其中一些选项可以控制打开时签出(checkout on open)的行为。
如果像我一样,您无法使其正常工作,并且发现一个或多个项目也被检出,则可以采用更简单的解决方案。请记录它一直检查出来的项目。然后转到“文件”-“源代码控制”-“更改源代码控制”,然后取消绑定相关的项目。点击“确定”,保存所有更改,然后再次进入“更改源代码控制”并将项目重新绑定到解决方案。希望这对其他人有用。
允许检出并比较两个文件。如果VS添加了一些内容,
<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
这是加载在解决方案中的某个项目系统的特性/漏洞。尝试删除各种类型的项目(C#,VB,C ++,网站,Web应用程序,单元测试,Silverlight ...),直到它消失为止;那就是你的答案。
你在比较之前是否保存了文件?我曾经遇到过这种情况,一直说文件之间没有变化,但是后来我意识到我没有保存文件,它是在与磁盘中的版本进行比较,而不是内存中的版本。
每次在 Visual Studio 中打开某个解决方案时,它都会执行一些操作,这可能会导致您的 .sln 或项目文件发生更改,然后它会要求您检出该文件。当开发人员机器上的文件夹结构发生更改或者他们没有所有文件的相同版本时,就会发生这种情况。也许有人在某个文件夹中添加了一个项目,而另一个开发人员在另一个地方有相同的项目。 我看到这种情况发生的另一个案例是,当我们有一个带有一些 C++ 项目的解决方案时,由于某种原因,其中一个 C++ 项目具有带有绝对路径的 .res 文件。一旦这个文件被 VS 自动生成,它就会从一个开发人员机器到另一个开发人员机器不断更改。
我建议您打开您的 .sln 文件,并查找一些绝对路径或相对路径,这些路径可能不存在于某些开发人员的机器上,具体取决于他们从您的源代码控制中获取了哪些文件。