Хостинг 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 использует для агента.

Я надеюсь, что мой ответ поможет вам.

Другие вопросы по тегам