2

我正在尝试在 VS2010 中制作一个可移植的类库。默认情况下,它似乎是针对.NET Framework 4 and higher. 我需要以 4.03 或更高版本为目标,因为我需要添加一些功能 ( System.Xml.Linq)。但是当我尝试更改目标框架时,更改不起作用。我得到这个对话框:

更改目标框架对话框

我可以选择其他框架之一并说OK,但是当我再次查看时,它设置回相同的 Framework 4.0 设置,并且我使用 4.03 功能的代码仍然无法编译。这里发生了什么?

更新:只要我不选择Mono for Android或,它确实让我选择 4.5 VS Mono Touch。看起来那些库中的某些东西需要 4.0,但我不明白为什么,因为 4.5 是向后兼容的。这是在 Mono 中使用的,所以我需要这些。

4

2 回答 2

2

我通过对可移植框架的配置文件进行一些黑客攻击来解决这个问题。首先,阅读这篇文章,了解如何为 MonoDroid 添加对 PCL 的库支持,以及这篇文章为 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. 我添加了这些,如链接帖子中所述,现在它可以工作了。

于 2012-12-03T13:54:31.290 回答
1

我已经在 git master 中实现了在 MonoDevelop 中挑选和选择 PCL 配置文件约束的功能,但尚未发布。

我相信这些功能会包含在 MonoDevelop 3.1.0 中

于 2012-12-04T17:46:16.310 回答