从桌面应用程序调用Windows 10 Universal Class Library

Cer*_*ate 23 .net portable-class-library windows-10

在以前的开发中,我使用了一个可移植类库来共享Windows 8.1"Metro"应用程序和.NET/WPF桌面应用程序之间的代码.

Windows 10 Universal类库是否也可以从这些桌面应用程序中使用,如果没有,在这种情况下共享代码的推荐方法是什么?

小智 43

首先,让我们来看看你问题的第一部分:

Windows 10 Universal类库是否也可以从这些桌面应用程序中使用?

为了回答这个问题,我在VS2015中创建了一个具有以下项目的新解决方案:

  • WPF桌面应用程序,名为wpfApp
  • Win10 UWP应用程序,名为win10App
  • Win10 UWP类库,名为win10Lib

然后我就可以添加类库作为UWP应用程序的参考.但是,我在尝试将库引用添加到桌面应用程序时收到错误消息.

在此输入图像描述

(SCREENSHOT:尝试将UWP lib添加为桌面应用程序时的错误信息)

接下来,问题的第二部分:

如果没有,在这种情况下共享代码的推荐方法是什么?

所以,然后我添加了一个新的类库项目,但没有添加通用类...我选择了经典桌面应用程序下的可移植类库选项.这让我可以选择我想要支持的平台,包括.NET 4.6和Windows Universal 10.0.

在此输入图像描述

(SCREENSHOT:添加可移植类库)

所以,现在我的解决方案中有一个新的类库项目:

  • 经典桌面类库(可移植),名为portableLib

我再次开始向我的WPF桌面应用程序添加类库引用,选择我的新portableLib项目.但是,我收到以下错误消息:

在此输入图像描述

(SCREENSHOT:将可移植类库引用到WPF项目时出现错误消息)

发生这种情况是因为我在创建类库时选择了4.6(.NET Framework版本的默认版本)作为平台之一,但我的WPF项目仍然以.NET Framework的旧版本为目标.我通过编辑WPF应用程序的项目属性来修复此问题,并更新目标以匹配类库的框架版本.

最后,我在Win10 UWP应用程序中添加了对新的可移植类库的引用,并且已成功添加.我现在可以构建解决方案而没有错误.

这是我的项目结构的屏幕截图,带有参考. 在此输入图像描述

希望这可以帮助!