MVVM Cross无法为MvvmCross.Plugins.Email.PluginLoader类型加载插件程序集

时间:2015-09-12 10:50:07

标签: c# mvvmcross

我更新了MvvmCross Beta 3.现在它似乎无法在Windows 10 UWP上找到我的插件。

启动时抛出此异常:

An exception of type 'Cirrious.CrossCore.Exceptions.MvxException' occurred in Cirrious.CrossCore.dll but was not handled in user code

Additional information: could not load plugin assembly for type MvvmCross.Plugins.Email.PluginLoader

我通过NuGet添加了邮件插件,并为项目添加了一个引导程序:

using Cirrious.CrossCore.Plugins;

namespace MoneyManager.Windows.Bootstrap
{
    public class EmailPluginBootstrap
        : MvxPluginBootstrapAction<MvvmCross.Plugins.Email.PluginLoader>
    {
    }
}

enter image description here

您可以在GitHub上找到存储库:https://github.com/NPadrutt/MoneyManager

在Android上,调整名称空间后,启动仍然可以正常运行。测试版3中是否存在一些已知问题,或者我的设置中是否存在错误?

由于 NPadrutt

4 个答案:

答案 0 :(得分:3)

这是MVVMCross 4上的一个错误(因为它是测试版)。

但这是一个简单的解决方法:

在你的UWP Setup.cs上,覆盖方法LoadPlugins并添加:

Mvx.RegisterType<IMvxComposeEmailTask, MvxComposeEmailTask>();

评论或删除此插件的Bootstrap,它应该可以正常工作。

编辑:MVVMCross(#1142)的源代码修复了Bug,但NuGet上仍然没有新版本。

答案 1 :(得分:1)

由于程序集现在具有版本号,因此您需要与所有库的版本完全相同,在您的情况下,它们将是MvvmCross 4.0-beta3。

您也可以尝试将此添加到您的app.config:

  <dependentAssembly>
    <assemblyIdentity name="Cirrious.CrossCore" publicKeyToken="e16445fd9b451819" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>

答案 2 :(得分:0)

我在Windows 10 UWP上遇到了同样的问题。原因是我使用“WindowsStore”作为插件的UWP实现名称的后缀。当我修复此问题时,通过将后缀更改为“WindowsUWP”,插件正确加载。

感谢@CheeseBaron指出我正确的方向。

答案 3 :(得分:0)

似乎我和其他人有同样的问题,但使用PictureChooser插件,而不是电子邮件。看看为电子邮件提出的解决方案,出现了两件事。首先,没有任何覆盖“LoadPlugins&#39;在MvxWindowsSetup中。相反,我尝试对setup.cs进行以下更改:

using MvvmCross.Plugins.PictureChooser;
using MvvmCross.Plugins.PictureChooser.WindowsStore;
using Cirrious.CrossCore.Plugins;

. . .

protected override IMvxPluginManager CreatePluginManager()
{
    Mvx.RegisterType<IMvxPictureChooserTask, MvxPictureChooserTask>();
    return base.CreatePluginManager();
}

注意,没有&#39; WindowsCommon&#39; PictureChooser的命名空间,所以我使用了&#39; WindowsStore&#39;这是作为块金包安装的结果而存在的。然后我排除了PictureChooserPluginLoader,我就可以继续了。看起来在PictureChooser插件的4.0.0.0-beta5版本中存在名称空间问题。

BTW:电子邮件插件加载得很好,并且从调试输出中能够解析WindowsCommon命名空间。