引言
2016年5月, 微軟宣布放棄使用 Project.json 文件管理 dotnet core項目, 而退回到之前的MSbuild+.csproj文件的方式. 這個消息的發(fā)布使得dotnet社區(qū)許多開發(fā)者扼腕嘆息. 然并卵, 通過關(guān)注dotnet cli的開源項目, 不難發(fā)現(xiàn), 微軟已經(jīng)做好了相關(guān)的技術(shù)準備, 并準備了一套Project.json轉(zhuǎn).csproj的方案.
前世今生
Project.json誕生伊始即定位為.csproj的替代品, 通過Json格式靈活, 簡潔, 語義清晰的特點, 對項目進行管理. 但是最終, 微軟放棄了這個方案, 終止了關(guān)于Project.json的實驗. 微軟為什么兜個圈子又回到了之前的.csproj的方式? 我們來看一下微軟官方的解釋.
1. Visual Studio兼容project.json比較復(fù)雜, 工作量比較大
2. 之前的CI/RM工具無法很好的兼容project.json
3. MSBuild功能已經(jīng)很全面, 但是MSBuild無法兼容project.json, 微軟不可能在花大力氣再實現(xiàn)一遍MSBuild的全部功能
總結(jié)來看, 問題還是出在兼容性. 既然已經(jīng)如此, 作為dotnet社區(qū)忠實擁躉的我們, 也只好接受.
還好微軟已經(jīng)做了一些準備工作, 在最新的Cli preview 4中, 已經(jīng)去掉了對project.json的支持, 并新加入一個
dotnet migrate
命令. 我們可以很容易的將之前的project.json項目, 遷移會csproj, 而且遷移之后Visual studio的支持也會更好.
遷移遇到問題咋辦?
微軟也意識到遷移不會100%的成功, 針對實際遷移中的各種問題, 我們根據(jù)微軟提供的流程, 將問題反饋到Github, 具體的方法為:
1. 在問題的標題上加上前綴[MIGRATION]:
2. 可以通過連接, 和粘貼的方式, 將你的project.json文件共享給微軟的開發(fā)者
3. 粘貼dotnet --info命令輸出的信息
4. 在問題的正文中@blackdwarf 和 @livarcocc
相信微軟的開發(fā)者會積極幫助大家解決問題.