Nancy: Bermigrasi ke sistem proyek baru

Dibuat pada 20 Mar 2017  ·  4Komentar  ·  Sumber: NancyFx/Nancy

Waktunya telah tiba untuk berpindah dari format *.csproj dan project.json format *.csproj yang baru dan lebih baik yang didukung oleh Visual Studio 2017 dan Visual Studio Code

Melakukan

Langkah-langkah berikut harus dilakukan pada setiap repositori:

  • Bermigrasi ke sistem proyek baru menggunakan dotnet migrate (termasuk menambahkan proyek yang hilang dan memverifikasi semua pengujian) (@thecodejunkie)
  • Tambahkan file Directory.build.props dan perbarui semua file * .csproj (lihat MiniProfiler untuk contoh)
  • Tambahkan elemen DisableImplicitFrameworkReferences ke semua *.csproj untuk pembangunan full-framework (lihat OwinHttpMessageHandler untuk contoh)
  • Migrasi kembali ke netstandard1.3 lagi (perlu memperbarui build.cake untuk mencerminkan ini, yaitu semua referensi netstandard1.6 )
  • Perbarui build.cake untuk mendukung berjalan di Mono dengan SDK proyek baru ( @akoeplinger mengonfirmasi bahwa xbuild tidak lagi dapat membuat format proyek baru di mono`)
  • Perbarui semua proyek uji untuk menggunakan xunit 2.2.0 dan xunit.runners.visualstudio 2.2.0

Mengadopsi penggunaan NETStandard.Library

  1. Tambahkan elemen DisableImplicitPackgeReference dan setel ke true
  2. Hapus semua referensi paket eksplisit kami untuk netstandard1.x TFM
  3. Tambahkan referensi eksplisit ke NETStandard.Library v1.6.1
  4. Tambahkan paket tambahan apa pun yang kami butuhkan yang tidak akan menjadi bagian dari NETStandard.Library

Proyek demo

Satu-satunya proyek Nancy.Demo.* yang di-porting ke project.json adalah proyek Nancy.Demo.Hosting.Kestrel baru. Karena itu, semua proyek demo lainnya berakhir dengan sangat membengkak *.csproj file setelah dotnet migrate telah dijalankan pada proyek-proyek. Kita perlu membersihkannya dan membuatnya menggunakan format baru yang lebih ringan

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

Tambahan

Selidiki menggunakan satu permintaan MSBuild untuk mempercepat waktu eksekusi. Lihat contoh https://Gist.github.com/dasMulli/69f5303aa79a8cd4060e44891c90fd2d yang disarankan oleh @dasmulli

Buat skrip

Karena kita tidak lagi dapat menggunakan xbuild untuk membangun menggunakan Mono di *nix, kita harus menggunakan FrameworkPathOverride dan didefinisikan di https://github.com/dotnet/netcorecli- fsc/wiki/.NET-Core-SDK-rc4#using -net-framework-as-targets-framework-the-osxunix-build-fails yaitu kita perlu memperbarui build.sh untuk memasukkan

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

Perlu menunjuk ke 4.5 karena bagaimana Mono dibentuk untuk menyimpan artefak mereka http://www.mono-project.com/docs/about-mono/releases/4.4.0/#class -libraries

Catatan: Folder 4.5 berisi rakitan aktual yang digunakan selama runtime. Kami sedang mempertimbangkan rakitan terbaru ini mulai sekarang, yaitu sekarang mereka menerapkan .NET 4.6.1. Sayangnya, kami tidak dapat mengganti nama folder ini karena terlalu banyak aplikasi dan perpustakaan yang memeriksa jalur ini secara hardcode.

Repositori

Kita harus melalui semua repositori dan memigrasikannya + memperbarui skrip build

  • [x] Nancy
  • [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
Epic

Komentar yang paling membantu

images

Ini terlihat seperti sebuah epik

Semua 4 komentar

images

Ini terlihat seperti sebuah epik

@thecodejunkie Jika Anda dapat mengarahkan saya ke cabang tempat Anda telah melakukannya, saya dapat membantu.

@Sphiecoh Saat ini saya sedang menjelajahi sedikit di mesin saya untuk mendapatkan ide tentang apa yang ingin kami lakukan dan bagaimana kami melakukannya. Setelah saya menyelesaikan semua itu, maka saya akan menyelesaikan repo Nancy utama dan kemudian kami dapat mengambil bantuan komunitas untuk repositori yang tersisa. 👍

@cemremengu Saya menggunakan ini sebagai dump otak semi-terstruktur dari hal-hal yang dapat saya pikirkan atau temukan saat mengerjakan ini

Apakah halaman ini membantu?
0 / 5 - 0 peringkat