干净的Windows重新格式化并安装Visual Studio 2013之后,尝试使用数据库优先的Entity Framework edmx文件构建项目会产生以下错误:
无法从程序集C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Data.Entity.Build.Tasks.dll中加载“ EntityDeploySplit”任务。无法加载文件或程序集'file:/// C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Data.Entity.Build.Tasks.dll'或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项均可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。
有什么方法可以单独安装它吗?默认情况下,此程序集包含什么?
更新:这在寻找EntityClean任务时也很明显。我倾向于认为它会首先检查垃圾箱,因为另一个运行状况良好的开发人员尝试了清理/重建,然后开始显示该垃圾箱。
我遇到了这个问题,并能够按照以下说明进行修复。您的路径和变量可能不同。
我发现在构建项目时,它指向此目标文件:
C:\Program Files (x86)\MSBuild\12.0\Bin\Microsoft.Data.Entity.targets
该目标文件似乎只是一个占位符。该文件中有一个Import元素,该元素指向$(MSBuildFrameworkToolsPath)\Microsoft.Data.Entity.targets
位于该路径的目标文件运行。我搜索了注册表,发现这MSBuildFrameworkToolsPath
是一个注册表项,其值为C:\Windows\Microsoft.NET\Framework\v4.0.30319\
我转到被引用的目标文件,并搜索UsingTask
在异常中指定的元素。在UsingTask
元素内部,AssemblyFile
指向的属性$(MSBuildBinPath)\Microsoft.Data.Entity.Build.Tasks.dll
。我搜索了注册表,发现指向了MSBuildBinPath注册表项c:\Windows\Microsoft.NET\Framework\v3.5\
我不确定为什么要指出这一点,也许Framework或Visual Studio安装没有清除它。最后,我将所有UsingTask
元素的AssemblyFile
属性更改为:
$(MSBuildFrameworkToolsPath)\Microsoft.Data.Entity.Build.Tasks.dll
我使用了MSBuild Bin目标文件中的相同变量。
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句