网站建设报价单 excel,华为网站推广策略,成都装修网站制作价格,钓鱼网站怎么做去年年中#xff0c;Rafy 框架的源码就已经支持了 Net Standard 2.0 版本。其开源代码也已经上传到 Github 中#xff1a;https://github.com/zgynhqf/rafy/tree/NetStandard2.0 。但是这都只是在源码层面支持 NS2.0#xff0c;并没有发布其正式的 Nuget 包。要使用这个版本… 去年年中Rafy 框架的源码就已经支持了 Net Standard 2.0 版本。其开源代码也已经上传到 Github 中https://github.com/zgynhqf/rafy/tree/NetStandard2.0 。但是这都只是在源码层面支持 NS2.0并没有发布其正式的 Nuget 包。要使用这个版本的开发者不得不自己下载源码进行编译。最近使用 Net Core 的开发者越来越多。所以我们决定发布一个正式的 Nuget 包以方便 Net Core 的开发都可以方便地下载、更新 Rafy 框架进行使用。发布后开发者在 Nuget 中再搜索 Rafy 的最新版本时就已经支持 Net Standard 2.0 了项目支持多版本的改造步骤过程中其实没有想到要发布一个同时支持 Net Standard 2.0 和 Net Framework 4.5 版本的 Nuget 包还是比较繁琐的。需要将原来的两个分支的代码合并到一起并通过预处理命令来分别编译为不同版本。下面简单记录一下一些重要的步骤创建并使用新的 Net Standard 项目文件格式来创建。修改 Rafy.csproj 文件使其支持多个 .NET 版本Project SdkMicrosoft.NET.SdkPropertyGroupTargetFrameworksnet45;netstandard2.0/TargetFrameworksRafy.csproj 文件中为不同的版本添加不同的引用ItemGroup Condition$(TargetFramework) net45Reference IncludePresentationFramework /Reference IncludeSystem /Reference IncludeSystem.Configuration /Reference IncludeSystem.Core /Reference IncludeSystem.Runtime.Caching /Reference IncludeSystem.Runtime.Serialization /Reference IncludeSystem.ServiceModel /Reference IncludeSystem.Transactions /Reference IncludeSystem.Web /Reference IncludeSystem.Xaml /Reference IncludeSystem.Xml.Linq /Reference IncludeSystem.Data.DataSetExtensions /Reference IncludeMicrosoft.CSharp /Reference IncludeSystem.Data /Reference IncludeSystem.Xml /Reference IncludeWindowsBase /PackageReference IncludeCastle.Core Version4.1.1 /PackageReference IncludeNewtonsoft.Json Version10.0.3 //ItemGroupItemGroup Condition$(TargetFramework) netstandard2.0PackageReference IncludeMicrosoft.Extensions.Caching.Memory Version2.0.0 /PackageReference IncludeMicrosoft.Extensions.Configuration.Binder Version2.0.0 /PackageReference IncludeMicrosoft.Extensions.Configuration.FileExtensions Version2.0.0 /PackageReference IncludeMicrosoft.Extensions.Configuration.Json Version2.0.0 /PackageReference IncludeMicrosoft.Extensions.DependencyInjection Version2.0.0 /PackageReference IncludeMicrosoft.Extensions.Options.ConfigurationExtensions Version2.0.0 /PackageReference IncludeNewtonsoft.Json Version10.0.3 /PackageReference IncludeSystem.ComponentModel Version4.3.0 /PackageReference IncludeSystem.ComponentModel.TypeConverter Version4.3.0 /PackageReference IncludeSystem.Data.Common Version4.3.0 /PackageReference IncludeCastle.Core Version4.1.1 /PackageReference IncludeSystem.Data.SqlClient Version4.4.0 //ItemGroup还可以自定义一些缩写的常量PropertyGroup Condition$(TargetFramework)netstandard2.0DefineConstantsNS2/DefineConstants/PropertyGroup修改合并后的项目中的所有相关代码都使用预处理命令来区别不同的版本如 private void EnsureLoaded() { if (_section null){ #if NET45_section ConfigurationManager.GetSection(rafy) as RafyConfigurationSection; if (_section null) _section new RafyConfigurationSection(); #endif#if NS2var rafyRawSection ConfigurationHelper.Configuration.GetSection(rafy); if (rafyRawSection null){ throw new InvalidProgramException(配置文件中没有 rafy 配置节请检查配置文件。);}_section new RafyConfigurationSection();rafyRawSection.Bind(_section); #endif}}配置项目为编译时生成对应的 Nuget 包。生成并发布。最终生成的 Nuget 包格式是这样的通过上述几步就使得 Rafy 框架支持了 Net Standard 版本了。同时我们还把 Rafy 中的一些其它公共插件也都支持了多版本。以后会不定期升级每一个插件。原文地址: http://www.cnblogs.com/zgynhqf/p/9015478.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com