C# 如何将Windows Universal应用程序迁移到Portable Library项目?

C# 如何将Windows Universal应用程序迁移到Portable Library项目?,c#,portable-class-library,win-universal-app,C#,Portable Class Library,Win Universal App,我以前开发过一个Windows通用应用程序。 我想将所有非平台特定的代码迁移到一个可移植的类库项目中进行进一步的开发。如何实现这一点 在Windows Universal应用程序中,有一些后端C#代码控制用户界面内容并操作数据。我可能无法很好地分离非平台特定的代码。在这种情况下,我仍然可以迁移到PCL项目吗 我通过以下链接搜索了可移植类库文档: 描述看起来很混乱。这是否意味着我只是将我以前的应用程序包包括在PCL项目中,然后一切正常?您需要提取特定于平台的代码。您引用的文档则指向另一个方向:

我以前开发过一个Windows通用应用程序。 我想将所有非平台特定的代码迁移到一个可移植的类库项目中进行进一步的开发。如何实现这一点

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

我通过以下链接搜索了可移植类库文档:


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

您需要提取特定于平台的代码。您引用的文档则指向另一个方向:PCL包含在appx包中,而不是PCL中的应用程序包

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


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

如何迁移

除非您将问题标题改为“如何将代码中与平台无关的部分移动到PCL”,否则我相信没有人能够轻松理解您的意思

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

  • 只需创建一个空的PCL项目(选择适当的配置文件),并将其添加为对原始Windows Universal app项目的引用
  • 剪切(而不是复制)并将一些源文件从应用程序项目粘贴到此PCL项目
  • 编译解决方案并修复问题
  • 如果您不知道什么是PCL配置文件,请阅读MSDN相关资料。若你们不知道哪些源文件应该转到PCL,哪些应该保留在应用程序项目中,那个就做些实验或者查看其他人的示例项目

    关于你的困惑

    我只能说,要理解你突出显示的内容,你应该仔细阅读同一句话中没有突出显示的内容,以及副标题

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


    这显然不是您所描述的。

    您的问题太大,无法回答,因为它应该分为两部分:1是标题中的问题,2是您从Microsoft文档中得到的混淆。