如何将 Windows 通用应用程序迁移到便携式图书馆项目?

How to migrate a Windows Universal App to Portable Library Project?

我之前开发了一个Windows通用应用程序。 我想将所有非平台特定代码迁移到可移植 class 库项目中,以便进一步 development.How 实现此目标?

在 Windows 通用应用程序中,有一些后端 C# 代码控制 UI 内容并操作数据。我可能无法很好地分离非平台特定的代码。在这种情况下,我还能迁移到 PCL 项目吗?

我在便携式 class 库文档中搜索了如下 link: https://msdn.microsoft.com/library/gg597391.aspx

描述看起来很混乱。这是否意味着我只需将我以前的应用程序包包含在 PCL 项目中,然后一切正常?

您将需要提取特定于平台的代码。您引用的文档朝另一个方向发展:PCL 包含在 appx 包中,而不是 PCL.

中的应用程序包

根据平台特定代码的根深蒂固程度,您可以通过控制反转将其分离出来:定义一个接口,PCL 可用于回调主机以获取平台特定数据,该接口然后 PCL 可以操纵。

例如,如果当前代码具有特定于平台的代码来打开文件并获取其内容,PCL 可以调用主机中打开文件的函数和 returns 流到内容。

如何迁移

除非你把题目改成"how can I move platform independent portion of my code to PCL",否则我相信没有其他人能轻易理解你的意思。

我假设您在 Visual Studio 中已经有一个 Windows 通用应用程序项目。然后将代码移动到PCL、

  1. 只需创建一个空的 PCL 项目(选择合适的配置文件),并将其添加为对原始 Windows 通用应用项目的引用。
  2. 从您的应用程序项目剪切(不是复制)一些源文件并将其粘贴到此 PCL 项目。
  3. 编译解决方案并修复问题。

如果您不知道什么是 PCL 配置文件,请阅读 MSDN 相关资料。如果您不知道哪些源文件应该转到 PCL,哪些应该保留在应用程序项目中,请进行实验或查看其他人的示例项目。

关于你的困惑

我只能说看懂了你强调的内容,同一句话中没有突出显示的内容和副标题你要仔细看。

显然,当您有一个 PCL 项目和一个引用 PCL 的 Windows Store/Phone 应用程序项目时,当您生成部署包 (.appx) 时在 Visual Studio 中,最终包将包含所有需要的程序集。

显然不是你描述的那样。