Mono for Android可以从Mono框架访问大部分.NET 4.0。不幸的是,当我尝试在Visual Studio中添加专门针对.NET 3.5或更高版本的NuGet包时,使用/ lib / net * /文件夹结构时,它会抛出一个错误。
您正在尝试将此程序包安装到目标项目中 'MonoAndroid,Version = v2.1',但包中不包含任何内容 与该框架兼容的程序集引用。
如果NuGet包没有.NET版本细分,或者您删除了该子目录结构并将其发布到NuGet源,它可以正常工作。例如,NUnit只有一个/ lib /文件夹,没有按.NET框架版本进一步细分并安装正常。
看来NuGet可能会使用<TargetFrameworkVersion>
项目文件XML元素来检查兼容性。如果是这样,那就是问题,因为Android的Mono篡夺了该元素意味着“目标Android框架版本”。例如,要定位Android v2.2,它看起来像这样:
<TargetFrameworkVersion>v2.1</TargetFrameworkVersion>
在项目属性对话框中,“[.NET]目标框架”下拉列表是“影响此XML元素的最小Android到目标”的下拉列表。
如果这是NuGet遇到的问题,在针对Android应用程序至少Ice Cream Sandwich (v4.0)之前,我将无法使用未经修改的NuGet用于特定于版本的程序包。
您可以通过项目引用从这些包中引用DLL。它肯定会向你发出警告,但你可以相当安全地忽略它(假设程序集不会偏离Mono中实现的代码太远)。
'Some.dll'或其依赖项之一需要更高版本的 .NET Framework比项目中指定的.NET Framework ...
答案 0 :(得分:4)
不,必须针对2.0.5配置文件编译程序集才能供Mono for Android使用。您可以通过使用Mono for Android类库模板或使用为Silverlight编译的程序集来实现此目的。
Android版本(2.2,3.0,4.0)与编译程序集的.NET BCL版本无关。