Размещенный VS2017 не включает .NET 4.6.0?

У меня была работа CI в AzureDevops, передающая (зеленая) сборку, нацеленную на .NET 4.6.1. Он использует агент, настроенный как «Хостинг 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.


person knocte    schedule 16.02.2019    source источник


Ответы (2)


В Azure DevOps должны быть установлены все SDK и пакеты таргетинга AFAIK.

Убедитесь, что вы нацеливаете net46, а не net460 в своем csproj.

person mfkl    schedule 18.02.2019
comment
вот и все! Я ошибочно использовал net460, отличный улов - person knocte; 18.02.2019

Установлено на 100%. Потому что, если вы откроете изображение, которое MS использует для агента VS2017 image вы увидите установленную версию 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 использует для агента.

Надеюсь, мой ответ вам поможет.

person Nick Sinitsin    schedule 17.02.2019