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?

Justin
quelle
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:

96

Es stellte sich heraus, dass ich .NET Framework v4.6.2 installiert hatte, nicht das Developer Pack für 4.6.2. Doh!

https://www.microsoft.com/en-us/download/details.aspx?id=53321

Justin
quelle
Ich habe Dev Pack 462 installiert und erhalte immer noch die Warnung. Muss ich meinen Computer neu starten?
Jim
5
Ich musste Visual Studio nach der Installation neu starten, dann alles gut
Jonesopolis
67

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

Cata Hotea
quelle
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.

Jamie Butterworth
quelle
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

M. Hassan
quelle
Hervorragende Lösung!
Akash Agarwal
Perfekt, funktioniert <ItemGroup Condition = "'$ (TargetFramework)' == 'net20' oder '$ (TargetFramework)' == 'net40'">
Stefan Steiger