无法从程序集Visual Studio 2012加载“EntityClean”任务

时间:2013-06-02 07:28:25

标签: visual-studio entity-framework msbuild

我已将VS2010项目文件导入VS2012。虽然导入成功,但在我尝试构建解决方案时出现以下错误:

  

错误3无法从程序集c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Data.Entity.Build.Tasks.dll加载“EntityClean”任务。无法加载文件或程序集'file:/// c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Data.Entity.Build.Tasks.dll'或其依赖项之一。该模块应该包含一个程序集清单。确认声明是否正确,程序集及其所有依赖项是否可用,以及该任务是否包含实现Microsoft.Build.Framework.ITask的公共类。 DefinitiveHC.Data

项目在VS2010和VS2012都针对框架4.0。

有关如何解决此问题的任何线索?

2 个答案:

答案 0 :(得分:0)

这是您在错误列表窗口中看到的内容。要查看实际问题,请打开输出窗口以查看实际问题。要解决此问题,请执行以下操作:

  • 导航至“C:\Windows\Microsoft.NET\Framework\v4.0.30319”。
  • 复制Microsoft.Data.Entity.Build.Tasks.dll
  • 将其粘贴到“C:\Program Files (x86)\MSBuild\12.0\Bin
  • 位置

答案 1 :(得分:0)

我在研究时发现了你的问题,所以我想我也会在这里回答。我在this other question找到了一个答案,让我走上了正确的道路,我认为这可能是一个更好的答案(详见下文)。

我对Andy Mahaffey's answer给予了很多赞誉,没有它,我就不会找到我所做的。 我跟着他的研究方向,但不喜欢只改变UsingTasks'属性。我打开了" C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Data.Entity.targets"文件和我发现在打开Project元素之后它首先说的是这个评论:

  <!-- This .targets file can be used by updating Microsoft.Common.targets to 
         include the line below (as the last import element just before the end project tag)
      <Import Project="$(MSBuildBinPath)\Microsoft.Data.Entity.targets" Condition="Exists('$(MSBuildBinPath)\Microsoft.Data.Entity.targets')"/>
  -->

我遵循了它的建议和解决方案,解决了问题。

我希望这有帮助!

TLDR

将下面的行粘贴为以下文件中标记之前的最后一个元素。 C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets

<Import Project="$(MSBuildBinPath)\Microsoft.Data.Entity.targets" Condition="Exists('$(MSBuildBinPath)\Microsoft.Data.Entity.targets')"/>