问题定位:
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”不相同,导致了编译错误。