MVVM Cross 无法加载类型 MvvmCross.Plugins.Email.PluginLoader 的插件程序集
MVVM Cross could not load plugin assembly for type MvvmCross.Plugins.Email.PluginLoader
我更新到 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>
{
}
}
您可以在 GitHub 上找到存储库:https://github.com/NPadrutt/MoneyManager
在 Android 上,调整命名空间后,启动仍然没有任何问题。 Beta 3 中是否存在一些已知问题或我的设置有误?
谢谢
NPadrutt
由于程序集有版本号,现在您需要使用完全相同的所有库版本,在您的情况下为 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>
这是 MVVMCross 4 上的一个错误(因为它是测试版)。
但这是一个简单的修复:
在您的 UWP Setup.cs 上,覆盖方法 LoadPlugins 并添加:
Mvx.RegisterType<IMvxComposeEmailTask, MvxComposeEmailTask>();
评论或删除此插件的 Bootstrap,它应该可以工作。
编辑:修复了 MVVMCross(#1142) 源代码中的错误,但 NuGet 上仍未提供新版本。
我刚刚在 Windows 10 UWP 上遇到了同样的问题。原因是我使用 "WindowsStore" 作为插件的 UWP 实现名称的后缀。当我修复此问题时,通过将后缀更改为 "WindowsUWP",插件正确加载。
感谢@CheeseBaron 为我指明了正确的方向。
我似乎遇到了与其他人相同的问题,但使用的是 PictureChooser 插件,而不是电子邮件。查看为电子邮件提出的解决方案,出现了两件事。首先,在 MvxWindowsSetup 中没有覆盖 'LoadPlugins'。相反,我尝试对 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();
}
请注意,PictureChooser 没有 'WindowsCommon' 命名空间,因此我使用了 'WindowsStore',它作为 nugget 包安装的结果存在。然后我排除了 PictureChooserPluginLoader 并且我能够继续。看起来 PictureChooser 插件的 4.0.0.0-beta5 版本中存在命名空间问题。
顺便说一句:电子邮件插件加载得很好,调试输出能够解析 WindowsCommon 命名空间。
我更新到 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>
{
}
}
您可以在 GitHub 上找到存储库:https://github.com/NPadrutt/MoneyManager
在 Android 上,调整命名空间后,启动仍然没有任何问题。 Beta 3 中是否存在一些已知问题或我的设置有误?
谢谢 NPadrutt
由于程序集有版本号,现在您需要使用完全相同的所有库版本,在您的情况下为 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>
这是 MVVMCross 4 上的一个错误(因为它是测试版)。
但这是一个简单的修复:
在您的 UWP Setup.cs 上,覆盖方法 LoadPlugins 并添加:
Mvx.RegisterType<IMvxComposeEmailTask, MvxComposeEmailTask>();
评论或删除此插件的 Bootstrap,它应该可以工作。
编辑:修复了 MVVMCross(#1142) 源代码中的错误,但 NuGet 上仍未提供新版本。
我刚刚在 Windows 10 UWP 上遇到了同样的问题。原因是我使用 "WindowsStore" 作为插件的 UWP 实现名称的后缀。当我修复此问题时,通过将后缀更改为 "WindowsUWP",插件正确加载。
感谢@CheeseBaron 为我指明了正确的方向。
我似乎遇到了与其他人相同的问题,但使用的是 PictureChooser 插件,而不是电子邮件。查看为电子邮件提出的解决方案,出现了两件事。首先,在 MvxWindowsSetup 中没有覆盖 'LoadPlugins'。相反,我尝试对 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();
}
请注意,PictureChooser 没有 'WindowsCommon' 命名空间,因此我使用了 'WindowsStore',它作为 nugget 包安装的结果存在。然后我排除了 PictureChooserPluginLoader 并且我能够继续。看起来 PictureChooser 插件的 4.0.0.0-beta5 版本中存在命名空间问题。
顺便说一句:电子邮件插件加载得很好,调试输出能够解析 WindowsCommon 命名空间。