2016-10-12 2 views
2

Я просто пытался импортировать одну из моей библиотеки окна в андроид приложение Xamarin и получить следующее сообщение об ошибке:Xamarin недостающие ссылки

Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Perhaps it doesn't exist in the Mono for Android profile? File name: 'System.Web.Extensions.dll' at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(ICollection`1 assemblies, AssemblyDefinition assembly, Boolean topLevel) at Xamarin.Android.Tasks.ResolveAssemblies.Execute() App7

Даже если я пытаюсь вручную добавить ссылку на приложение, оно по-прежнему не работает.

Есть ли поддержка от mono для этой библиотеки (я нахожу ее очень полезной) System.Web.Extensions.

Любое обходное решение было бы очень полезно, потому что я бы не хотел либо переписывать рабочую dll, либо останавливать разработку в xamarin.

PS: Я попытался вручную добавить все необходимые DLL-файлы в результате ошибок развертывания без какого-либо описания.

ответ

0

Ну, кажется, что я уже находится ответ и опубликуем его для того, чтобы помочь другим тоже.

Прежде всего, я попробовал все ссылки dll, предложенные VS, чтобы не изменять какие-либо части моего кода. Это не удалось после добавления более 20 ссылок. Я потратил больше часа на это.

Во-вторых, я решил, как предложил @jaymarvels проверить библиотеку из nuget. Я пошел с Json.net меняется только одна строка кода, как показано ниже:

кодекса перед:

var serializer11 = new System.Web.Script.Serialization.JavaScriptSerializer(); T dc1 = serializer11.Deserialize<T>(json);

Для кода:

T dc1 = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(json);

Затем проект начал работать без какие-то проблемы. У меня есть некоторые соображения относительно скорости библиотек, но для моего проекта скорость не такая уж важная, поэтому я с удовольствием буду ее использовать в течение некоторого времени.

1

System.Web не имеет большого смысла вне контекста веб-сервера, поэтому с точки зрения Xamarin я сомневаюсь, что он будет реализован.

Вы можете попробовать и добавить его:

ссылки на проекты System.Web.dll Inn, нажмите Изменить -> Net Сборка -> Обзор, перейдите к корню - Библиотека/Каркасы/Mono.Framework/Versions/4.2. 2/lib/mono/4.5/System.Web

В качестве альтернативы вам может потребоваться просмотреть эту внешнюю библиотеку, которую вы пытаетесь импортировать, чтобы увидеть, можно ли удалить любые ссылки и перестроить.

Например, это может быть с помощью log4net, который включает в себя System.Web

+0

Привет, Джей и спасибо за ответ. Я попытался добавить System.Web, System.Web.Extensions отдельно с не очень хорошими результатами. Я также следовал за некоторыми гидами, которые не помогали вообще. Теперь я начинаю думать, если есть сторонняя библиотека, моно-библиотека или что-то, что я мог бы использовать вместо System.Web.Extensions (я использую только сериализатор json). –

+0

Вы пытались добавить через nuget? – jaymarvels

+0

Да. Я нашел несколько пакетов, и я попытаюсь их протестировать, но для этой процедуры требуется много времени. Я не видел ничего конкретного, хотя для моно или Android. –