Die Referenzassemblys für das Framework ".NETFramework, Version = v4.6.2" wurden nicht gefunden


112

Beim Versuch, eine Lösung zu kompilieren, wird der folgende Erstellungsfehler angezeigt:

Fehler MSB3644 Die Referenzassemblys für das Framework ".NETFramework, Version = v4.6.2" wurden nicht gefunden. Um dies zu beheben, installieren Sie das SDK oder Targeting Pack für diese Framework-Version oder richten Sie Ihre Anwendung erneut auf eine Version des Frameworks aus, für die Sie das SDK oder Targeting Pack installiert haben. Beachten Sie, dass Assemblys aus dem Global Assembly Cache (GAC) aufgelöst und anstelle von Referenzassemblys verwendet werden. Daher ist Ihre Assembly möglicherweise nicht richtig auf das von Ihnen beabsichtigte Framework ausgerichtet. C: \ RPR \ Dev \ Libraries \ Common \ Common.csproj C: \ Programme (x86) \ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets 1111

Ich habe versucht, das .NET Framework 4.6.2 SDK sowie das 4.6 Targeting Pack zu installieren, aber beide Fehler, dass ich es bereits installiert habe. Ich habe auch versucht, Visual Studio 2017 zu installieren, aber es gibt immer noch den gleichen Fehler.

Irgendwelche Ideen?


4
Ich habe gesehen, dass dieses Problem behoben ist, wenn Sie das 4.5.2-Entwicklerpaket installieren (dh nicht das 4.6.2-Entwicklerpaket, sondern das 4.5.2-Entwicklerpaket).
Peter Ritchie

Ich hatte dieses Problem mit 4.8, aus irgendeinem Grund hatten meine csproj-Dateien 4.8.0darin, was 4.8anscheinend nicht dasselbe ist wie anscheinend.
Jacek Gorgoń

Die eigentliche Antwort finden Sie unter stackoverflow.com/a/58850755/155077
Stefan Steiger

Antworten:



67

Windows -> Suchen -> Visual Studio Installer -> Ändern -> Einzelne Komponenten und überprüfen Sie die richtige Version


9
Dies ist eine saubere Lösung, da Visual Studio alle Versionen für Sie auflistet und anzeigt, was Sie derzeit installiert haben, und den Download / die Installation verwaltet.
oliv_tree

1
Versuchte alle oben genannten Lösungen und keine funktionierte. Dieser hat den Job gemacht. Vielen Dank
Charlie Seligman

Meins fragt nach v4.6.1 (Referenzassemblys) und es zeigt v4.6.1 (Entwicklungstools), die über das Installationsprogramm installiert wurden ... und versucht immer noch herauszufinden, was los ist. ABBRECHEN: Mein Problem war, dass keines der .NET-Frameworks standardmäßig installiert war. Danke dir.
Xonatron

1
Dies sollte ernsthaft die beste Antwort sein!
Tomáš Hübelbauer

Dieser ist die beste Antwort!
Himechi90


12

Beim Erstellen wurde genau der gleiche Fehler angezeigt, außer für ".NETFramework, Version = v4.7.1".

Ich habe das Developer Pack für 4.7.1 von hier heruntergeladen: https://www.microsoft.com/en-us/download/confirmation.aspx?id=56119

Das Paket hat diese Programme auf dem Zielcomputer (meinem Build-Server) installiert.

  • Microsoft .NET Framework 4.7.1 SDK
  • Microsoft .NET Framework 4.7.1 Targeting Pack
  • Microsoft .NET Framework 4.7.1 Targeting Pack (ENU)

Als ich erneut versuchte zu bauen, bekam ich den Fehler nicht mehr und der Build war erfolgreich.


1
Ähnliches Problem (Build-Server-Fehler). Hatte den gleichen Fehler aber für 4.7.1 und dies löste es für mich.
Brendan

Das Gleiche gilt für 4.7.2.
LosManos

12

Ab Mai 2019 können Sie Ihr Projekt auf net20 bis net48 (einschließlich ne461) auf jedem Computer erstellen, auf dem mindestens MSBuild oder das .NET Core SDK installiert sind, ohne dass Developer Pack installiert werden muss.

Wenn auf Ihrem Computer .NET Core SDK installiert ist, fügen Sie Ihrem Projekt das Nuget-Paket Microsoft.NETFramework.ReferenceAssemblies hinzu

    <ItemGroup>
        <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0-preview.2">
            <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
            <PrivateAssets>all</PrivateAssets>
        </PackageReference>     
    </ItemGroup>

Das Paket enthält alle ReferenceAssemblies ab net20 bis net48

Diese Pakete ermöglichen das Erstellen von .NET Framework-Projekten auf jedem Computer, auf dem mindestens MSBuild oder das .NET Core SDK installiert sind, sowie andere Szenarien.

Für weitere Informationen: https://github.com/Microsoft/dotnet/tree/master/releases/reference-assemblies


Hervorragende Lösung!
Akash Agarwal

Perfekt, funktioniert <ItemGroup Condition = "'$ (TargetFramework)' == 'net20' oder '$ (TargetFramework)' == 'net40'">
Stefan Steiger

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.