尝试在Visual Studio 2015中构建时,缺少以下文件?该项目以前是在VS2013中建造的。
严重级代码说明项目文件行错误任务工厂 无法从程序集“C:\ Program”加载“CodeTaskFactory” 文件(x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Build.Tasks.v14.0.dll“。可以 不加载文件或程序集'file:/// C:\ Program Files (x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Build.Tasks.v14.0.dll'或其中一个 依赖。该系统找不到指定的文件。
答案 0 :(得分:57)
程序集已重命名。更改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
答案 1 :(得分:21)
答案 2 :(得分:18)
在我的情况下,这是SFML.NET nuget包的问题。
它依赖于过时的Nuget Baseclass.Contrib.Nuget.Output组件,这就是构建失败的原因。
我手动更新到.Net 4.6后,从项目文件中删除了所有nuget人员,并从项目中删除了其文件,并再次读取所有依赖项版本的Baseclass.Contrib.Nuget.Output已更改并且中提琴!
答案 3 :(得分:7)
我第一次重启visual studio,为我工作
第二次我再次收到此错误并且我确实更新了:
Install-Package Baseclass.Contrib.Nuget.Output -Version 2.2.0-xbuild02
答案 4 :(得分:6)
只需重新启动Visual Studio即可。
我怀疑我之前已经杀死了所有其他MSBuild.exe进程并且没有任何MSBuild.exe进程会导致错误。
答案 5 :(得分:4)
根据Gary的回答,我将其参数化如下:
<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">
答案 6 :(得分:2)
我的解决方案:从“* .csproj”文件中删除两行:
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
答案 7 :(得分:1)
就我而言,我从root中删除了“ls.pubignore.wpp.targets”文件。它删除了错误。 :)
答案 8 :(得分:1)
在我的情况下,我遇到了同样的问题 我在VS2015中更新了NuGet包管理器中的一些软件包,然后尝试在另一台没有安装vs2015的机器上在vs2013中打开相同的解决方案。
安装Microsoft Build Tools 2015已解决该错误。这将Microsoft.Build.Utilities.Core.dll添加到GAC,我认为这是它的工作原理。
https://www.microsoft.com/en-in/download/details.aspx?id=48159
答案 9 :(得分:0)
对于Visual Studio 2017而言,这对我有用,它是两个提供的解决方案的组合。两者都不靠自己工作,所以这就是为什么我将其作为新答案提交。
在文件C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\CodeAnalysis\Microsoft.CodeAnalysis.Targets
将AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">
替换为AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
然后将文件C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dll
复制到名称为Microsoft.Build.Tasks.v15.0.dll
的同一文件夹中
答案 10 :(得分:0)
对我来说,我正在从使用msbuild
构建解决方案转变为使用dotnet build
。从codedom 2.0.1-> 3.6.0更新允许构建解决方案。
答案 11 :(得分:0)