PCL 库 运行 可以使用 ASP.NET MVC 吗?

Can PCL libraries run with ASP.NET MVC?

我希望编写一个可以 运行 在许多目标上的库,例如 WPF、Windows Phone/Mobile、Mono 和 ASP.NET。我一直在搜索这方面的信息,但 ASP.NET?

似乎不支持 PCL

甚至 VS 表示 PCL 不能与 ASP.NET 一起使用:

那么我应该怎么做才能在所有平台上编写 PCL 和 运行 呢? ASP.NET 以外的所有内容都使用 PCL,并为 ASP.NET 创建一个普通的 Class 库,然后基本上复制粘贴代码?

简短的回答是肯定的,只要 PCL 配置文件支持 相同的 .NET 框架版本 您的 MVC 应用程序所针对的,就可以了。

When you create a Portable Class Library, you can choose a combination of platforms that you want your code to run on. The compatibility choices you make when creating a Portable Class Library are translated into a "Profile” identifier, which describes which platforms the library supports.

可能让您感到困惑的是 ASP.NET 没有在支持的软件框架(平台)列表中提及。原因是 ASP.NET 并不是真正的软件框架,而是应用程序框架(更高级别)。这意味着无论应用程序框架以 PCL 支持的软件框架为目标,应用程序框架也将工作。

在创建新的 PCL 项目时选择支持的平台时一定要格外小心,因为可用于该项目的 API 取决于该选择!

您可以阅读更多关于可移植 class 库的信息 on MSDN