Могу ли я добавить пакеты .NET 3.5+ NuGet в проект Mono для Android? - PullRequest
3 голосов
/ 14 октября 2011

Mono для Android имеет доступ к большинству .NET 4.0 из платформы Mono.К сожалению, когда я пытаюсь добавить пакеты NuGet в Visual Studio, специально предназначенные для .NET 3.5 или более поздней версии, со структурой папок / lib / net * /, возникает ошибка.

Вы пытаетесьустановить этот пакет в проект, который нацелен на 'MonoAndroid, Version = v2.1', но пакет не содержит ссылок на сборки, совместимых с этой платформой.

Если пакет NuGet не поддерживает 'Если у вас нет разбивки версии .NET или когда вы удалили эту структуру подкаталогов и опубликовали ее в исходном коде NuGet, она работает нормально.Например, у NUnit просто есть папка / lib / без дальнейшей разбивки по версии .NET Framework и она отлично установлена.

Похоже, NuGet может проверять совместимость, используя XML-элемент файла проекта <TargetFrameworkVersion>.Если это так, то проблема заключается в том, что Mono для Android узурпирует этот элемент для обозначения «целевой версии Android Framework».Например, для целевого Android v2.2 это выглядит следующим образом:

<TargetFrameworkVersion>v2.1</TargetFrameworkVersion>

В диалоговом окне свойств проекта, где раскрывающийся список «[.NET] Target framework» будет раскрывающимся спискомдля «Минимума нацеливания Android», который влияет на этот элемент XML.

Если это проблема, с которой сталкивается NuGet, я не смогу использовать немодифицированный NuGet для пакетов с определенной версией, пока не нацелюсь на приложение Android дляминимум Ice Cream Sandwich (v4.0) .

Примечание

Вы можете ссылаться на DLL из этих пакетов через ссылку на проект.Это определенно выдает предупреждение, но вы можете игнорировать его довольно безопасно (при условии, что сборка не слишком далеко отклоняется от кода, реализованного в Mono).

'Some.dll' или одиниз его зависимостей, требуется более поздняя версия .NET Framework, чем та, которая указана в проекте ...

1 Ответ

4 голосов
/ 14 октября 2011

Нет, сборки должны быть скомпилированы с профилем 2.0.5, чтобы их можно было использовать в Mono для Android.Этого можно добиться с помощью шаблона библиотеки классов Mono для Android или сборок, скомпилированных для Silverlight.

Версия Android (2.2, 3.0, 4.0) не связана с версией .NET BCL сборкисоставлен против.

...