2015-12-17 85 views
2

設置:UWP MvvmCross引導類不工作

  • MvvmCross插件的NuGet:
    • 擁有便攜式IIb類瓦特含有mngr.EnsurePlatformAdaptionLoaded<...>()
    • /典型PluginLoader.cs擁有UWP class lib w /典型的Plugin.cs包含Mvx.RegisterType<...>()調用
    • 獲取包裝,並在UI凸出(下)
  • MvvmCross UI PROJ使用:
    • 擁有便攜式IIb類,以及UWP UI項目
    • 擁有Bootstrap.cs文件,具有典型public class TTSPluginBootstrap : MvxPluginBootstrapAction<MyPlugin.TTS.PluginLoader>
    • 擁有Setup.cs文件,W /典型CreateApp返回Core.App()

問題:

  • 包括我的UI凸出的Bootstrap.cs文件會導致setup.Initialize()期間App::OnLaunched
  • 刪除Bootstrap.cs崩潰使得UWP UI PROJ運行,但Mvx.Resolve<...>()調用導致崩潰
  • 我也嘗試在nuget包裝期間包括* .pri和* .rd.xml文件,無濟於事。

當前解決方法:

  • 刪除Bootstrap.cs(或設置生成類型到Content
  • 覆蓋Setup::LoadPlugins
    • 手動力型登記Mvx.RegisterType<...>,但是這有點失敗的目的。
    • 或實例MyPlugin.Uwp.Plugin,並呼籲Load

問題(S):

  • 如果我能夠實例化插件類,並呼籲IT負載,那麼Bootstrap反射如何/爲什麼無法找到PluginLoader?
  • 我也嘗試過聲明我的Bootstrap類的AoT方式,那麼還有什麼可以嘗試的呢?
  • 在創建/使用UWP MvvmCross插件(例如NOT phone/store/8.1)方面是否有很好的參考?
+0

有誰知道任何可以使用UWP工具的UWP UI應用程序(例如,不WindowsCommon,wpa8,win8)成功? @Cheesebaron有一個[DeviceInfo](https://github.com/Cheesebaron/Cheesebaron.MvxPlugins)插件,可以被UWP應用程序**使用**,但僅限於WindowsCommon庫。它的WindowsUWP部分不起任何作用。 – bunkerdive

回答

0

解決方案(和步驟走上那裏):

  • 第1步:克隆了MvvmCross回購,而我是用我的項目更新分支版本
  • 第2步:除去的NuGet引用和替換瓦特/本地組件引用MvvmCross克隆
  • 步驟3:通過代碼setup.Initialize()呼叫臺階之前在App.xaml.cs
  • 查找:在內部,MvvmCross使用反射來獲取PluginLoader實例,隨後查找Setup類(包含Load方法,用平臺特定的插件代碼)。
    • 此MvvmCross反射具有命名約定要求。
  • 解決方法:當進行UWP-兼容MvvmCross插件,您UWP IIb類項目必須與 「WindowsUWP」 結束(或 「WindowsCommon」,如果便攜式)
    • 對於我來說,這意味着改變我的NuGet的Plugin.TTS.Uwp命名空間(和文件夾),以Plugin.TTS.WindowsUwp,然後重新包裝和分發我* .nupkg
+0

如果發佈了有關MvvmCross UWP項目和插件的相關文檔/教程,請發帖,我很樂意接受另一個參考該答案的答案。 – bunkerdive