从桌面应用程序调用Windows 10通用类库

23

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

Windows 10通用类库是否也适用于这样的桌面应用程序?如果不是,那么在这种情况下推荐的代码共享方式是什么?


嗨Cerebrate,我的详细回复有帮助回答了你的问题吗?如果是这样,请在你有时间的时候将其标记为答案。 :-) 另外,如果你需要任何额外的澄清或截图,请让我知道,我很乐意更新它。提前致谢! :-D - Shahed C - MSFT
1个回答

43

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

Windows 10通用类库是否可从桌面应用程序中使用?

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

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

我随后能够将该类库作为参考添加到UWP应用程序中。但是,在尝试将库的引用添加到桌面应用程序时,我遇到了错误消息。

enter image description here

(截图:尝试将UWP lib作为桌面应用程序引用时出现的错误消息)

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

如果不行,那么在这种情况下分享代码的推荐方法是什么?

然后,我添加了一个新的Class Library项目,但不是通用类型...我在经典桌面应用程序中选择了便携式类库选项。这使我可以选择要支持的平台,包括.NET 4.6和Windows Universal 10.0。

enter image description here

(截图:添加可移植类库)

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

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

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

在 WPF 项目中添加可移植类库时出现错误信息

这种情况通常是因为在创建类库时,我选择了 .NET Framework 版本的一个平台(默认为 4.6 版本),但我的 WPF 项目仍然针对较旧版本的 .NET Framework。解决方法是编辑 WPF 应用程序的项目属性,将目标框架版本更新为与类库相同的版本。

最后,我将新的可移植类库引用到 Win10 UWP 应用程序中,它被成功添加。现在可以无错误地构建整个应用程序。

以下是我项目结构的截图以及引用信息。 项目结构截图

希望这能帮到你!


1
好的,但是有没有一种方法可以在库中实际使用UWP API,例如StorageFile,以便桌面应用程序和UWP应用程序都可以引用?我知道这些API实际上可以从桌面应用程序调用,但是代码共享呢? - Neme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接