无法在Visual Studio 2015中构建,因为找不到"Microsoft.Build.Tasks.v14.0.dll"

Chr*_*ell 54 c# msbuild visual-studio-2015

尝试在Visual Studio 2015中构建时,缺少以下文件?该项目以前是在VS2013中构建的.

严重级代码说明项目文件行错误无法从程序集"C:\ Program Files(x86)\ MSBuild\14.0\bin\Microsoft.Build.Tasks.v14.0.dll"加载任务工厂"CodeTaskFactory".无法加载文件或程序集'file:/// C:\ Program Files(x86)\ MSBuild\14.0\bin\Microsoft.Build.Tasks.v14.0.dll'或其依赖项之一.该系统找不到指定的文件.

Gar*_*ett 57

该程序集已重命名.更改CodeTaskFactory MSBuild将AssemblyFile参数更改为...(在您的错误中应该有此任务所在的目标文件名)

AssemblyFile="C:\Program Files (x86)\MSBuild\14.0\Bin\Microsoft.Build.Tasks.Core.dll"
Run Code Online (Sandbox Code Playgroud)

有可能是有人试图聪明并使用像这样的MSBuild属性..(这对MSBuild 14不起作用,但对于12)...

AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v$(MSBuildToolsVersion).dll"
Run Code Online (Sandbox Code Playgroud)

只是fyi ...还有一些其他的Microsoft.Build.Utilities.v12.0.dll已经改名为Microsoft.Build.Utilities.Core.dll

  • 为什么`C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\CodeAnalysis\Microsoft.CodeAnalysis.Targets`引用`$(MSBuildToolsPath)\ Microsoft.Build.Tasks.v12.0.dll`?当ToolsVersion为14.0时,肯定会失败吗? (8认同)
  • 通过Nuget安装包后我看到了这个错误.为了解决这个问题,我编辑了包文件夹下的.targets文件,如Gary的回答所述.我只想指出需要编辑的位置可能不会从错误中明显,特别是如果原因是最近的软件包安装. (4认同)

Ale*_*mov 23

帮助我使用Visual Studio 2017的是复制Microsoft.Build.Tasks.Core.dll并将其重命名为Microsoft.Build.Tasks.v15.0.dll build.tasks.v15.0.dll

  • 它对我有用.但真正的问题应该是:为什么我必须这样做? (7认同)
  • 重新启动VS后,这对我有用. (4认同)

Sia*_*huk 18

在我的情况下,这是SFML.NET nuget包的问题.

它依赖于过时的Nuget Baseclass.Contrib.Nuget.Output组件,这就是构建失败的原因.

在我手动更新到.Net 4.6之后,从项目文件中删除了所有nuget人员,并从项目中删除了其文件,并再次读取所有依赖项版本的Baseclass.Contrib.Nuget.Output已更改并且中提琴!

  • `Baseclass.Contrib.Nuget.Output`也是我的问题的原因.只需更新即可解决问题. (19认同)
  • @Kris McGinnes,添加您的评论作为答案,我将赞成它.它解决了我的问题,显然GeoffCoope也是如此. (2认同)
  • 谢谢@RichardII.请随意对我的评论进行投票,但我认为这不是一个全新的答案.它与drweb86的答案太相似了. (2认同)
  • 正如Kris McGinnes所说,** Baseclass.Contrib.Nuget.Output **,对我来说,它是与GeckoFX Web浏览器组件一起提供的。 (2认同)

Hou*_*ami 9

我第一次重新启动visual studio,为我工作

第二次我再次遇到此错误并且我确实更新了:

Install-Package Baseclass.Contrib.Nuget.Output -Version 2.2.0-xbuild02

  • 出乎意料的是,第二个也适合我. (2认同)

Mat*_*ock 6

我只需重新启动Visual Studio即可.

我怀疑我之前已经杀死了所有其他MSBuild.exe进程并且​​没有任何MSBuild.exe进程导致错误.