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

Xamarin.android MvvmCross教程-可移植类库程序集引用错误-MonoDroid,xamarin.android,mvvmcross,portable-class-library,Xamarin.android,Mvvmcross,Portable Class Library,我非常渴望开始使用MvvmCross,它看起来是一个非常有前途的跨平台解决方案框架。无论如何,我在阅读教程时遇到了一个构建错误。构建Android项目组件时会出现错误。这就是错误: 错误1在未引用的程序集中定义了类型“Android.App.Activity”。必须添加对程序集“Mono.Android,Version=0.0.0,Culture=neutral,PublicKeyToken=c4c4237547e4b6cd”的引用。C:\Users\Steven\documents\visua

我非常渴望开始使用MvvmCross,它看起来是一个非常有前途的跨平台解决方案框架。无论如何,我在阅读教程时遇到了一个构建错误。构建Android项目组件时会出现错误。这就是错误:

错误1在未引用的程序集中定义了类型“Android.App.Activity”。必须添加对程序集“Mono.Android,Version=0.0.0,Culture=neutral,PublicKeyToken=c4c4237547e4b6cd”的引用。C:\Users\Steven\documents\visual studio 2010\Projects\Tutorial\Tutorial.UI.Droid\Views\MainMenuView.cs

我看到一些类似的问题发布()并遵循建议的解决方案,但没有成功。这是在VS2012中,所以我在VS2010中尝试了它,遇到了同样的问题。有人遇到过这个错误吗?PCL部分(Tutorial.Core)自行构建。我检查了PCL csproj文件,发现它正在使用概要文件104,并且我已经创建了位于该目录中的MonoAndroid xml文件:

C:\Program Files(x86)\Reference Assembly\Microsoft\Framework.NETPortable\v4.0\Profile\Profile104\SupportedFramework\MonoAndroid,版本=v1.6+.xml

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


非常感谢您的帮助。

您的问题与PCL无关。从版本4.2开始,Mono for Android程序集具有强名称,即Xamarin提供的程序集将使用Xamarin密钥签名。早些时候,程序集要么没有签名,要么只是延迟签名。此更改会影响某些Xamarin程序集的strong名称

与您的情况一样,它要求您添加以下参考:

Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=c4c4237547e4b6cd
它的名字很强。目前,您将使用:

Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
它是而不是strong命名的

因此,您所需要做的就是重新构建所有引用Mono.Android的程序集(在MVVMCross以及您可能拥有的任何其他项目中),并使用新的强名称程序集


这应该可以解决您的问题。

中的“实验”版本中有一些Xam2.0编译的Mvx Droid程序集,谢谢MiHiR!你在钱上是对的。感谢Stuart指出新编译的程序集。steven。。。如果你在一个新的项目,然后考虑使用V3…将在周三进行测试