問題定位:
1、在Server2003上使用vs2010開發的項目,移到Win8上,同樣使用vs2010打開。在生成解決方案的時候有如下報錯:
未能從程序集 Microsoft.VisualStudio.Tools.Office.BuildTasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 加載任務“FindRibbons”。 請確認 <UsingTask> 聲明正確,該程序集及其所有依賴項都可用,並且該任務包含實現 Microsoft.Build.Framework.ITask 的公共類。
2、網上搜索沒有發現太好的解決方法。只能使用原始的方式,在Server2003上搜索Microsoft.VisualStudio.Tools.Office.BuildTasks,可以找到對應的dll文件,在C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.Tools.Office.BuildTask\v4.0_10.0.0.0__b03f5f711d50a3a下。在Win8機器上也可以找到這個目錄,但是對比發現兩個文件的大小不一樣。把文件覆蓋。再次生成解決方案,出現另外的報錯:
異常來自 HRESULT:0x80131515
3、搜索發現的問題的原因及解決方法。直接將這個文件覆蓋,Win8並不認這個文件,需要將這個文件解除鎖定才行。
網上的方法:關於錯誤 HRESULT: 0x80131515 解決方法
在DLL文件上單擊右鍵,選擇屬性,然后把鎖定解除即可。
4、再次生成解決方案,成功。
總結:
因為不同的操作系統使用的程序集中的“Microsoft.VisualStudio.Tools.Office.BuildTasks”不相同,導致了編譯錯誤。