引言
2016年5月, 微软宣布放弃使用 Project.json 文件管理 dotnet core项目, 而退回到之前的MSbuild+.csproj文件的方式. 这个消息的发布使得dotnet社区许多开发者扼腕叹息. 然并卵, 通过关注dotnet cli的开源项目, 不难发现, 微软已经做好了相关的技术准备, 并准备了一套Project.json转.csproj的方案.
前世今生
Project.json诞生伊始即定位为.csproj的替代品, 通过Json格式灵活, 简洁, 语义清晰的特点, 对项目进行管理. 但是最终, 微软放弃了这个方案, 终止了关于Project.json的实验. 微软为什么兜个圈子又回到了之前的.csproj的方式? 我们来看一下微软官方的解释.
1. Visual Studio兼容project.json比较复杂, 工作量比较大
2. 之前的CI/RM工具无法很好的兼容project.json
3. MSBuild功能已经很全面, 但是MSBuild无法兼容project.json, 微软不可能在花大力气再实现一遍MSBuild的全部功能
总结来看, 问题还是出在兼容性. 既然已经如此, 作为dotnet社区忠实拥趸的我们, 也只好接受.
还好微软已经做了一些准备工作, 在最新的Cli preview 4中, 已经去掉了对project.json的支持, 并新加入一个
dotnet migrate
命令. 我们可以很容易的将之前的project.json项目, 迁移会csproj, 而且迁移之后Visual studio的支持也会更好.
迁移遇到问题咋办?
微软也意识到迁移不会100%的成功, 针对实际迁移中的各种问题, 我们根据微软提供的流程, 将问题反馈到Github, 具体的方法为:
1. 在问题的标题上加上前缀[MIGRATION]:
2. 可以通过连接, 和粘贴的方式, 将你的project.json文件共享给微软的开发者
3. 粘贴dotnet --info命令输出的信息
4. 在问题的正文中@blackdwarf 和 @livarcocc
相信微软的开发者会积极帮助大家解决问题.
网友评论