對於當前僅爲.NET 4實現的庫,我有一個NuGet包。但是我已經移植了庫代碼以支持各種平臺(WinRT, SL5,WP8),所以我想將它打包爲便攜式類庫(PCL)以簡化維護工作。但庫使用LINQ到需要針對.NET 4.0.3和客戶機上installting .NET 4.0.3 XML(XELements等)。使用可移植類庫從NuGet包中實現.NET 4的最佳策略
所以我有一個關於如何針對純淨的.NET 4的困境。如果它不是關於NuGet包和我有一個用戶羣的控制,我可以簡單地聲明爲安裝.NET 4.0.3運行時的先決條件。不過,我不希望以任何方式限制用戶羣,所以看起來我必須有圖書館的兩個版本:便攜式面向.NET 4.5,SL5和WP8和非便攜式靶向只是.NET4。什麼是愚蠢的是,這兩個庫將擁有完全相同的代碼,因爲LINQ到XML是.NET 4的支持,當然,這只是針對.NET 4時
我的第一個問題是,沒有這樣的支持PCLS這似乎是一個正確的策略?另一種方法是從PCL帶走所有的XElement相關的代碼,並讓它在非便攜的部分,但是這似乎並沒有正確的,因爲代碼將是所有圖書館完全相同。
第二個問題是根據.NET 4.0.3從PCL定位是否有意義:如果我有單獨的版本以.NET 4爲目標,那麼安裝了.NET 4.0.3運行時的用戶將從獲得PCL而不是純.NET 4版本?我知道.NET 4.0.3有其他改進,但這些不會影響我的庫。
您確定XElement不支持PCL嗎?我知道它並不是早期版本的PCL,但我擁有大量使用XElement的PCL。 –
不適用於初始NET 4.0,它必須升級到4.0.3,請參閱兼容性列表:http://msdn.microsoft.com/en-us/library/gg597391.aspx –