gpt4 book ai didi

visual-studio - 我可以将 .NET 3.5+ NuGet 包添加到 Mono for Android 项目吗?

转载 作者:行者123 更新时间:2023-12-04 05:56:26 26 4
gpt4 key购买 nike

Mono for Android 可以从 Mono 框架访问大部分 .NET 4.0。不幸的是,当我尝试在 Visual Studio 中添加专门针对 .NET 3.5 或更高版本且具有/lib/net*/文件夹结构的 NuGet 包时,它抛出了一个错误。

You are trying to install this package into a project that targets'MonoAndroid,Version=v2.1', but the package does not contain anyassembly references that are compatible with that framework.

如果 NuGet 包没有 .NET 版本分割,或者您删除了该子目录结构并将其发布到 NuGet 源,则它可以正常工作。例如,NUnit 只有一个/lib/文件夹,没有按 .NET 框架版本进一步分割,并且安装正常。

看来 NuGet 可以使用 <TargetFrameworkVersion> 检查兼容性项目文件 XML 元素。如果是这样,那就是问题所在,因为 Android 的 Mono 篡夺了该元素以表示“目标 Android 框架版本”。例如,要针对 Android v2.2,它看起来像这样:

<TargetFrameworkVersion>v2.1</TargetFrameworkVersion>

在项目属性对话框中,“[.NET] Target framework”下拉列表是影响此 XML 元素的“Minimum Android to target”的下拉列表。

如果这是 NuGet 遇到的问题,我将无法将未修改的 NuGet 用于版本特定的包,直到针对 Android 应用程序至少 Ice Cream Sandwich (v4.0) .

旁注

您可以通过项目引用从这些包中引用 DLL。它肯定会向您发出警告,但您可以相当安全地忽略它(假设程序集不会偏离在 Mono 中实现的代码太远)。

'Some.dll', or one of its dependencies, requires a later version ofthe .NET Framework than the one specified in the project...

最佳答案

不可以,程序集必须针对 2.0.5 配置文件进行编译才能被 Mono for Android 使用。您可以通过使用 Mono for Android 类库模板或使用为 Silverlight 编译的程序集来实现这一点。

Android 版本(2.2、3.0、4.0)与编译程序集所针对的 .NET BCL 版本无关。

关于visual-studio - 我可以将 .NET 3.5+ NuGet 包添加到 Mono for Android 项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com