【问题标题】:Best way to merge multiple Windows Phone apps合并多个 Windows Phone 应用程序的最佳方式
【发布时间】:2013-06-22 19:47:27
【问题描述】:

我面临的问题如下:我的任务是为 Windows Phone 应用程序创建一种“启动器页面”,该应用程序的组件已作为单独的 WP 应用程序开发。

经过一番谷歌搜索,似乎不能简单地安装单独的应用程序,然后从主启动器应用程序调用它们,这显然不受平台支持...

我可以看到(并且我已经快速测试过)的最直接方法是在我的启动器应用程序中引用解决方案中的其他应用程序,然后调用它们各自的 MainPage.xaml 页面。然而,这引发了其他问题,例如:

  • 每个项目中未明确包含命名空间 (/Namespace;component/foo.bar) 的所有路径都不再有效;
  • 此外,在 App.xaml/App.cs 中创建的任何特定于应用程序的代码都不再可访问,因为启动器的 App 类是在启动时被实例化的类。

这是通过快速测试出现的两个主要问题...我预计还会有其他问题。

我采用的方法是完成这项任务的唯一方法吗?是否有开发大型模块化应用程序的最佳实践,以便我以后可以避免这种情况?

编辑: 应用程序必须与 WP7 保持兼容

【问题讨论】:

  • 您是否查看过 Windows Phone 8 的 URI Associations(不适用于 WP7)?
  • 是的,我有。不过我的不好,我忽略了该应用程序必须与 WP7 兼容...我已经编辑了问题以反映这一点。

标签: c# silverlight windows-phone-7 windows-phone-8 windows-phone


【解决方案1】:

我开发应用程序的方式是拥有一个包含所有模块使用的代码的组件,然后为应用程序的每个部分创建一个项目。页面链接应明确引用组件。

目前,我认为解决此问题的“简单”方法是检查 App.xaml 和 App.cs 文件中包含哪些逻辑,并尝试将它们合并为一个。那么你确实应该用显式链接替换所有链接。

要么这样,要么将两个项目合并在一起,这可能会导致更多的冲突。

【讨论】:

  • 将两个项目合并在一起是考虑的选项之一,但正如您所说,会有很多冲突(页面名称、应用程序状态键等)。更不用说,我将失去单独运行每个应用程序的能力。我使用的方法是我描述的方法:引用另一个项目中的应用程序,以便将它们的 DLL 包含在 .xap 包中。他们的内容文件也需要在启动器项目中链接,并且所有页面导航都是通过使用完全限定的路径完成的。远非完美,但它击败了一个庞大的应用程序庞然大物!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 2023-03-22
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
相关资源
最近更新 更多