怎么查网站的关键词排名,wordpress文章分页插件,网站开发完成后如何发布,厦门网页设计公司价格在此前的文章中详细介绍了使用.NET Core的基本知识#xff0c;如果还没有看#xff0c;可以先去了解“拥抱.NET Core#xff0c;学习.NET Core的基础知识补遗”#xff0c;以便接下来的阅读。 在本文将介绍如何配置类库项目支持不同的平台#xff0c;并为不同的平台进行兼… 在此前的文章中详细介绍了使用.NET Core的基本知识如果还没有看可以先去了解“拥抱.NET Core学习.NET Core的基础知识补遗”以便接下来的阅读。 在本文将介绍如何配置类库项目支持不同的平台并为不同的平台进行兼容的编码。 创建一个.NET Core类库 首先我们创建一个.NET Core的类库项目。 结构如下 设置项目支持的平台 我们打开“project.json”文件会看到如下内容 其中“framework”就是用来配置所支持的目标默认为netstandard1.6。 要点回顾 问netstandard1.6可以被应用在哪些平台之上这里大家可以回忆一下 答 netcoreapp 1.0.NET Corenet4.6.3.NET Framework 如果你的答案跟此一致那么恭喜你已经基本掌握了各个平台直接的关系了。 支持net4和netcoreapp 接着我们想让类库支持目标的为net4 net45 netcoreapp。 根据上一篇的内容我们可以了解到可以通过降低netstandard版本以来兼容更多的net平台其中netstandard1.1就可以支持net45也就是说如果我们把netstandard1.6改为netstandard1.1就可以达成net45和netcoreapp1.0的支持这种方式是理论上最优的但可能只是一个梦具体的会在下面的章节指出为什么看上去像这样 现在这个类库可以兼容net45和netcoreapp1.0那么net40呢上篇的内容中说net40根本没有对netstandard做兼容。 是的net40没有对netstandard做兼容所以我们需要单独设置一个新的目标标识类库同时需要被netstandard和net4使用。 这边的netstandard和net4是一个互不兼容的分支。修改后文件像这样子 如何编码 设定了不同的平台后在编码方式上又有哪些区别 我们首先考虑一个问题net45和net4是同一种性质的实现只不过前者是后者的升级版所以net4的大部分代码net45可以无缝支持也就是说基于net4的代码不需要改动就可以让net45进行支持。 但netstandard是个新目标其中包含了许多net平台上没有的类库比如wcfSystem.Web.dll等那么改如何在一个项目中与net4、net45共存呢 我们来看一下“Class1.cs”代码文件 可以看到在左上方的下拉框中列出了这个类库所支持的平台点击选中其中一个平台可以设置开发环境为这个选中的平台。 接着让我们写个Hello World。 这是一个很简单的写法可以发现Task.FromResult(“rabbit”)不支持net4那么我们就需要利用“条件编译符”设置在net4环境下的兼容代码修改之后看上去如下 根据项目框架选择的不同ide会自动高亮当前生效的代码。 这样我们就完成了GetName方法net4和netstandard1.1的支持了。 那么大家在回顾一下现在支持哪些平台 net4net45net451net452net4.6net4.6.1net4.6.2net4.6.3netcoreapp1.0uap10.0win8.0win8.1wpa8.1Mono/Xamarin Platformsmono 是不是一下变得高大上除了net4外其余的都依靠netstandard的强大支持。 是不是netstandard版本越小越好 答案是否定的虽然netstandard可以兼容更多平台但有个很致命的缺点就是为了兼容损失了很多类库和新特性比如 这个属性在net4.6之后才被支持也就是说netstandard1.3才可以使用此属性。 当然这只是很小的一个例子还有更多的组件不支持低版本。这意味着你得最更多的兼容操作而有一些类库的缺失可能是致命的。 所以大家在编写类库的时候把我一下兼容的度一般来说支持.net45netcoreapp1.0就可以了。 看清“framework”的本质 以上的项目开发方式给我们照成一个错觉它就是一个东西同样的编码同样的项目文件。 其实不同的framework中是完全独立的共享的只是文件而已framework配置的越多你项目的生成速度越慢。 为什么呢让我们看一下vs的输出窗口。 有次可以看出在生成环境vs将不同的framework区别看来进行单独生成上面我们配置了两个平台vs就执行了两次生成项目越大框架越多生成越慢。 所以不要被表明混淆在进行编码的时候要记清楚他们是两个独立的东西只不过在开发方式上微软做出了优化。 写在最后 本文介绍了开发一个跨平台类库的基本做法接下来会接着介绍 不同框架直接的依赖引用的包和程序集如何将.NET Core类库项目打包成nuget包如何让旧的.NET Framework项目使用这个跨平台类库。跨平台类库不同目标中代码兼容的小技巧等 原文地址http://www.cnblogs.com/ants/p/5740473.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注