2012-07-02 172 views
5

我正在使用Visual Studio 2010 SP1和Team Foundation Server 2010.每当我打开一个项目时,Visual Studio会自动检查项目文件(.csproj)(不是任何子文件,然而)和相应的.csproj.vspscc文件。Visual Studio 2010和TFS不需要检出

每当我比较我的Pending Changes列表中的项目文件时,它说.csproj文件和.csproj.vspscc文件的文件是相同的 - 我们只需检查它们或撤消更改。

有人可以解释为什么它这样做,以及如何修复它,因此每次打开项目时都不会检出.csproj和.vspscc文件。

+0

我讨厌集成的源代码管理。 –

+0

对于某些_unknown_对我来说,vs2010通常会将解决方案/项目配置中的所有更改保留在内存中并且vs2010不会将它们保存到磁盘,除非您明确要求通过触发_Save All_或关闭项目来执行此操作。因此,从源代码控制进行更新并丢失内存中的所有更改时,很容易想象情况。可能是需要提前结帐项目文件的这种行为。 这只是我个人的观点,基于与vs2010的合作。 – Akim

+0

可能的重复[如何停止Visual Studio从“总是”检出解决方案文件?](http://stackoverflow.com/questions/1085978/how-to-stop-visual-studio-from-always-checking-out -solution-files) – LosManos

回答

2

我们团队中遇到过同样的问题。问题在于项目的一个引用指向我们团队成员工作空间中的一个不同(错误)目录。 pantelif的解决方案朝着正确的方向发展,但将csproj-Files与TFS进行比较将无济于事。由于任何理由,它说文件是相同的,但如果我有手动看他们,我意识到他们不是。 您可以轻松地检查:

  • 在项目
  • 选择 “卸载项目”
  • 右键点击鼠标右键点击再次
  • 选择 “编辑xxx.csproj”

现在有深入了解“ProjectReference” - 标签。在我的情况下,“包含” - 属性不完全相同。 希望它能帮助你。

为了避免这样的问题,只是看看TFSGuide,尤其是在第3章

0

您不清楚到底发生什么问题的步骤,但我认为您的意思是这种情况发生的方式是,当您打开解决方案时,解决方案中的所有项目文件都会自动完成检查过了。

这不是正常的行为,所以你可能有一个第三方实用工具对你的项目文件执行操作;也许它会编辑它们,然后以相同的方式放回它们。检查并禁用任何加载项(工具菜单 - >广告输入管理器),您还可以使用扩展管理器(也可以在工具菜单中)检查您可能已安装的其他扩展程序。

+0

当我做比较时,它说文件是相同的。这就是为什么我对此感到困惑。 – Sean

+0

@Sean可能有超过1个文件组成了VS中出现的“project”。你有没有签入源代码控制的任何“用户”配置文件(如* .csproj.user,*。suo或* .csproj.webinfo)?这些应该从源代码管理中排除。此外,你是否发现加载的可能会改变VS行为的插件或扩展?最后,在解决方案中用于创建项目的项目类型/模板是什么?他们是混合标准模板吗? –

+0

只有.csproj项目文件被签入源代码。我确实安装了第三方扩展程序,但同事遇到同样的问题(并且没有安装相同的扩展程序)。它们是标准的项目模板,没有什么不寻常的。 – Sean

0

VS很可能解决了一个链接问题,通常是引用程序集。
为了检查发生了什么,只需打开您的解决方案&,一旦VS检出* .csproj,'全部保存'(Ctrl + Shift + S)。

导航到您的“Pending Changes”窗口并比较* .csproj应该可以发现问题。

+3

当我做比较时,它说文件是相同的。这就是为什么我对此感到困惑。 – Sean

1

我能回答这个问题的一部分。为什么显示的文件是相同的?

原因(据我所知)是当它自动检出文件并进行更改时,它不保存此更改。因此,当您立即比较文件时,它找不到任何区别。如果您改为创建项目,或手动调用保存这些修改后的文件,则会显示更改。

0

同样的问题也发生在我的解决方案上,后来我发现,我在本地配置的IIS有不同的VD名称,在TFS服务器中,不同的VD名称被分配和检入。我打开我的解决方案,它会自动检出.sln文件。因为我的本地VD是不同的映射到我的本地。