C# MsBuild忽略CodeTaskFactory的程序集定义

C# MsBuild忽略CodeTaskFactory的程序集定义,c#,.net,msbuild,nuget,csproj,C#,.net,Msbuild,Nuget,Csproj,我的解决方案中的所有项目都引用了Nuget.targets文件,用于在生成之前恢复包。 我有两项任务: <UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll"> 及 。 我的构建在失败,出现错误 无法从程序集“C:\Program Files(x86)\MSBuild\

我的解决方案中的所有项目都引用了Nuget.targets文件,用于在生成之前恢复包。 我有两项任务:

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll"> 

我的构建在
失败,出现错误

无法从程序集“C:\Program Files(x86)\MSBuild\14.0\bin\Microsoft.Build.Tasks.v12.0.dll”加载任务工厂“CodeTaskFactory”。无法加载文件或程序集的file:///C:\程序文件(x86)\MSBuild\14.0\bin\Microsoft.Build.Tasks.v12.0.dll'或其依赖项之一。系统找不到指定的文件

忽略我使用Microsoft.Build.Tasks.Core.dll的明确指示

在我将/tv:14.0放入MsBuild参数并将Microsoft.Build.Tasks.v4.0.dll更改为Microsoft.Build.Tasks.Core.dll之前,它一直工作


我是否忘记覆盖某些设置,或者MsBuild会以某种方式缓存此设置?

您使用哪个版本的VS/MsBuild来运行项目?看起来VS 2013版本有点牵连。另外,您确定当显示的任务定义处于活动状态时,此操作会失败吗?可能有一个类似的
元素覆盖了您的元素,或者使用Visual Studio 2015和MSBuild 14在VS.Im中缓存了一个旧版本。存在MSBuild参数:
/m:2/nr:false/tv:14.0/p:VisualStudioVersion=14.0/v:d
。我确信,显示的任务应该被执行,但我不确定是否没有缓存值,因为我对MSBuild中的缓存一无所知
<UsingTask TaskName="SetEnvironmentVariable" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">.