VS项目绑定有什么作用?

时间:2013-04-11 20:21:01

标签: visual-studio visual-studio-2012 tfs projects-and-solutions

Visual Studio的解绑是什么?将操作绑定到解决方案 .suo文件中的项目吗?

Microsoft提供有关How to: Bind or Unbind a Solution or Project的说明,这些说明恰好可以解决在解决方案打开时出现的可怕的“未指定错误”。这个MSDN forum帖子有一个用户声明他们未绑定,然后重新绑定他们的项目以解决这个问题。

当我遇到相同的“未指定错误”问题时,我做了一些额外的挖掘,发现解决方案 .suo文件是我解决问题后唯一可能发生变化的候选人。

我读到这个answer to an SO question about .suo files是有效的一次性的,碰巧能够通过我周围陈旧的工作空间重新创建UE问题。所以我继续删除了解决方案 .suo文件并打开了解决方案 .sln文件。可悲的是,我的UE问题已经消失了。

这导致我结束了unbind | bind对.suo文件有一些影响,但由于文件二进制,专有结构我无法识别发生了什么。

我的问题:
那么Visual Studio的解绑究竟是什么呢?绑定操作执行 solution .suo文件中的项目?
2.现在我找到了与.suo文件的链接,是否有人可以推测导致这些“未指定的错误”的原因?


脚注1:这个MSDN article解释了一些关于.suo文件的内容,但并没有详细介绍。

脚注2:项目/解决方案开放时的“未指定错误”似乎完全是bête noire here,各种搜索以及old MS KB

2 个答案:

答案 0 :(得分:2)

当然,.suo文件是Visual Studio存储IDE状态的位置。因此,当您稍后再次打开解决方案时,所有内容都会恢复您将其关闭的方式。最明显的效果是窗口恢复原始位置和大小。是的,解决方案与您希望检入更改的特定源控制服务器的绑定也可以存储在那里,这是它的合理位置。

“未指定的错误”是一个非常通用的COM错误代码,名为E_FAIL。 Visual Studio使用了很多COM代码,加载项系统完全基于COM。这是一个糟糕的错误,因为它并不意味着“它不起作用,不知道为什么”。与从函数中返回 false 类似。微软的某个程序员可以更好地报告问题。也许那不容易。

答案 1 :(得分:2)

VS项目绑定存储哪些项目由源代码管理管理。它保存在.SLN文件中。

不幸的是,源控制系统难以合并的格式。因此,绑定通常会被破坏,导致在加载解决方案时错误的“项目已添加到源代码管理”消息。解决此问题的过程是从.sln文件中删除整个部分,在VS中打开,然后重新绑定解决方案,这将正确创建该部分。

BTW,整个解决方案文件格式非常糟糕。它闻起来像VS6,源控制部分闻起来像SourceSafe。我希望他们转移到一些基于MSBuild的格式,就像他们(几乎所有)项目文件一样。