Эталонные сборки для фреймворка «.NETFramework, Version = v4.6.2» не найдены.

112

При попытке скомпилировать решение я получаю следующую ошибку сборки:

Ошибка MSB3644 Эталонные сборки для платформы .NETFramework, Version = v4.6.2 не найдены. Чтобы решить эту проблему, установите SDK или Targeting Pack для этой версии платформы или перенацелите свое приложение на версию платформы, для которой у вас установлен SDK или Targeting Pack. Обратите внимание, что сборки будут разрешены из глобального кэша сборок (GAC) и будут использоваться вместо ссылочных сборок. Поэтому ваша сборка может быть неправильно нацелена на предполагаемую платформу. 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

Я пробовал установить .NET Framework 4.6.2 SDK, а также 4.6 Targeting Pack, но обе ошибки уже установлены. Я также попытался установить Visual Studio 2017, но он по-прежнему дает ту же ошибку.

Любые идеи?

Джастин
источник
4
Я видел, как эта проблема исчезла, когда вы установили пакет разработчика 4.5.2 (т.е. не 4.6.2, а пакет разработчика 4.5.2).
Питер Ричи,
У меня была эта проблема с 4.8, по какой-то причине мои файлы csproj были 4.8.0внутри, что не то же самое, что 4.8очевидно.
Яцек Горгонь,
Для реального ответа см. Stackoverflow.com/a/58850755/155077
Стефан Штайгер,

Ответы:

96

Оказывается, я установил .NET Framework v4.6.2, а не Developer Pack для 4.6.2. Дох!

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

Джастин
источник
Я установил Dev Pack 462 и по-прежнему получаю предупреждение. Мне нужно перезагружать машину?
Джим
5
мне пришлось перезапустить Visual Studio после установки, тогда все хорошо
Jonesopolis
68

Windows -> Поиск -> Установщик Visual Studio -> Изменить -> Отдельные компоненты и проверьте правильность версии.

Cata Hotea
источник
9
Это чистое решение, так как Visual Studio перечислит для вас все версии и покажет, что вы в настоящее время установили, и будет управлять загрузкой / установкой.
Olive_tree
1
Пробовал все вышеперечисленные решения, и ни один не работал. Этот сделал свою работу. Спасибо
Чарли Селигман
Моя запрашивает версию 4.6.1 (эталонные сборки), и она показывает версию 4.6.1 (инструменты разработки), установленную через установщик ... все еще пытаясь понять, что происходит. ОТМЕНА ЭТО: Моя проблема заключалась в том, что никакая платформа .NET не была установлена ​​по умолчанию. Спасибо.
Xonatron 02
1
Это должен быть главный ответ!
Tomáš Hübelbauer 08
1
Это лучший ответ!
Himechi90
13

С мая 2019 года вы можете собрать свой проект на net20 до net48 (включая ne461) на любой машине с установленным хотя бы MSBuild или .NET Core SDK без установки Developer Pack.

Если .NET Ядро SDK установлен в вас машине, добавьте NuGet пакет Microsoft.NETFramework.ReferenceAssemblies к вашему проекту

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

В пакет входят все ReferenceAssemblies, начиная с net20 и заканчивая net48.

Эти пакеты позволяют создавать проекты .NET Framework на любом компьютере с установленным хотя бы MSBuild или .NET Core SDK, а также другими сценариями.

Для получения дополнительных сведений: https://github.com/Microsoft/dotnet/tree/master/releases/reference-assemblies.

М. Хассан
источник
Идеально, работает <ItemGroup Condition = "'$ (TargetFramework)' == 'net20' Or '$ (TargetFramework)' == 'net40'">
Стефан Штайгер,
@M. Hassan Whem Я настроил ваше решение, теперь я получаю эту ошибкуvbc : error BC2017: could not find library 'Microsoft.VisualBasic.dll' [/Sample.vbproj]
Bhavin Thummar
Какая версия Dotnet SDK установлена ​​в рамках проекта?
Хасан
12

Я получал ту же ошибку при сборке, за исключением того, что она была для «.NETFramework, Version = v4.7.1».

Я загрузил пакет разработчика для 4.7.1 отсюда: https://www.microsoft.com/en-us/download/confirmation.aspx?id=56119

Пакет установил эти программы на целевой машине (мой сервер сборки).

  • Пакет SDK для Microsoft .NET Framework 4.7.1
  • Пакет нацеливания Microsoft .NET Framework 4.7.1
  • Microsoft .NET Framework 4.7.1 Targeting Pack (ENU)

Когда я попытался построить снова, я больше не получал ошибки, и сборка прошла успешно.

Джейми Баттерворт
источник
1
Аналогичная проблема (ошибка сервера сборки). Была такая же ошибка, но для 4.7.1, и это решило ее для меня.
Брендан
То же самое для 4.7.2.
LosManos