web-dev-qa-db-fra.com

Impossible de construire dans visual studio 2015 car "Microsoft.Build.Tasks.v14.0.dll" est introuvable.

Lors de la tentative de création dans Visual Studio 2015, le fichier suivant est manquant? Ce projet était précédemment en construction dans VS2013.

Code de gravité Description Erreur de fichier de projet La fabrique de tâches "CodeTaskFactory" n'a pas pu être chargé à partir de l'assembly "C:\Program Fichiers (x86)\MSBuild\14.0\bin\Microsoft.Build.Tasks.v14.0.dll". Pourrait ne charge pas le fichier ou le fichier Assembly: /// C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Build.Tasks.v14.0.dll 'ou un de ses dépendances. Le système ne peut pas trouver le fichier spécifié. 

48
Chris Sewell

L'assemblée a été renommée. Remplacez le paramètre AssemblyFile par la tâche CodeTaskFactory MSBuild par ... (dans votre erreur, il devrait y avoir un nom de fichier de cibles où cette tâche réside) 

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

Il y a des chances que quelqu'un essaie d'être intelligent et d'utiliser une propriété MSBuild comme celle-ci ... (ce qui ne fonctionne pas pour MSBuild 14 mais le serait pour 12) ...

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

Just fyi ... Il y en a aussi d'autres, comme Microsoft.Build.Utilities.v12.0.dll a été renommé en Microsoft.Build.Utilities.Core.dll

55
Gary Howlett

Ce qui m'a aidé avec Visual Studio 2017, c'est de copier Microsoft.Build.Tasks.Core.dll et de le renommer Microsoft.Build.Tasks.v15.0.dll  build.tasks.v15.0.dll

19
Alexander Trofimov

Dans mon cas, c'était un problème de paquet de nuget SFML.NET. 

Cela dépendait du composant Nuget Baseclass.Contrib.Nuget.Output, obsolète, ce qui était la raison pour laquelle la construction échouait. 

Après la mise à jour manuelle de .Net 4.6, tous les membres du personnel de nuget ont été supprimés du fichier du projet, ainsi que tous leurs fichiers et toutes les dépendances ont été modifiées. La version de Baseclass.Contrib.Nuget.Output a été modifiée et alto!

15
Siarhei Kuchuk

Il me suffisait de redémarrer Visual Studio. 

Je suppose que j'avais précédemment tué tous mes processus MSBuild.exe en faisant autre chose et que l'absence de processus MSBuild.exe était à l'origine de l'erreur.

6
Matthew Lock

Première fois que je redémarre Visual Studio, a travaillé pour moi 

La deuxième fois, j'ai encore cette erreur et j'ai mis à jour: 

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

5
Houshang.Karami

Suite à la réponse de Gary, j'ai paramétré ceci comme suit:

<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">
4
Alastair

Ma solution: supprimer deux lignes du fichier "* .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')" />
2
Pavel Samoylenko

Dans mon cas, j'ai supprimé le fichier "ls.pubignore.wpp.targets" de la racine. et Il a supprimé l'erreur. :)

1
Nitesh Kumar

J'avais le même problème, dans mon cas J'ai mis à jour certains des paquets du gestionnaire de paquets NuGet dans VS2015, puis j'ai essayé d'ouvrir la même solution dans vs2013 sur une autre machine sur laquelle vs2015 n'était pas installé.

L'installation de Microsoft Build Tools 2015 a résolu l'erreur. Cela ajoute Microsoft.Build.Utilities.Core.dll au GAC, ce qui, à mon avis, fait en sorte que cela fonctionne.

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

1
vinayak hegde

Pour Visual Studio 2017, c’est ce qui a fonctionné pour moi, c’est un mélange de deux solutions fournies. Ni l’un ni l’autre n’a travaillé seul, c’est la raison pour laquelle je présente cette réponse comme une nouvelle réponse.

Dans le fichier C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\CodeAnalysis\Microsoft.CodeAnalysis.Targets

Remplacez AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll"> par AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">

Et puis copiez le fichier C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dll dans le même dossier avec le nom Microsoft.Build.Tasks.v15.0.dll

0
musicinmusic