2012-10-18 40 views
1

我有一個多年的Visual Studio解決方案。該項目是一個Visual Studio 2010項目,我已經能夠編譯和運行該項目多年。此應用程序是一個關鍵應用程序,我很少需要啓動該項目並對已發現的錯誤修復進行微小更改。警告MSB3283:找不到類型庫「MSComctlLib」的包裝程序集。當構建我的應用程序

今天,我需要做一些研究。我在我的舊Windows XP開發盒上打開了該項目,這是我開發多年的同一臺機器。我很確信這臺機器上沒有任何變化,儘管IT部門很少有機會推送我可能不知道的Windows Update。

我打開了我的項目,並立即點擊工具欄上的運行按鈕。該應用程序將不再編譯。它進入解決方案的最後一個項目(7),並給我以下輸出:

------ Build started: Project: QSApplication, Configuration: Debug Any CPU ------ 
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1558,9): warning MSB3283: Cannot find wrapper assembly for type library "MSComctlLib". 
========== Build: 7 succeeded or up-to-date, 1 failed, 0 skipped ========== 

我很難過。我沒有改變任何項目或建立設置,我懷疑這臺機器上的任何重大變化。我無法找到任何有用的查詢這個錯誤,所以我不知道發生了什麼。

有沒有人看過這個或知道修復?

回答

9

雖然有一個小的機會,它已經推了Windows更新

這是不小的。今年有補丁mscomctl的兩個安全更新。也是關鍵的,IT部門不會跳過它們。 MS12-027於4月份發佈,MS12-060於8月份發佈。特別是4月份的更新很重要,它改變了COM服務器的指導。這意味着互操作庫(aka wrapper assembly)不再有效。

刪除並重新添加要修復的依賴關係。

請注意,您可能會在跳過這些更新的客戶中遇到麻煩。你真的應該考慮擺脫依賴。 mscomctl中沒有任何內容不能在.NET框架中巧妙包裝,所有VB6控件都有很好的替代品。

相關問題