无法在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
我刚刚重新启动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