5

什么是Visual Studio的unbind |绑定操作做到解决方案 .suo文件中的项目?VS项目绑定是做什么的?

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 |绑定对.suo文件有某种影响,但由于文件二进制文件,专有结构我无法识别发生了什么。我的问题:
1.那么,Visual Studio的unbind |绑定操作做到解决方案 .suo文件中的项目?
2.任何人都可以猜测是什么导致这些“未指定的错误”,现在我已经找到与.suo文件的链接了吗?


脚注1:这MSDN article解释了有关文件名为.suo一点点,但并没有真正进入细节。

脚注2:“未指定错误”项目/解决方案的开放似乎是相当bête noire就证明here,各种搜索,这old MS KB

+0

你安装了哪些插件? – 2013-04-12 12:48:21

+0

@EdwardThomson - Silverlight,一些第三方小部件API和电动工具。不知道它与插件有关,因为我们有其他解决方案,很少/如果曾经看到过相同的问题。通过日志,我跟踪了UE爬行,它们将在插件加载时发生。 – GlenH7 2013-04-12 23:35:23

回答

2

当然,名为.suo的文件就是Visual Studio的存储状态的IDE。因此,当您以后再次打开解决方案时,所有操作都会恢复您离开的方式。最显而易见的效果是,窗口恢复原来的位置和大小。是的,将解决方案绑定到您希望检查更改的特定源代码管理服务器也可以存储在那里,这是它的合理位置。

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

2

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

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

顺便说一句,整个解决方案文件格式是相当可怕的合并。它闻起来像VS6,源控制部分闻起来像SourceSafe。我希望他们会转向一些基于MSBuild的格式,就像他们对(几乎所有)项目文件所做的一样。

+1

你可以考虑删除'.suo'文件以及根据这个答案http://stackoverflow.com/questions/3299660/vs-corrupted-sln-file。 – Pio 2014-12-18 10:09:38

相关问题