有什么方法可以在 PCL 项目中使用 .NET 库?
Any way to use .NET library in PCL project?
我有 Android 应用程序(UI 层),它与 .NET 库(BL 层)完美配合。 UI层实现BL接口。
现在我想用 PCL 创建 XamarinForms 应用程序。但是不可能在那里引用我的其他解决方案的项目:
Portable Library projects can only reference other Portable Library projects and assemblies.
有什么解决方法?有什么方法可以使用 .NET 库开发 XamarinForms 跨平台应用程序吗?
不,您不能仅使用 .Net 库构建 Xamarin 跨平台应用程序。 PCL 与特定的 "profile" 相关联。此配置文件由 Microsoft 提供,它定义了无需重新编译即可在每个目标框架上使用的特定 API。
为了您的信息,这里是 VS2015 更新 3 的一些现有配置文件的列表:link。
需要注意的重要一点是,您选择的平台越多,您能够使用的 API 就越少! IE。在 PCL 中,您无法直接从字符串文件名创建 StreamReader
。所以:
var reader = new System.IO.StreamReader(filename);
将无法在 PCL 中工作!对于这种情况,您将需要以任何方式实现一些抽象。
您可以尝试将现有的 .Net 程序集转换为 PCL(或 .Net Standard library)。这是您能够从 PCL.
引用您的图书馆的唯一方式
我有 Android 应用程序(UI 层),它与 .NET 库(BL 层)完美配合。 UI层实现BL接口。
现在我想用 PCL 创建 XamarinForms 应用程序。但是不可能在那里引用我的其他解决方案的项目:
Portable Library projects can only reference other Portable Library projects and assemblies.
有什么解决方法?有什么方法可以使用 .NET 库开发 XamarinForms 跨平台应用程序吗?
不,您不能仅使用 .Net 库构建 Xamarin 跨平台应用程序。 PCL 与特定的 "profile" 相关联。此配置文件由 Microsoft 提供,它定义了无需重新编译即可在每个目标框架上使用的特定 API。
为了您的信息,这里是 VS2015 更新 3 的一些现有配置文件的列表:link。
需要注意的重要一点是,您选择的平台越多,您能够使用的 API 就越少! IE。在 PCL 中,您无法直接从字符串文件名创建 StreamReader
。所以:
var reader = new System.IO.StreamReader(filename);
将无法在 PCL 中工作!对于这种情况,您将需要以任何方式实现一些抽象。
您可以尝试将现有的 .Net 程序集转换为 PCL(或 .Net Standard library)。这是您能够从 PCL.
引用您的图书馆的唯一方式