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

相關問題