C# 我可以在Linux中编译.net Core 3 WPF应用程序吗?
在.NETCore3.0中添加了WPF支持C# 我可以在Linux中编译.net Core 3 WPF应用程序吗?,c#,wpf,.net-core-3.0,C#,Wpf,.net Core 3.0,在.NETCore3.0中添加了WPF支持 我可以在Linux上或在基于Linux的docker容器中编译wpf应用程序吗?你不能-我只是在WSL2中尝试过这个。如果键入dotnet new,WPF模板将显示在中,但 dotnet new wpf 在还原步骤中失败 The template "WPF Application" was created successfully. Processing post-creation actions... Running 'dotnet restor
我可以在Linux上或在基于Linux的docker容器中编译wpf应用程序吗?你不能-我只是在WSL2中尝试过这个。如果键入
dotnet new
,WPF模板将显示在中,但
dotnet new wpf
在还原步骤中失败
The template "WPF Application" was created successfully.
Processing post-creation actions...
Running 'dotnet restore' on wpftest/wpftest.csproj...
/usr/share/dotnet/sdk/3.0.100/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(59,5):
error NETSDK1100: Windows is required to build Windows desktop applications.
此错误由SDK的目标文件本身引发,因此条件编译没有帮助。该错误在编译开始之前抛出
一个好主意是将项目一分为二,一个可以在任何操作系统中编译、重用和测试的“无头”库和一个可以在Windows上构建的UI库 很抱歉,即使在使用.NET Core时,WinForms和WPF的UI框架也只是Windows 相关的:
在Windows以外的任何平台上在.NET Core 3上构建WPF应用程序。如果您运行Windows容器,它可能会工作。据您所知,是否有任何方法可以“条件编译”(包括)仅针对特定操作系统的一段代码?我的意思是创建一个项目库,但在面向Linux时只公开部分API。当遇到WPF项目时,错误由SDK的目标文件本身引发。您必须将项目分成两部分,一个“无头”项目和一个UI项目。无论如何,这是一个很好的设计,使测试和重用更加容易这就是我正在做的:我也认为这是一个很好的实践。然而,我只是想知道这在技术上是否可行。谢谢谢谢您的错误消息导致了一些有趣的讨论