[Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: Sinix  
Дата: 30.09.17 11:29
Оценка: 70 (2)
При помощи лома и такой-то матери с четвёртой попытки удалось перевести CJ на новый тулинг студии, добавить нормальный conditional build и сборку пакетов и таргетинг для netcore и netstandard.

Общие впечатления — даже не пытайтесь это повторить на коммерческих проектах. Такого количества разнообразных косяков, багов, пофигизма в плохом смысле слова и политики "мы тестировать не будем, т.к. иначе релиз выпустить не получится" я не видел никогда

Путём не меньших костылей удалось даже завести тесты на appveyor, тадам и всё такое.
  Дружно завидуем

На количество тестов не обращаем внимания. Просто решарпер так видит.


Ветка — feature/netstandard2, для того чтобы проверить:
1. Закрываем студию. Обновляем до 15.3.5, если ещё не. Предупреждение раз: начиная с 15.3 каждое обновление vs 2017 ломает что-нибудь или в процессе сборки или в работе с азуром. Если есть пакеты, которые зависят от netstandard-библиотек — готовьтесь к приключениям. Предупреждение два: откат на предыдущие версии — только снести студию и установить заново. В общем, общий настрой вы поняли.
2. Убеждаемся, что от студии не осталось никаких зависших процессов. Msbuild, vbcscompiler и тыды.
3. Грохаем все bin/obj папки и грохаем папку `.vs` в корне. Для очистким можно использовать вот этот скрипт powershell
gci -inc bin,obj -rec | rm -rec -force
gci -inc bin,obj -rec | rm -rec -force

4. Открываем солюшн и, не делая сборку, переключаемся на Build configuration Publish. Собираем. Если собралось — выдыхаем, переключаемся на Debug/Release и работаем спокойно.
5. Если звёзды не сошлись — посылаем лучи любви разработчикам тулинга, нюгета, dotnet cli и тому гению, который решил собрать всю эту солянку без тестирования и не проследив, чтобы везде использовалась хотя бы одна и та же версия библиотек.
Закрываем студию. Из Developer Console vs 2017 (переходим в папку с солюшном) вызываем
Build\RunMe.BuildPublishConfiguration.cmd

Открываем студию.

Если не помогло и это — пишем сюда. Оф саппорт ушёл в несознанку, на реквесты реакции нет. Да, юнит-тесты из голой консоли могут не заработать ибо вот.

Если повезло — в дальнейшем всё работает без сбоев. По крайней мере до следующего обновления студии.

Собственно вопрос: мержить будем?
Если да — надо, чтобы кто-то настроил сборку справки (DocsProject). Я её на время вообще убрал из солюшна.
Отредактировано 30.09.2017 12:31 Sinix . Предыдущая версия . Еще …
Отредактировано 30.09.2017 11:56 Sinix . Предыдущая версия .
Re: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: IT Россия linq2db.com
Дата: 30.09.17 17:20
Оценка:
Здравствуйте, Sinix, Вы писали:

Упорно не собирается.

1>C:\Program Files\dotnet\sdk\2.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.PackageDependencyResolution.targets(165,5): error : Assets file 'I:\CodeJam\Main\src\obj\project.assets.json' doesn't have a target for '.NETStandard,Version=v2.0'. Ensure that restore has run and that you have included 'netstandard2.0' in the TargetFrameworks for your project.

Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.09.17 17:23
Оценка:
Здравствуйте, IT, Вы писали:

Первых 3 пункта выполнил?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: IT Россия linq2db.com
Дата: 30.09.17 17:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Первых 3 пункта выполнил?


И не раз.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.09.17 17:36
Оценка:
Здравствуйте, IT, Вы писали:

AVK>>Первых 3 пункта выполнил?

IT>И не раз.

Тогда попробуй закрыть студию и запустить в консоли студии Build\RunMe.BuildPublishConfiguration.cmd
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: IT Россия linq2db.com
Дата: 30.09.17 17:49
Оценка: 22 (1)
Здравствуйте, Sinix, Вы писали:

3.1 В корне проекта выполняем команду "dotnet restore CodeJam.sln"
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: Sinix  
Дата: 30.09.17 19:37
Оценка:
Здравствуйте, IT, Вы писали:

IT>3.1 В корне проекта выполняем команду "dotnet restore CodeJam.sln"

О как ! Мне это не помогло.
А вот выполнить "Build\RunMe.BuildPublishConfiguration.cmd" прокатило.
Re[3]: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: Слава  
Дата: 30.09.17 19:41
Оценка:
Здравствуйте, Sinix, Вы писали:

S>А вот выполнить "Build\RunMe.BuildPublishConfiguration.cmd" прокатило.


Спустя долгие годы разработки MS таки создал экосистему с квантовыми эффектами и квантовой же неопределённостью.
Re[4]: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: Sinix  
Дата: 30.09.17 20:07
Оценка:
Здравствуйте, Слава, Вы писали:

С>Спустя долгие годы разработки MS таки создал экосистему с квантовыми эффектами и квантовой же неопределённостью.


Насчёт квантовой не знаю, но запутанность там точно есть)
4 субботы на эту пакость потратил, но в итоге получилось типа уникальное решение — conditional build с multitargeting под net + net core + нюгет-пакеты + тесты и всё это — штатными средствами, т.е. отладка разных платформ не отваливается.

Ну, во всяком случае, я готового решения не нашёл, хоть и старался.
Народ или тупо лепит все платформы даже в debug-конфигурацию (тормоза студии соответствующие), или городит свои билдскрипты, иногда на cake вместо msbuild.
Re: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: _NN_ www.nemerleweb.com
Дата: 11.10.17 04:58
Оценка:
Здравствуйте, Sinix, Вы писали:

Вопрос в связи с выходом VS 2017 15.4 , в студии что-нибудь полезное починили на этот раз ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: [Ann, ready to merge] поддержка netcore 2 и netstandard 2
От: Sinix  
Дата: 11.10.17 06:20
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Вопрос в связи с выходом VS 2017 15.4 , в студии что-нибудь полезное починили на этот раз ?


Емнип нет, 15.4 подогнана к осеннему обновлению win. Вот в 15.5 могут
Починка пока идёт как-то так:
https://github.com/dotnet/corefx/issues/23306
https://github.com/dotnet/standard/issues/481
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.