2015-07-30 15 views
42

Beim Versuch, Visual Studio 2015 einzubauen, fehlt die folgende Datei? Dieses Projekt wurde zuvor in VS2013 gebaut.Kann Visual Studio 2015 nicht erstellen, da 'Microsoft.Build.Tasks.v14.0.dll' nicht gefunden werden kann

Severity Code Beschreibung Projektdatei Leitungsfehler Die Aufgabe Fabrik "CodeTaskFactory" nicht aus der Baugruppe „C geladen werden: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Build.Tasks. v14.0.dll ". Konnte nicht Datei oder Assembly Datei: /// C: \ Programme (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Build.Tasks.v14.0.dll 'oder eine seiner Abhängigkeiten laden. Die angegebene Datei wurde vom System nicht gefunden.

+0

Versuchen Entfernen und Hinzufügen der Referenzen wieder können Sie helfen. –

+0

Update NuGet Pakete halfen mir – Timeless

Antwort

12

In meinem Fall war das ein Problem von SFML.NET nuget Paket.

Es hing von der veralteten Komponente Nuget Baseclass.Contrib.Nuget.Output ab, die der Grund für das Fehlschlagen des Builds war.

Nachdem ich manuell auf .Net 4.6 aktualisiert, löschte alle Nuget Mitarbeiter aus der Projektdatei und löschte seine Dateien aus dem Projekt und alle Abhängigkeiten wieder Version von Baseclass.Contrib.Nuget.Output wurde geändert und Viola!

+12

'Baseclass.Contrib.Nuget.Output' war die Ursache meiner Probleme. Einfach aktualisieren, das war genug, um es zu beheben. –

+0

Das gleiche hier. Nur aktualisiertes Paket in Nuget und Build war in Ordnung. – GeoffCoope

+0

@Kris McGinnes, fügen Sie Ihren Kommentar als Antwort hinzu und ich werde es aufwerten. Es löste mein Problem und anscheinend auch GeoffCoope. –

48

Die Baugruppe wurde umbenannt. Ändern Sie auf der CodeTaskFactory MSBuild Aufgabe der assembly Parameter ... (in Ihrem Fehler sollte es eine Zieldateiname, wo diese Aufgabe residiert)

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

Die Chancen stehen gut jemand versucht, schlau zu sein und eine MSBuild Eigenschaft wie folgt verwenden fYI .. (die nicht 14 für MSBuild funktioniert aber würde für 12) ...

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

Nur ... Es gibt einige andere auch, wie Microsoft.Build.Utilities.v12.0.dll hat Microsoft.Build.Utilities.Core.dll

+3

Ich sah diesen Fehler nach der Installation eines Pakets über Nuget. Um dies zu beheben, habe ich die .targets-Datei unter dem Paketordner bearbeitet, wie in Garys Antwort beschrieben. Ich wollte nur darauf hinweisen, dass der Ort, der bearbeitet werden muss, möglicherweise nicht aus dem Fehler ersichtlich ist, insbesondere wenn die Ursache eine kürzlich installierte Paketinstallation ist. –

+7

Warum steht 'C: \ Programme (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ CodeAnalysis \ Microsoft.CodeAnalysis.Targets' auf' $ (MSBuildToolsPath) \ Microsoft.Build.Tasks.v12.0.dll' ? Sicher wird das scheitern, wenn ToolsVersion 14.0 ist? –

+0

Ich stieß auf dieses Problem, während ich an einem Windows 10-Computer mit Visual Studio Community Edition 2015 arbeitete und versuchte, eine Aufgabe für den Yahoo Yui Compressor Build auszuführen. Ich musste die ls.pubignore.wpp.targets aktualisieren, um die v $ (MSBuildingToolsVersion) durch Core zu ersetzen. Ich verließ den $ (MSBuildingToolsPath) am Anfang. – user2197446

4

Es umbenannt Es war genug für mich, Vi einfach neu zu starten Sual Studio.

Ich vermute, dass ich zuvor alle meine MSBuild.exe-Prozesse getötet habe, die etwas anderes tun, und dass keine MSBuild.exe-Prozesse den Fehler verursachen.

+3

Ich habe keine Ahnung, warum das abgelehnt wurde. Das Einfachste ist manchmal das Beste. – liorda

0

In meinem Fall habe ich die Datei "ls.pubignore.wpp.targets" aus dem root entfernt. und es hat den Fehler behoben. :)

2

von Gary Antwort Im Anschluss an ich diese parametriert wie folgt:

<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"> 
0

ich das gleiche Problem hatte, in meinem Fall ich einige der Pakete von NuGet Paket-Manager in VS2015 aktualisiert, dann versucht zu Öffnen Sie die gleiche Lösung in vs2013 auf einer anderen Maschine, auf der vs2015 nicht installiert war.

Die Installation von Microsoft Build Tools 2015 hat den Fehler behoben. Das fügt Microsoft.Build.Utilities.Core.dll zu dem GAC hinzu, das es meiner Meinung nach funktioniert.

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

7

Was 2.017 mich mit Visual Studio geholfen ist Microsoft.Build.Tasks.Core.dll und benennen Sie sie in Microsoft.Build.Tasks.v15.0 zu kopieren.dll build.tasks.v15.0.dll

+0

Nach dem Neustart VS funktionierte das für mich. – redb

+1

Es hat für mich funktioniert. Aber die eigentliche Frage sollte lauten: Warum musste ich das tun? –

+0

Das hat auch bei VS2017 Professional funktioniert. –

0

Meine Lösung: Entfernen von zwei Zeilen aus der „* CSPROJ“ file:

<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')" /> 
Verwandte Themen