是时候从旧的*.csproj
和project.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.0
和xunit.runners.visualstudio 2.2.0
DisableImplicitPackgeReference
元素并将其设置为 trueNETStandard.Library v1.6.1
的显式引用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。 不幸的是,我们无法重命名此文件夹,因为有太多应用程序和库对此路径进行了硬编码检查。
我们需要遍历所有存储库并迁移它们 + 更新构建脚本
这看起来像一部史诗般的地狱
@thecodejunkie如果您能指出我已经完成的分支,我可以提供帮助。
@Sphiecoh我目前正在我的机器上进行一些探索,以确切了解我们想要做什么以及我们如何做。 一旦我确定了所有这些,我将完成主要的 Nancy 存储库,然后我们可以为剩余的存储库寻求社区帮助。 👍
@cemremengu我正在使用它作为一个半结构化的大脑转储,在此工作时我能想到或遇到的东西😄
最有用的评论
这看起来像一部史诗般的地狱