无法在Visual Studio 2015中生成,因为找不到“Microsoft.Build.Tasks.v14.0.dll”

试图在Visual Studio 2015中构build时,以下文件丢失? 这个项目以前正在VS2013build成。

严重级代码说明项目文件行错误无法从程序集“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”或其某个依赖项。 该系统找不到指定的文件。

该程序集已被重命名。 更改CodeTaskFactory MSBuild任务AssemblyFile参数为…(在你的错误应该有一个目标文件的名称,这个任务所在的地方)

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

机会是有人试图聪明,使用这样的MSBuild属性..(这不适用于MSBuild 14,但将为12)…

 AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v$(MSBuildToolsVersion).dll" 

只是fyi …还有一些其他的如Microsoft.Build.Utilities.v12.0.dll已被重命名为Microsoft.Build.Utilities.Core.dll

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

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

我手动更新到.Net 4.6后,从项目文件中删除所有nuget人员,并从项目中删除其文件,并重新读取所有依赖关系版本的Baseclass.Contrib.Nuget.Output被改变,中提琴!

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

我刚刚重新启动Visual Studio就足够了。

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

继加里的回答之后,我把这个参数化如下:

 <Choose> <When Condition="'$(MSBuildToolsVersion)'=='14.0'"> <PropertyGroup> <TasksAssemblyName>Microsoft.Build.Tasks.Core</TasksAssemblyName> </PropertyGroup> </When> <Otherwise> <PropertyGroup> <TasksAssemblyName>Microsoft.Build.Tasks.v$(MSBuildToolsVersion)</TasksAssemblyName> </PropertyGroup> </Otherwise> </Choose> <UsingTask TaskName="SecondsSinceEpoch" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\$(TasksAssemblyName).dll"> 

在我的情况下,我从根中删除了“ls.pubignore.wpp.targets”文件。 并删除了错误。 🙂

我有同样的问题,在我的情况下,我更新了VS2015中的NuGet包pipe理器中的一些包,然后尝试在VS2015未安装VS2015的另一台机器中打开相同的解决scheme。

安装Microsoft Build Tools 2015已解决该错误。 这将Microsoft.Build.Utilities.Core.dll添加到GAC,我认为这是它的工作原理。

https://www.microsoft.com/en-in/download/details.aspx?id=48159