使用.NET MAUI如何创建普通的Windows桌面应用程序?

12

我计划创建一个跨平台应用程序,最低支持的平台应该是安卓和Windows。我希望最终生成传统的Windows可执行文件,而不是UWP应用程序。新的MAUI平台看起来很适合。

我已经下载了当前预发布版本的Visual Studio 2022,并创建了一个新的MAUI项目。当我在Windows上编译并运行它时,Visual Studio创建的应用程序是一个UWP应用程序。Microsoft官方页面关于MAUI的声明如下:

.NET多平台应用程序UI(.NET MAUI)可以为以下平台编写:

Android 5.0(API 21)或更高版本。 iOS 10或更高版本。 macOS 10.13或更高版本,使用Mac Catalyst。 Windows 11和Windows 10版本1809或更高版本,使用Windows UI库(WinUI) 3。

https://learn.microsoft.com/en-us/dotnet/maui/supported-platforms

在GitHub上的以下问题看起来也可能创建一个Windows可执行文件:

发布到exe(非自包含)是有效的,但不要采用发布文件夹文件的方式,要采用构建工件,请参阅下面的第三点了解所有详细信息

https://github.com/dotnet/maui/issues/4329

关于 Windows 支持的细节,我有些困惑。只能创建 UWP 应用程序还是可以将其编译为普通的桌面应用程序?如果可以将其输出为普通的 Windows 可执行文件,那么该怎么做呢?


5
MAUI不支持UWP,它使用WinUI 3,使其成为“普通桌面应用程序”。更准确地说,它具有更多的权限,并且不使用UWP应用程序所使用的“沙盒”。您看到了什么让您认为Windows版本是UWP? - ToolmakerSteve
你尝试过MSIX打包工具吗? - ToolmakerSteve
@ToolmakerSteve 我创建了一个 MSIX 项目并尝试将 maui 项目作为引用添加,但出现错误:“要添加应用程序引用,项目输出需要是可执行文件”。 - mugu90
如果您能澄清“普通桌面应用程序”的确切含义,那将会有所帮助。如果您指的是Win32应用程序,则不行。请在此处查看所有选项:https://learn.microsoft.com/windows/apps/get-started - Matt Johnson-Pint
这个回答解决了你的问题吗?将 .net MAUI 应用程序发布为 Windows 可执行文件 - Ingo
显示剩余2条评论
3个回答

2
.NET Maui应用程序不是UWP应用程序。它们是使用WinUI 3和Windows App SDK构建的,生成Win32应用程序。有关Windows App SDK的信息可以在此处找到:这里,有关不同应用程序类型的信息可以在此处找到:这里
如果您想知道是否可能发布Windows可执行文件(.exe),那么是不可能的。.NET MAUI只允许发布MSIX包。

1

这是我唯一成功的方法,但它有一些漏洞。

打开终端并运行以下命令:

msbuild /restore /t:Publish /p:TargetFramework=net6.0-windows10.0.19041 /p:configuration=release /p:WindowsAppSDKSelfContained=true /p:Platform="any CPU" /p:PublishSingleFile=true /p:WindowsPackageType=None /p:RuntimeIdentifier=win10-x64

构建文件可以在\bin\x64\release\net6.0-windows10.0.19041\win10-x64\publish中找到。


1

使用 dotnet 可以看起来像这样:

框架相关:

dotnet publish -f net6.0-windows -p:WindowsPackageType=None

自包含:

dotnet publish -f net6.0-windows -p:WindowsPackageType=None -p:SelfContained=true -p:WindowsAppSDKSelfContained=true

你的构建 App.exe 可在 \bin\Release\net6.0-windows 中找到。


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