Visual studio 2010 VS 2010和FindRibbons生成错误

Visual studio 2010 VS 2010和FindRibbons生成错误,visual-studio-2010,build,Visual Studio 2010,Build,我有VS 2010、2012和2013。我从svn获得了一个现有的项目,所以它以前从未出现在我的机器上。当我试图编译时,我得到了以下错误 The "FindRibbons" task could not be loaded from the assembly 'Microsoft.VisualStudio.Tools.Office.BuildTasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f

我有VS 2010、2012和2013。我从svn获得了一个现有的项目,所以它以前从未出现在我的机器上。当我试图编译时,我得到了以下错误

The "FindRibbons" task could not be loaded from the assembly            
'Microsoft.VisualStudio.Tools.Office.BuildTasks, 
Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.  Confirm that the   
<UsingTask> declaration is correct, that the assembly and all its dependencies are   
available, and that the task contains a public class that implements   
Microsoft.Build.Framework.ITask.
The "FindRibbons" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name.

尝试打开csproj文件并查找
,在那里你会看到一个
包括
。您可能希望查看它是否引用了所引用库文件的正确(或任何)版本


尤其是对于下载的项目,您会发现引用有时设置不正确(绝对路径)。

这很可能是一个DLL地狱问题,您在GAC中安装了错误版本的Microsoft.VisualStudio.Tools.Office.BuildTasks.DLL。它错过了这个机会

对此有一个半合理的解释,VS2012的早期预览版部署了一个缺少该类的DLL版本。在中讨论。提出与您已经尝试过的解决方案相同的解决方案,而不是解决方案。否则,提醒您永远不要在需要完成工作的机器上安装Visual Studio的测试版

这个问题非常复杂,因为MSDN文档说明该类仅适用于VS2012及以上版本,而不适用于VS2010。当您安装了VS2013时,必须有一个
将版本10.0.0.0和11.0.0.0转发到12.0.0.0的地方。不知道在哪里,我在我的机器上找不到

不用说,这是最糟糕的了。两种可能的解决办法:

  • Visual Studio不再自动升级项目文件。但这正是您希望实现的。在本例中,您将希望使用VS2013工具链。使用文本编辑器(记事本可以)编辑.csproj文件,并将
    ToolsVersion
    属性更改为“12.0”

  • 修复GAC并清除DLL的错误版本。您首先需要一个正确的版本,从另一台具有此DLL已知良好副本的计算机上复制它。您可以使用资源管理器找到它,导航到C:\Windows\Microsoft.NET\assembly\GAC\U MSIL\Microsoft.VisualStudio.Tools.Office.BuildTasks。您可能有多个子目录,我只有一个子目录用于VS2013。12.0子目录中的DLL日期为2014年8月7日,长度为102688字节。您可以使用像Reflector或ILSpy这样的反编译器来仔细检查它是否包含FindRibbons类

如果这些都不起作用,那么绝望的做法就是重新安装所有设备。修复损坏的原始来源仍然很重要,如果您确实在该机器上安装了早期版本的VS2012,则很难做到这一点。运行setup.exe/uninstall/force确实可以解决这个问题。祝你好运,从来都不是一个有趣的问题要解决。
-

能否从Visual Studio中删除并重新添加引用?您是否尝试过更改为11.0.0.0?是的,我也尝试过。没有帮助。看起来某个Visual Studio更新破坏了此“FindRibbons”任务(错误的程序集版本或引用-不知道)。尝试卸载所有版本的Visual Studio,然后按升序重新安装(2013年更新4)。为我工作。在我的vbproj文件中没有Include=FindRibbons您有项目的链接吗?