Хостинг VS2017 не включает.NET 4.6.0?
У меня была работа CI в AzureDevops, которая проходила (зеленую) сборку с целью.NET 4.6.1. Он использует агент, настроенный как "Hosted VS2017".
Если я пытаюсь понизить версию сборки до.NET4.6.0, я получаю эту ошибку компиляции:
C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets (1179,5): Ошибка MSB3644: Справочные сборки для фреймворка ".NETFramework,Version=v4.6.0"не найдены. Чтобы решить эту проблему, установите SDK или Targeting Pack для этой версии платформы или перенастройте свое приложение на версию платформы, для которой у вас установлен SDK или Targeting Pack. Обратите внимание, что сборки будут разрешены из глобального кэша сборок (GAC) и будут использоваться вместо ссылочных сборок. Поэтому ваша сборка может быть неправильно нацелена на платформу, которую вы намереваетесь.
Как убедиться, что версия.NET 4.6.0 установлена в агенте сборки? Я не нахожу этот вариант в AzureDevOps-Pipelines.
2 ответа
В AzOv DevOps должны быть установлены все SDK и пакеты таргетинга AFAIK.
Убедитесь, что вы нацеливаетесь net46
и не net460
в вашем csproj.
Установлено на 100%. Потому что, если вы откроете образ, который MS использует для образа агента VS2017, вы увидите, что установлен 4.7.2. И если вы посмотрите, например, какая версия фреймворка поддерживается здесь, вы увидите
Microsoft .NET Framework 4.7.2 - это высокосовместимое обновление на месте для.NET Framework 4, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 и 4.7.1.
Вот почему я думаю, что вы можете задать вопрос в GitHub изображения, которое MS использует для агента.
Я надеюсь, что мой ответ поможет вам.