发布 Rafy .NET Standard 版本 Nuget 包
去年年中,Rafy 框架的源碼就已經(jīng)支持了 Net Standard 2.0 版本。其開(kāi)源代碼也已經(jīng)上傳到 Github 中:https://github.com/zgynhqf/rafy/tree/NetStandard2.0?。但是這都只是在源碼層面支持 NS2.0,并沒(méi)有發(fā)布其正式的 Nuget 包。要使用這個(gè)版本的開(kāi)發(fā)者,不得不自己下載源碼進(jìn)行編譯。
最近,使用 Net Core 的開(kāi)發(fā)者越來(lái)越多。所以我們決定發(fā)布一個(gè)正式的 Nuget 包,以方便 Net Core 的開(kāi)發(fā)都可以方便地下載、更新 Rafy 框架進(jìn)行使用。
發(fā)布后,開(kāi)發(fā)者在 Nuget 中再搜索 Rafy 的最新版本時(shí),就已經(jīng)支持 Net Standard 2.0 了:
項(xiàng)目支持多版本的改造步驟
過(guò)程中其實(shí)沒(méi)有想到,要發(fā)布一個(gè)同時(shí)支持 Net Standard 2.0 和 Net Framework 4.5 版本的 Nuget 包,還是比較繁瑣的。需要將原來(lái)的兩個(gè)分支的代碼合并到一起,并通過(guò)預(yù)處理命令來(lái)分別編譯為不同版本。
下面,簡(jiǎn)單記錄一下一些重要的步驟:
創(chuàng)建并使用新的 Net Standard 項(xiàng)目文件格式來(lái)創(chuàng)建。
修改 Rafy.csproj 文件,使其支持多個(gè) .NET 版本:
Rafy.csproj 文件中,為不同的版本添加不同的引用:
還可以自定義一些縮寫(xiě)的常量:
修改合并后的項(xiàng)目中的所有相關(guān)代碼,都使用預(yù)處理命令來(lái)區(qū)別不同的版本,如:
? { ? ? ? ? ? ?
? ? ? ? ? ? if (_section == null){ ?
? ? ? ? ? ? ?_section = ConfigurationManager.GetSection("rafy") as RafyConfigurationSection; ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? if (_section == null) _section = new RafyConfigurationSection(); ? var rafyRawSection = ConfigurationHelper.Configuration.GetSection("rafy"); ? ?
? ? ? ? ? ? ? ? ? if (rafyRawSection == null){ ? ? ? ? ? ? ? ? ? ? ? throw new InvalidProgramException("配置文件中沒(méi)有 rafy 配置節(jié),請(qǐng)檢查配置文件。");}_section = new RafyConfigurationSection();rafyRawSection.Bind(_section); ?
? ? ? ? ? ? ? ? ? }}
配置項(xiàng)目為編譯時(shí)生成對(duì)應(yīng)的 Nuget 包。
生成,并發(fā)布。最終生成的 Nuget 包格式是這樣的:
通過(guò)上述幾步,就使得 Rafy 框架支持了 Net Standard 版本了。同時(shí),我們還把 Rafy 中的一些其它公共插件也都支持了多版本。以后會(huì)不定期升級(jí)每一個(gè)插件。
原文地址: http://www.cnblogs.com/zgynhqf/p/9015478.html
.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的发布 Rafy .NET Standard 版本 Nuget 包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用Swashbuckle构建RESTf
- 下一篇: 你关心才值得分享 | K8S网络安全之访