MvvmCross教程 - 可移植类库程序集引用错误 - MonoDroid

时间:2013-03-25 01:22:34

标签: xamarin.android mvvmcross portable-class-library

我非常渴望开始使用MvvmCross--它看起来像是一个非常有前景的跨平台解决方案框架。无论如何,我正在阅读教程https://github.com/slodge/MvvmCross/wiki/Tutorial-Part-1时遇到构建错误。构建Android项目组件时出现错误。这是错误:

  

错误1“Android.App.Activity”类型在未引用的程序集中定义。您必须添加对程序集'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,我确实已经创建了位于该目录中的MonoAndroid xml文件:

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

Tutorial.UI.Droid项目中Mono.Android的参考似乎没问题。 dll的路径是C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v2.2 \ Mono.Android.dll和VS报告Resolved = True和Strong Name = True此参考。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您的问题与PCL无关。从版本4.2开始,用于Android程序集的Mono名称很强,即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和新的强命名程序集。

那应该解决你的问题。