.Net 跨平台可移植类库PCL可用于任何平台包括Mono
Microsoft 在 .NET Framework 4 中添加了一个名为可移植类库 (PCL) 的新功能。 利用 PCL,您可以有选择性地面向 .NET Framework、Silverlight 和 Windows Phone 以及 Windows 应用商店和 Xbox 360 的多个版本,所有这些均可从单个 Visual Studio .NET 项目中实现。 当您选择 PCL 项目模板时,Visual Studio 会自动确保代码仅使用每个所选目标平台上存在的库。 这样就无需使用繁重的预处理器指令和多个生成目标。 另一方面,该功能对可从库调用哪些 API 设定了一些限制;有关 PCL 功能和用法的详细信息,请参见“使用 .NET Framework 实现跨平台开发” (msdn.microsoft.com/library/gg597391)。
到目前为止,.NET Framework可移植类库的承诺由于其对Microsoft技术栈的偏向而受到种种限制。这些偏见表现在软件许可协议上,它们从法律上限制了PCL在多种Microsoft平台上是专有的,包括Windows Phone、Xbox 360和Windows桌面。之前,作为一个开发人员如果想通过Mono构建一个跨平台的应用程序,让它既能够在基于Windows的平台又能够在非Microsoft平台上运行,那么许可是不允许的。这种人为的约束限制了PCL的采用,但是Microsoft最近发布了一个新的声明移除了这些通常会让人感到非常沮丧的法律限制,为开发者考虑使用这些技术提供了新的理由。
微软.NET团队的项目经理Rich Lander在.NET团队博客上发了一篇博客Portable Class Library (PCL) now available on all platforms :

Mono老大Miguel de Icaza 也在博客上发了一篇博客 Microsoft’s PCL Reference Assemblies,开发者将能够在没有安装Visual Studio的平台上(Mac、Linux、甚至是没有安装Visual Studio的Windows)创建二进制程序集。 Mono 从Mono 3.0.12 支持可移植类库,对于.NET程序员来说是个好消息,可以看出微软是在实实在在的支持.NET的跨平台。
Codeplex上有个项目 Sharing Code in .NET using Portable Class Library 是PCL使用方面的代码Sample,社区现在已经有非常的项目支持PCL。具体可以看我转载Scott Hanselman的一篇文章 .Net 跨平台可移植类库正在进行。
.Net 跨平台可移植类库PCL可用于任何平台包括Mono的更多相关文章
- .Net 跨平台可移植类库正在进行
[原文发表地址] Cross-Platform Portable Class Libraries with .NET are Happening [译文发表地址] .Net 跨平台可移植类库正在进行 ...
- VS2015中SharedProject与可移植类库(PCL)项目
转自:http://www.tuicool.com/articles/beaMZv3 今天闲里偷空看了点Connect大会的视频,C# 6.0的新语法.EF7的支持非关系型数据库.Windows商店应 ...
- Mono 3.0.12 支持可移植类库
Mono 3.0.12已于6月19日发布.对跨平台开发者而言,对可移植类库的支持可能是该版本最重要的变化.该技术可以使一个DLL支持.NET.Windows Store.Windows Phone.S ...
- 使用 Portable Class Library(可移植类库)开发 Universal Windows App
今天在这里跟大家聊聊关于 Windows Universal 应用夸平台的问题,首先Universal Windows App的定义相信大家已经有所了解了(如果你是一个刚刚接触 Universal A ...
- .Net Core跨平台应用研究-CustomSerialPort(增强型跨平台串口类库)
.Net Core跨平台应用研究-CustomSerialPort -增强型跨平台串口类库 摘要 在使用SerialPort进行串口协议解析过程中,经常遇到接收单帧协议数据串口接收事件多次触发,协议解 ...
- Android的项目不能直接引用可移植类库的项目解决方法
深圳_exception() 10:25:51 Android的项目不能直接引用可移植类库的项目,但是可以引用可移植类库生成的dll,这就意味着无法直接断电调试可移植类库上海-黄药师() 10:26: ...
- .Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布
.Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing ...
- 可移植类库无法使用async、await关键字
今天遇到了如题所示的问题,平台已经选择了.net 4.5了,可是就是编译不通过,await关键字下出现了红色下划线. 解决方法:安装一个Bcl的补丁包. https://www.nuget.org/p ...
- Oracle 应用于.NET平台
1. 回顾ADO.NET ADO.NET是一组用于和数据源进行交互的面向对象类库集,它存在于.Net Framework中.通常情况下,数据源可以是各种类型的数据库,利用ADO.NET可以访问目前几乎 ...
随机推荐
- Python 实现Windows开机运行某软件
开机运行:随系统启动的应用程序,当系统启动之后会自动加载的应用 在注册表中添加启动项便可实现开机启动. 代码如下: # -*- coding:utf-8 -*- import win32api imp ...
- Python 学习拾遗
该博文主要适应于python2.7,并没有对py3进行测试. 主要记录学习python过程中容易出现的一些小问题.小错误,相信能给你启发. 1.剔除一个字符串中的所有空格(假设该字符串是s) &quo ...
- jsf组件对应表
组件 标签 说明 UIForm form 表示 HTML表单元素 UIInput InputText 单行文本输入控件 inputTextarea 多行文本输入控件 InputSecret 密 ...
- Linux IPTABLES端口转发
之前在Linux上用普通用户部署了一个Tomcat,然后将其server.xml中的端口配置为80端口,用普通用户运行就提示绑定端口失败(permission denied),google了一下,原来 ...
- make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
在ubuntu12.04下编译android时,若出现如此错误,那是因为gcc版本太高. 通过gcc -v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu目录下,该目录下有 ...
- 5 Convert Sorted List to Binary Search Tree_Leetcode
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- F#之旅1 - Why use F#?为什么要用F#?
原文地址:http://fsharpforfunandprofit.com/why-use-fsharp/ Why use F#?Why you should consider using F# fo ...
- CMD安装/删除服务
服务安装 sc create "ddd" binpath= "D:\winservice\XXX\XXX.exe" 服务删除 sc delete "d ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- Go语言程序设计(1)--基本语法
第一个程序 package main import "fmt" func main() { fmt.Printf("Hello world") } 通过阅读这个 ...