Nancy: Переход на новую систему проектов

Созданный на 20 мар. 2017  ·  4Комментарии  ·  Источник: NancyFx/Nancy

Пришло время отказаться от старых форматов *.csproj и project.json в пользу нового и улучшенного формата *.csproj , который поддерживается Visual Studio 2017 и Visual Studio Code.

Делать

Следующие шаги необходимо выполнить для каждого репозитория.

  • Переход на новую систему проектов с использованием dotnet migrate (включая добавление недостающих проектов и проверку всех тестов) (@thecodejunkie)
  • Добавьте файл Directory.build.props и обновите все файлы * .csproj (см. Пример в MiniProfiler )
  • Добавьте элемент DisableImplicitFrameworkReferences ко всем *.csproj для сборок с полной структурой (см. Пример OwinHttpMessageHandler )
  • Вернитесь к netstandard1.3 снова (необходимо обновить build.cake чтобы отразить это, т.е. все ссылки netstandard1.6 )
  • Обновите build.cake для поддержки работы в Mono с новым SDK проекта ( @akoeplinger подтвердил, что xbuild больше не сможет создавать новый формат проекта в моно`)
  • Обновите все тестовые проекты, чтобы использовать xunit 2.2.0 и xunit.runners.visualstudio 2.2.0

Принятие использования NETStandard.Library

  1. Добавьте элемент DisableImplicitPackgeReference и установите для него значение true
  2. Удалите все наши явные ссылки на пакеты для netstandard1.x TFM
  3. Добавить явную ссылку на NETStandard.Library v1.6.1
  4. Добавьте любые дополнительные пакеты, которые нам нужны, которые не будут частью NETStandard.Library

Демо-проекты

Единственным проектом Nancy.Demo.* который был перенесен в project.json был новый проект Nancy.Demo.Hosting.Kestrel . Из-за этого все другие демонстрационные проекты заканчиваются очень раздутыми файлами *.csproj после того, как dotnet migrate были запущены в проектах. Нам нужно очистить их и заставить использовать новый, более легкий формат.

http://rehansaeed.com/cleaning-up-csproj/

Дополнительный

Попробуйте использовать один вызов MSBuild для ускорения времени выполнения. Посмотрите на пример https://gist.github.com/dasMulli/69f5303aa79a8cd4060e44891c90fd2d , предложенный @dasmulli

Сценарий сборки

Поскольку мы больше не можем использовать xbuild для сборки с использованием Mono на * nix, нам придется прибегнуть к использованию FrameworkPathOverride определенного на https://github.com/dotnet/netcorecli- fsc / wiki / .NET-Core-SDK-rc4 # using -net-framework-as-target-framework-the-osxunix-build-fails, т.е. нам нужно обновить build.sh чтобы включить

export FrameworkPathOverride=$(dirname $(which mono))/../lib/mono/4.5/

Он должен указывать на 4.5 из-за того, как Mono сформирован для хранения их артефактов http://www.mono-project.com/docs/about-mono/releases/4.4.0/#class -libraries

Примечание. Папка 4.5 содержит фактические сборки, которые используются во время выполнения. С этого момента мы рассматриваем эти сборки как последние, то есть сейчас они реализуют .NET 4.6.1. К сожалению, мы не смогли переименовать эту папку, так как слишком много приложений и библиотек жестко проверяли этот путь.

Репозитории

Нам нужно пройти все репозитории и перенести их + обновить скрипты сборки

  • [x] Нэнси
  • [x] Nancy.Bootstrappers.Autofac
  • [x] Nancy.Bootstrappers.Ninject
  • [x] Nancy.Bootstrappers.StructureMap
  • [x] Nancy.Bootstrappers.Unity
  • [x] Nancy.Bootstrappers.Windsor
  • [x] Nancy.Serialization.JsonNet
  • [x] Nancy.Serialization.ProtBuf
  • [x] Nancy.Serialization.ServiceStack

Самый полезный комментарий

images

Это похоже на адскую эпопею

Все 4 Комментарий

images

Это похоже на адскую эпопею

@thecodejunkie Если вы

@Sphiecoh В настоящее время я немного

@cemremengu Я использую это как полуструктурированную свалку мозгов, о которой я могу думать или сталкиваться во время работы над этим 😄

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

bsommardahl picture bsommardahl  ·  3Комментарии

Radzhab picture Radzhab  ·  11Комментарии

thecodejunkie picture thecodejunkie  ·  8Комментарии

lgabryel picture lgabryel  ·  7Комментарии

phillip-haydon picture phillip-haydon  ·  10Комментарии