Сборка на основе приложения .NET Standard 2.0

Я переношу свой проект (https://github.com/MarkKhromov/The-Log) на .NET Standard 2.0 и моя сборка appveyor не работают. Как я могу это исправить?

Мое решение содержит:

  • Стандартный проект .NET
  • Проект консольного приложения
  • Проект библиотеки классов (тесты)

Я уже пробовал писал(а):

dotnet: 2.0.0
script:
  - dotnet restore
  - dotnet build

or

- dotnet build TheLog/TheLog.csproj -c Release -f netstandard2.0
- msbuild TheLog.Demos/TheLog.Demos.csproj /p:Configuration=Release
- msbuild TheLog.Tests/TheLog.Tests.csproj /p:Configuration=Debug
- nunit-console TheLog.Tests/TheLog.Tests.csproj

Но каждый раз у меня есть ошибки


person Mark Khromov    schedule 08.09.2017    source источник


Ответы (2)


Вам необходимо изменить конфигурацию приложения на образ VS 2017, чтобы создавать библиотеки .NET Standard и использовать инструменты на основе dotnet для csproj проектов.

person Martin Ullrich    schedule 08.09.2017
comment
Встроенная фаза сборки AppVeyor на основе msbuild работает нормально с проектами .NET Standard 2.0 на Visual Studio 2017. Тем не менее, да, выполнение теста должно выполняться с помощью инструментов на основе dotnet. - person Ilya Finkelsheyn; 08.09.2017
comment
Я просмотрел журнал сборки из вашего последнего коммита на мастере, и он использовал msbuild 14, поэтому я решил, что вы еще не выбрали образ 2017 года. Кстати, не имеет значения, выполняется ли выполнение теста через msbuild или dotnet, оба вызывают цель VSTest msbuild. - person Martin Ullrich; 08.09.2017

Необходимо изменить два параметра в AppVeyor.
1. Изменить Build worker image на Visual Studio 2017 — параметр среды
2. Добавить команду "dotnet restore" в параметр Before build script как CMD — параметр сборки

Я подтвердил это в новом пустом проекте/решении, установленном на .NET Standard 2.0 или .NET Core 2 .

person idubnori    schedule 11.01.2018