Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVM Cross无法加载MvvmCross.Plugins.Email.PluginLoader类型的插件程序集_C#_Mvvmcross - Fatal编程技术网

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

C# MVVM Cross无法加载MvvmCross.Plugins.Email.PluginLoader类型的插件程序集,c#,mvvmcross,C#,Mvvmcross,我更新到MvvmCross Beta 3。现在它似乎再也找不到我在Windows10UWP上的插件了 此异常在启动时引发: 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 assembl

我更新到MvvmCross Beta 3。现在它似乎再也找不到我在Windows10UWP上的插件了

此异常在启动时引发:

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>
    {
    }
}
使用cirrius.CrossCore.Plugins;
命名空间MoneyManager.Windows.Bootstrap
{
公共类EmailPluginBootstrap
:mvxpluginbootstrapacation
{
}
}

您可以在GitHub上找到存储库:

在安卓系统上,这家初创公司在调整名称空间后仍然可以正常工作。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.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上的一个bug(因为它是测试版)

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

在UWP Setup.cs上,覆盖方法LoadPlugins并添加以下内容:


Mvx.RegisterType();

注释或删除此插件的引导程序,它应该可以工作


编辑:MVVMCross(#1142)的源代码上的错误已经修复,但NuGet上仍然没有提供新版本。

这是MVVMCross 4上的错误(因为它是beta版)

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

在UWP Setup.cs上,覆盖方法LoadPlugins并添加以下内容:


Mvx.RegisterType();

注释或删除此插件的引导程序,它应该可以工作


编辑:MVVMCross(#1142)的源代码上的错误已经修复,但NuGet上仍然没有提供新版本。

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


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

我在Windows10UWP上也遇到了同样的问题。原因是我使用“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();
}
使用MvvmCross.Plugins.PictureChooser;
使用MvvmCross.Plugins.PictureChooser.WindowsStore;
使用cirrius.CrossCore.Plugins;
. . .
受保护的覆盖IMvxPluginManager CreatePluginManager()
{
Mvx.RegisterType();
返回base.CreatePluginManager();
}
注意,PictureChooser没有“WindowsCommon”命名空间,所以我使用了“WindowsStore”,它是安装nugget软件包的结果。然后我排除了PictureChoserPluginLoader,我可以继续了。PictureChooser插件的4.0.0.0-beta5版本中似乎存在名称空间问题


顺便说一句:从调试输出中加载的电子邮件插件很好地解决了WindowsCommon名称空间的问题。

看来我和其他人有着相同的问题,但使用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();
}
使用MvvmCross.Plugins.PictureChooser;
使用MvvmCross.Plugins.PictureChooser.WindowsStore;
使用cirrius.CrossCore.Plugins;
. . .
受保护的覆盖IMvxPluginManager CreatePluginManager()
{
Mvx.RegisterType();
返回base.CreatePluginManager();
}
注意,PictureChooser没有“WindowsCommon”命名空间,所以我使用了“WindowsStore”,它是安装nugget软件包的结果。然后我排除了PictureChoserPluginLoader,我可以继续了。PictureChooser插件的4.0.0.0-beta5版本中似乎存在名称空间问题


顺便说一句:加载的电子邮件插件很好,并且从调试输出可以解析WindowsCommon命名空间。

插件是最新的。此外,我还使用您的代码向项目中添加了app.config,但仍然出现异常。插件是最新的。我还在项目中添加了一个app.config和您的代码,但是异常仍然发生。mh,奇怪的是,您在Windows安装程序中没有要覆盖的LoadPlugins方法。愚蠢的问题,但你确定你继承了MvxWindowsSetup?嗯,奇怪的是,你没有一个LoadPlugins方法来覆盖Windows安装。愚蠢的问题,但你确定你继承了MvxWindowsSetup?