【问题标题】:What does VS project binding do?VS 项目绑定有什么作用?
【发布时间】:2013-04-11 20:21:01
【问题描述】:

Visual Studio 的 unbind 是什么 | solution.suo 文件中的项目的绑定操作?

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

当我遇到相同的“未指定错误”问题时,我进行了一些额外的挖掘,发现 solution.suo 文件是我解决问题后唯一可能发生更改的候选文件。

我读到这个answer to an SO question about .suo files 是有效的一次性的,并且碰巧能够通过我放置在周围的陈旧工作空间重新创建 UE 问题。所以我继续删除 solution.suo 文件并打开 solution.sln 文件。神奇的是,我的 UE 问题也随着那个工作区消失了。

这让我得出了解除绑定 | bind 对 .suo 文件有某种影响,但由于文件的二进制专有结构,我无法确定发生了什么。

我的问题:
1. 那么Visual Studio的unbind到底是什么? solution.suo 文件中的项目的绑定操作?
2. 既然我找到了 .suo 文件的链接,任何人都可以推测是什么导致了这些“未指定的错误”吗?


脚注 1:MSDN article 解释了一些关于 .suo 文件的内容,但并未真正深入。

脚注 2:项目/解决方案打开时的“未指定错误”似乎与 bête noire 相当,如 here、各种搜索和 old MS KB 所证明的那样

【问题讨论】:

  • 你安装了哪些插件?
  • @EdwardThomson - Silverlight、几个 3rd 方小部件 API 和电动工具。不确定它是否与插件有关,因为我们有其他解决方案很少/如果遇到同样的问题。通过日志,我跟踪了 UEs 爬升,它们会在插件加载之外发生。

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


【解决方案1】:

当然,.suo 文件是 Visual Studio 存储 IDE 状态的位置。因此,当您稍后再次打开解决方案时,一切都会恢复您离开它的方式。最明显可见的效果是窗口恢复到原来的位置和大小。是的,解决方案与您希望签入更改的特定源代码控制服务器的绑定也可以存储在那里,这是它的逻辑位置。

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

【讨论】:

    【解决方案2】:

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

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

    顺便说一句,整个解决方案文件格式对于合并来说非常糟糕。它闻起来像 VS6,源代码控制部分闻起来像 SourceSafe。我希望他们能转向一些基于 MSBuild 的格式,就像他们对(几乎所有)项目文件所做的那样。

    【讨论】:

    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多