我可以在 wpf 应用程序中使用网络核心库吗?

Can I use a net core library in a wpf application?

我正在尝试开发一个非常简单的 WCF 应用程序。 WCF 服务器将位于 windows 10 台计算机中,我想在 windows 10 台计算机中使用 WPF 应用程序使用此服务,而且我还想为 android 创建另一个应用程序, 使用 Xamarin.

在 visual studio 中,我看到我可以创建一个 Net Core 库,而且我看到 Net core 与 WCF 兼容,I can see in this web

我也知道Net Core可以在Windows、Linux和Mac中运行。 所以我想知道我是否可以开发一个网络核心库来开发客户端,以便我可以在我的 WPF 和 Android 应用程序中使用它。

我怀疑是当我在我的 WPF 应用程序中添加对 net Core 库项目的引用时,我看到一个黄色三角形,一个警告,所以我猜 WPF 不能使用 Net Core 库。

所以我在想,也许对于 WCF 层,我必须创建一个可供 WPF 应用程序和 Android 应用程序使用的 Net Standard 项目。但我想知道这是否是唯一的方式,或者 WPF 应用程序可以通过某种方式使用 Net Core 库,而无需使用像 Net Standard 这样的中间项目。

对于服务端,我本来想也用Net Core,因为这个项目不会被其他项目引用,Net Core可以用在windows。

.Net Core 平台尚不支持 WPF / Winforms 应用程序。

现在:

到目前为止,我指的是 .Net 核心 2.x 版本。

因此,如果您的应用程序不基于 2.x .net 核心标准,您将无法引用 .net 核心程序集。

未来:

.Net core 3 preview 可用,Winforms / WPF 应用程序现已在 .Net 核心平台上可用。

希望对您有所帮助。

嗯,你应该创建一个 .Net Standard Class 库(所以,不是 .Net Core),把你的 WCF 客户端代码放在那里你可以从 .Net Core 或 .Net Full 项目中引用它。 .Net Standard Class 库将为您提供最大的灵活性,因此它是共享库的推荐项目类型。

但根据 docs, see last line 您需要在服务器端使用 .Net Full:

WCF service applications should still be created with the full .NET Framework version.

But I would like to know if this is the unique way or there are some way that a WPF application can use a Net Core library without needed to use a middle project like Net Standard.

没有。面向 .NET Framework 的 WPF 应用程序无法引用 .NET Core 项目。

.NET Core 3,目前在 preview,但是支持 WPF,这意味着您可以从面向 .NET Core 的 WPF 应用程序引用 .NET Core 项目。但是以 .NET Framework 为目标的应用程序不能引用以 .NET Core 为目标的库,反之亦然。

您应该更喜欢在您的 class 库项目中以 .NET Standard 为目标,因为这些可以从以 .NET Framework 或 .NET Core 为目标的应用程序中使用。