【发布时间】:2016-03-23 15:35:31
【问题描述】:
设置:
- MvvmCross 插件 Nuget:
- 有一个可移植类库 w/典型的 PluginLoader.cs 包含
mngr.EnsurePlatformAdaptionLoaded<...>() - 有一个 UWP 类库,其中包含典型的 Plugin.cs,其中包含
Mvx.RegisterType<...>()调用 - 打包并在 UI 项目中使用(下一个)
- 有一个可移植类库 w/典型的 PluginLoader.cs 包含
- MvvmCross UI 项目:
- 拥有可移植类库和 UWP UI 项目
- 有一个Bootstrap.cs 文件,典型的
public class TTSPluginBootstrap : MvxPluginBootstrapAction< MyPlugin.TTS.PluginLoader > - 有一个 Setup.cs 文件,典型的
CreateApp返回Core.App()
问题:
- 在我的 UI 项目中包含 Bootstrap.cs 文件会导致
setup.Initialize()在App::OnLaunched期间崩溃 - 删除 Bootstrap.cs 允许 UWP UI 项目运行,但
Mvx.Resolve<...>()调用会导致崩溃 - 我也尝试在 nuget 打包过程中包含 *.pri 和 *.rd.xml 文件,但无济于事。
当前解决方法:
- 删除 Bootstrap.cs(或将构建类型设置为
Content) - 覆盖
Setup::LoadPlugins:- 要么使用
Mvx.RegisterType<...>手动强制类型注册,但这种方式违背了目的。 - 或者实例化
MyPlugin.Uwp.Plugin,然后调用Load就可以了
- 要么使用
问题:
- 如果我能够实例化 Plugin 类并对其调用 Load,那么 Bootstrap 反射如何/为什么找不到 PluginLoader?
- 我也尝试过使用 AoT 方法来声明我的 Bootstrap 类,那么还有什么可以尝试的呢?
- 在创建/使用 UWP MvvmCross 插件(例如 NOT phone/store/8.1)方面是否有很好的参考?
【问题讨论】:
-
有谁知道任何成功使用 UWP nuget(例如 NOT WindowsCommon、wpa8、win8)的 UWP UI 应用程序? @Cheesebaron 有一个 DeviceInfo 插件,它可以被 UWP 应用程序使用,但仅归功于他的 WindowsCommon 库。它的 WindowsUWP 部分不执行任何操作。
标签: mvvm xamarin nuget mvvmcross nuspec