Nancy: 迁移到新的项目系统

创建于 2017-03-20  ·  4评论  ·  资料来源: NancyFx/Nancy

是时候从旧的*.csprojproject.json格式迁移到 Visual Studio 2017 和 Visual Studio Code 支持的新的和改进的*.csproj格式了

去做

需要在每个存储库上完成以下步骤

  • 使用dotnet migrate迁移到新的项目系统(包括添加缺失的项目并验证所有测试)(@thecodejunkie)
  • 添加Directory.build.props文件并更新所有* .csproj文件(参见MiniProfiler示例)
  • DisableImplicitFrameworkReferences元素添加到所有*.csproj以进行完整框架构建(示例参见OwinHttpMessageHandler
  • 再次迁移回netstandard1.3 (需要更新build.cake以反映这一点,即netstandard1.6所有引用)
  • 更新build.cake以支持使用新项目 SDK 在 Mono 上运行( @akoeplinger确认xbuild将不再能够在 Mono` 上构建新项目格式)
  • 更新所有测试项目以使用xunit 2.2.0xunit.runners.visualstudio 2.2.0

采用 NETStandard.Library 的用法

  1. 添加DisableImplicitPackgeReference元素并将其设置为 true
  2. 删除我们对 netstandard1.x TFM 的所有显式包引用
  3. 添加对NETStandard.Library v1.6.1的显式引用
  4. 添加我们需要的任何额外的包,这些包不会是NETStandard.Library

演示项目

唯一移植到project.json Nancy.Demo.*项目是新的Nancy.Demo.Hosting.Kestrel项目。 因此,所有其他演示项目在dotnet migrate已在项目上运行后,最终都会出现非常臃肿的*.csproj文件。 我们需要清理这些并让它们使用新的、更轻的格式

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

额外的

调查使用单个 MSBuild 调用来加快执行时间。 查看@dasmulli 建议的示例https://gist.github.com/dasMulli/69f5303aa79a8cd4060e44891c90fd2d

构建脚本

由于我们不再可以使用xbuild在 *nix 上使用 Mono 进行构建,我们将不得不求助于使用FrameworkPathOverride并在https://github.com/dotnet/netcorecli- 上定义- 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我目前正在我的机器上进行一些探索,以确切了解我们想要做什么以及我们如何做。 一旦我确定了所有这些,我将完成主要的 Nancy 存储库,然后我们可以为剩余的存储库寻求社区帮助。 👍

@cemremengu我正在使用它作为一个半结构化的大脑转储,在此工作时我能想到或遇到的东西😄

此页面是否有帮助?
0 / 5 - 0 等级