我可以使用.NET Core构建UWP吗?

37

2
看起来你将能够在 .NET Core 3.0 上运行 UWP。 - ghord
@ghord 这只是一个小的技术细节。您可以在.NET Core上运行UWP。如果我理解正确,UWP符合.NET Standard 2.0标准,在设计和开发过程中使用引用程序集。当它实际构建和运行时,它现在使用其运行时程序集,并从.NET Core而不是.NET Framework中提取这些程序集。UWP不像.NET Console那样在.NET Core App运行时上运行,如果这有意义的话。我怀疑它是否有意义。这非常令人困惑。;) - Mike-E
据我所知,在2018年的构建中,他们宣布了桌面包,这将允许您在.Net Core 3.0上运行WPF / WinForms / UWP。@Mike-EEE - ghord
@ghord,.NET Core支持已经到位。这里的区别在于这些包使得这些产品能够在.NET Core 3.0运行时程序集上运行,而不是.NET Core 3.0应用程序运行时。也就是说,您将无法在Linux或Mac上运行WPF/WinForms/UWP,这是由我在此提到的应用程序运行时所实现的。然而,在Windows上,您将获得来自.NET Core 3.0的所有性能优势和额外的API /工具。这是,如果我正确理解了一切的话。 - Mike-E
@ghord 在我链接的博客文章中,Scott Hanselman明确表示:“您可以在Windows上运行WinForms和WPF的.NET Core 3”。对我来说,它无法在Mac / Linux上运行的原因是那里根本没有PInvoke的API(WinForms和WPF都需要这些API才能工作)。 - ghord
Scott明确表示了@ghord,但这是否意味着通过运行时程序集(如当前的.NET Core UWP)来使用.NET Core,还是您将能够在.NET Core应用程序项目中使用netcoreapp3.0 TFM并在那里使用WPF / WinForms / UWP?我想这就是混淆的地方,我们需要看看SDK的设计才能确定。例如,这是一个.NET Core UWP应用程序,没有提到TargetFrameworknetcoreapp2.x TFM。 - Mike-E
1个回答

32

只要你的 .net core 库是针对 .netstandard1.6(或更高版本)框架标识符进行定位, UWP 应用程序就可以使用你创建的库。

UWP 仅适用于 Windows 生态系统。

请参阅此文章。

输入图像说明


6
是的,你无法使用 .NET Core 创建 UWP 应用程序的用户界面。 - Nick Acosta
7
抱歉,这很令人困惑;.NET Core是跨平台的,但UWP只能在Win10上运行。这怎么可能呢?这不是矛盾吗?我的意思是,如果它可以在.NET Core上运行,这不意味着它是跨平台的吗? - Pap
13
Pap: 您可以使用 .net core 创建一个针对 UWP 的应用程序,但 UWP 不是 .net 的一部分,而是 Windows 的一部分。这就像您可以使用标准的 C 或 C++(跨平台语言和标准库)创建针对 Windows、Mac 或 Linux 等特定平台的应用程序一样。语言、运行时和类库是跨平台的,但您正在使用它们来访问操作系统 API,而这些 API 并不是跨平台的。 - Max Strini
5
我不确定这是否还准确?似乎UWP与.NET Standard 2.0兼容,而不是.NET Core。或者更确切地说,.NET Core是构建为符合.NET Standard 2.0的,当构建UWP时,使用这些参考库。无论如何,这太令人困惑了,呵呵。 :P - Mike-E
3
@Mike-EEE是正确的。这个陈述没有意义:“只要你针对.netstandard,UWP应用程序就可以使用你创建的 .net core库…”如果你创建了以 .net standard为目标的库,那么这些库不是 .net core库。它们可以与 .net core或任何支持 .net standard的运行时一起使用。 - Charles Roddie
显示剩余4条评论

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