簡體   English   中英

我可以在標准.Net應用程序中使用PCL庫嗎?

[英]Can I use PCL library in standard .Net application?

我有PCL庫,我想將其添加到標准(.net 4.6)C#控制台應用程序中。 只要我在庫中不使用任何PCL特定類,一切都很好。 如果這樣做,我會收到錯誤消息“不受支持的PCL配置文件”。 此錯誤不可查詢。 但是相同的庫在UWP應用程序中可以正常工作。 我正在尋找解決方案或官方解釋,為什么我不能在非UWP應用程序中使用PCL。

是的你可以。 PCL基本上是跨不同平台的可用API的交集。 缺點是選擇的目標平台越多,交點就越小: 在此處輸入圖片說明

PCL的另一個缺點是,它為每個平台生成單獨的組件。

這就是Microsoft隨附.NET Standard的原因-.NET Standard是使用不同方法的PCL的替代品。

考慮將.NET Standard作為定義API集的接口。 然后,.NET Framework,.NET Core,Xamarin.iOS,Xamarin.Android等平台將實現.NET Standard。

interface NetStandard1_0 {
}

interface NetStandard1_1 : NetStandard1_0{
}

interface NetStandard1_2 : NetStandard1_1{
}

net46: NetStandard1_6 {
}

dnxcode46: NetStandard1_6 {
}

因此,您將不針對特定平台,而要針對.NET Standard版本。 當您的庫針對.NET Standard時,可以在實現.NET Standards的任何平台中使用。 另一個優點是您不再需要用於不同平台的單獨程序集。 將有一個單一的程序集可以在任何地方運行。

但是,我建議您等到2017年4月發布.NET Standrard 2.0時。 微軟承諾所有平台(.NET Framework,.NET Core,Xamarin.iOS,Xamarin.Android)將支持此版本的.NET Standard,並將在Visual Studio中提供正式支持。 此外,使用project.json的Visual Studio項目將轉換為.csproj,因此所有Visual Studio項目將使用相同的格式,並且將解決許多兼容性問題。 絕對有必要清理.NET中去年出現的混亂情況

你當然可以。 只需將.NET 4.6添加到選定的平台:

在此處輸入圖片說明

創建PCL時會出現它。
此處的更多信息: 使用可移植類庫進行跨平台開發

或者,您可以更改現有PCL中的平台。 只需轉到屬性頁面,您將看到:

在此處輸入圖片說明

這是一篇不錯的博客文章,介紹如何從桌面應用程序調用UWP API:
如何從桌面VB / C#應用程序調用UWP API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM