2013-03-25 2 views
2

Я очень хочу начать работу с MvvmCross - это выглядит очень перспективной основой для кросс-платформенных решений. Во всяком случае, у меня возникла ошибка сборки, когда я просматриваю учебник, https://github.com/slodge/MvvmCross/wiki/Tutorial-Part-1. Ошибка возникает при создании компонента проекта Android. Это ошибка:Учебное пособие по MvvmCross - ошибка ссылки на сборку библиотеки классов - MonoDroid

Error 1 The type 'Android.App.Activity' is defined in an assembly that is not referenced. You must add a reference to assembly 'Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=c4c4237547e4b6cd'. C:\Users\Steven\documents\visual studio 2010\Projects\Tutorial\Tutorial.UI.Droid\Views\MainMenuView.cs

Я видел несколько подобных вопросов, которые разместили (Portable Class Library strong assembly reference problems in MonoTouch/MonoDroid) и последовал предложенные решения, но без успеха. Это было в VS2012, поэтому я попробовал его в VS2010 и столкнулся с той же проблемой. Кто-нибудь сталкивался с этой ошибкой? Часть PCL (Tutorial.Core) строит отлично сама по себе. Я проверил файл PCL csproj и увидел, что он использует Profile 104, и я уже создал файл XML MonoAndroid, который находится в этом каталоге:

C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETPortable \ v4.0 \ Profile \ Profile104 \ SupportedFrameworks \ MonoAndroid, Version = v1.6 + .xml

Ссылка на Mono.Android в проекте Tutorial.UI.Droid выглядит нормально. Путь к dll - это C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v2.2 \ Mono.Android.dll и отчеты VS. Разрешено = True и Сильное имя = True для этой ссылки.

Любая помощь была бы принята с благодарностью.

ответ

2

Ваша проблема не имеет отношения к PCL. Начиная с версии 4.2, сборники Mono для Android имеют сильные имена, то есть сборки, отправленные Xamarin, будут подписаны с ключом Xamarin. Раньше собрания либо не подписывались, либо только задерживались. Это изменение влияет на сильные имена некоторых сборщиков Xamarin.

Как и в вашем случае, он просит вас, чтобы добавить ссылку на:

Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=c4c4237547e4b6cd 

, который является сильным именем. В настоящее время вы используете:

Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null 

который не строгим именем.

Итак, все, что вам нужно сделать, - это перестроить все свои сборки (в MVVMCross, а также любые другие проекты, которые у вас могут быть), которые ссылаются на Mono.Android с новой сильной командой.

Это должно решить вашу проблему.

+0

В сборнике «Экспериментальные» собраны некоторые сборщики Mxx Droid, собранные Xam2.0, в http://slodge.blogspot.co.uk/p/mvvmcross-binaries_7.html – Stuart

+0

Спасибо MiHiR! Ты был прав на деньги. И спасибо Стюарту за то, что он указал на новые скомпилированные сборки. – steven6174

+0

steven ... если вы на новом проекте, а затем подумайте об использовании v3 ... будет бить Beta в среду – Stuart

 Смежные вопросы

  • Нет связанных вопросов^_^