Nie znaleziono zestawów referencyjnych dla platformy „.NETFramework, Version = v4.6.2”

112

Podczas próby skompilowania rozwiązania pojawia się następujący błąd kompilacji:

Błąd MSB3644 Nie znaleziono zestawów referencyjnych dla platformy „.NETFramework, Version = v4.6.2”. Aby rozwiązać ten problem, zainstaluj pakiet SDK lub pakiet docelowy dla tej wersji platformy lub przekieruj aplikację na wersję platformy, dla której masz zainstalowany pakiet SDK lub pakiet docelowy. Zwróć uwagę, że zestawy zostaną rozwiązane z globalnej pamięci podręcznej zestawów (GAC) i zostaną użyte zamiast zestawów referencyjnych. Dlatego twój zespół może nie być poprawnie ukierunkowany na zamierzoną strukturę. C: \ RPR \ Dev \ Libraries \ Common \ Common.csproj C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets 1111

Próbowałem zainstalować .NET Framework 4.6.2 SDK, a także 4.6 Targeting Pack, ale oba błędy, że mam już zainstalowane. Próbowałem też zainstalować Visual Studio 2017, ale nadal daje ten sam błąd.

Jakieś pomysły?

Justin
źródło
4
Widziałem, że ten problem znika po zainstalowaniu pakietu deweloperskiego 4.5.2 (tj. Nie pakietu programisty 4.6.2, ale pakietu programisty 4.5.2).
Peter Ritchie,
Miałem ten problem z 4.8, z jakiegoś powodu moje pliki csproj miały w 4.8.0środku, co nie jest tym samym, co 4.8pozornie.
Jacek Gorgoń
Aby uzyskać prawdziwą odpowiedź, patrz stackoverflow.com/a/58850755/155077
Stefan Steiger

Odpowiedzi:

96

Okazuje się, że zainstalowałem .NET Framework v4.6.2, a nie Developer Pack dla 4.6.2. No!

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

Justin
źródło
Zainstalowałem Dev Pack 462 i nadal otrzymuję ostrzeżenie. Czy muszę ponownie uruchamiać maszynę?
Jim
5
Po zainstalowaniu musiałem ponownie uruchomić Visual Studio, a potem wszystko było w porządku
Jonesopolis
67

Windows -> Wyszukaj -> Instalator programu Visual Studio -> Modyfikuj -> Poszczególne składniki i sprawdź odpowiednią wersję

Cata Hotea
źródło
9
Jest to czyste rozwiązanie, ponieważ program Visual Studio wyświetli listę wszystkich wersji dla Ciebie i pokaże, co masz aktualnie zainstalowane, i będzie zarządzać pobieraniem / instalacją.
olive_tree
1
Wypróbowałem wszystkie powyższe rozwiązania i żadne nie zadziałało. Ten wykonał swoją pracę. Dzięki
Charlie Seligman
Mój prosi o v4.6.1 (zestawy referencyjne) i pokazuje v4.6.1 (narzędzia programistyczne) zainstalowane przez instalator ... wciąż próbuję dowiedzieć się, co się dzieje. ANULUJ TO: Mój problem polegał na tym, że żaden framework .NET nie był w ogóle zainstalowany domyślnie. Dziękuję Ci.
Xonatron,
1
To powinna być naprawdę najlepsza odpowiedź!
Tomáš Hübelbauer
To najlepsza odpowiedź!
Himechi90
13

Od maja 2019 możesz budować swój projekt na net20 do net48 (w tym ne461) na dowolnej maszynie z zainstalowanym co najmniej MSBuild lub .NET Core SDK bez konieczności instalowania Developer Pack.

Jeśli zestaw .NET Core SDK jest zainstalowany na komputerze, Dodaj pakiet NuGet Microsoft.NETFramework.ReferenceAssemblies do projektu

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

Pakiet zawiera wszystkie zestawy ReferenceAssemblies od net20 do net48

Te pakiety umożliwiają tworzenie projektów .NET Framework na dowolnym komputerze z zainstalowanym co najmniej MSBuild lub zestawem .NET Core SDK oraz innymi scenariuszami.

Więcej szczegółów: https://github.com/Microsoft/dotnet/tree/master/releases/reference-assemblies

M.Hassan
źródło
Doskonałe rozwiązanie!
Akash Agarwal
Idealnie, działa <ItemGroup Condition = "'$ (TargetFramework)' == 'net20' Lub '$ (TargetFramework)' == 'net40'">
Stefan Steiger
12

Podczas kompilowania otrzymywałem dokładnie ten sam błąd, z wyjątkiem tego, że był to błąd „.NETFramework, Version = v4.7.1”.

Pobrałem pakiet programisty dla 4.7.1 stąd: https://www.microsoft.com/en-us/download/confirmation.aspx?id=56119

Pakiet zainstalował te programy na komputerze docelowym (moim serwerze kompilacji).

  • Zestaw SDK programu Microsoft .NET Framework 4.7.1
  • Pakiet docelowy programu Microsoft .NET Framework 4.7.1
  • Microsoft .NET Framework 4.7.1 Targeting Pack (ENU)

Kiedy próbowałem ponownie budować, nie otrzymałem już błędu i kompilacja się powiodła.

Jamie Butterworth
źródło
1
Podobny problem (błąd serwera kompilacji). Miałem ten sam błąd, ale dla 4.7.1 i to rozwiązało go dla mnie.
Brendan,
Jak wyżej dla 4.7.2.
LosManos