2

我正在嘗試在VS2010中創建可移植類庫。默認情況下,它似乎是針對.NET Framework 4 and higher。我需要定位4.03或更高版本,因爲我需要添加一些功能(System.Xml.Linq)。但是當我嘗試更改目標框架時,更改不起作用。我得到這個對話框:Visual Studio 2010便攜式類庫不會讓我更改目標

Change Target Framework Dialog

我可以選擇其他框架中的一個,說OK,但是當我再看看,它的設置回到同一個框架4.0的設置,並使用4.03特徵我的代碼仍然不編譯。這裏發生了什麼?

更新:它確實讓我選擇4.5,只要我不選擇Mono for AndroidVS Mono Touch。看起來像這些庫中的東西需要4.0,但我不明白爲什麼,因爲4.5是向後兼容的。這是用於單聲道,所以我需要這些。

回答

2

我想出了一些對可移植框架的配置文件的黑客攻擊。首先,read this post關於如何爲MonoDroid添加對PCL的庫支持,並使用this one爲MonoTouch做類似的事情。

在爲PCL項目的.csproj文件,我發現這行:

<TargetFrameworkProfile>Profile95</TargetFrameworkProfile> 

其指向此文件夾:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0\Profile\Profile95 

在該文件夾中,有一個名爲SupportedFrameworks子文件夾,這失去了神奇的文件MonoAndroid,Version=v1.6+.xmlVSMonoTouch,Version=v1.0+.xml。我添加了這些,如鏈接文章中所述,現在它可以工作。

1

我已經實現了在git master中的MonoDevelop中選擇PCL配置文件約束的功能,但它尚未發佈。

我相信這些功能將包含在MonoDevelop 3.1.0中

+0

是否有任何ETA for MD 3.1.0? –

+0

另一週或2我會猜測 – jstedfast