C# MvvmCross MVX应用程序无法注册类型

C# MvvmCross MVX应用程序无法注册类型,c#,visual-studio-2010,windows-phone-7,mvvmcross,C#,Visual Studio 2010,Windows Phone 7,Mvvmcross,这是my App.cs的内容,它继承自Cirries.MvvmCross.ViewModels.MVX应用程序 public class App : Cirrious.MvvmCross.ViewModels.MvxApplication { public override void Initialize() { CreatableTypes() .EndingWith("Service")

这是my App.cs的内容,它继承自Cirries.MvvmCross.ViewModels.MVX应用程序

 public class App : Cirrious.MvvmCross.ViewModels.MvxApplication
    {
        public override void Initialize()
        {
            CreatableTypes()
                .EndingWith("Service")
                .AsInterfaces()
                .RegisterAsLazySingleton();

            CreatableTypes()
               .EndingWith("Repository")
               .AsInterfaces()
               .RegisterAsLazySingleton();

            CreatableTypes()
              .EndingWith("Factory")
              .AsInterfaces()
              .RegisterAsLazySingleton();

            CreatableTypes()
                .EndingWith("Mapper")
                .AsInterfaces()
                .RegisterAsLazySingleton();

            RegisterAppStart<FirstViewModel>();
        }
    }
对于WP7.1,我必须手动将依赖项添加到MvvmCross版本3.0.13,因为MvvmCross NuGet当前为3.1.1,并且似乎与Visual Studio 2010不兼容。这些是Droid项目依赖项:

这些是WP7.1依赖项:

这些异常阻止框架解析FirstViewModel的构造函数参数

  public class FirstViewModel : ViewModelBase
    {
        private readonly Profile _profile;

        public FirstViewModel(IProfileService profileService, IMvxMessenger messenger)
            : base(profileService, messenger)
        {
            _profile = profileService.GetProfile();
        }

有人知道这是怎么回事吗?

3.0.14是最后一个支持VS2010和WP7的MvvmCross版本

3.1.1支持VS2012及更高版本,以及WP8、Win8、WPF4.5、Xam.Android和Xam.iOS(和SL50,但仅支持用户的一些工作!)

这是因为Microsoft VS2013不再支持WP7,并且为跨平台使用(例如与Xamarin一起使用)而发布的PCL功能和库不包括旧的配置文件(如104),因此它们不支持WP7

这一变化于2013年7月宣布——但实际上我们尽可能推迟了实施——因此直到2014年2月才真正实现


3.0.14通过nuget命令行提供,是一个很好的稳定版本-它已在许多应用程序中使用-但不太可能在将来得到积极支持和修订。

感谢您的回复。我已经升级到v3.0.14,但在输出窗口中仍然会出现相同的异常。还有什么我需要注意的吗?谢谢你的回复。仍然遇到相同的异常,但怀疑我的依赖项有问题。我的核心项目中需要引用的assembly cirries.CrossCore的NuGet包id是什么?我已经升级了我的核心项目中的所有包,但我的核心项目中缺少cirrius.CrossCore。斯图尔特,我想我需要做的是清除所有MvvmCross依赖项并安装MvvmCross.HotTuna.StarterPack。在一个干净的项目上尝试了这一点,它将Cirrious.CrossCore.clean和rebuild拉进来,应该可以为您完成。Nuget非常擅长删除.csproj级别的依赖项,但Visual Studio仍然可以保留/bin文件夹中的程序集,就好像我的问题来自cirrius.MvvmCross.Plugins.File.WindowsPhone v3.0.14一样。在尝试使用此插件时,我在一个新的干净VS2010 Windows Phone项目上遇到了相同的问题。当我在VS2012中查看MvvmCross源代码时,Windows Phone文件插件项目不可用。这是否意味着Windows Phone文件插件仅适用于Windows 8?
  public class FirstViewModel : ViewModelBase
    {
        private readonly Profile _profile;

        public FirstViewModel(IProfileService profileService, IMvxMessenger messenger)
            : base(profileService, messenger)
        {
            _profile = profileService.GetProfile();
        }