一篇文章教你如何部署.NET Core WPF应用,你还在等什么?

时间:2021-07-31 19:24:53

DevExpress广泛应用于ECM企业内容管理、 成本管控、进程监督、生产调度,在企业/政务信息化管理中占据一席重要之地。通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过该控件来实现。

DevExpress WPF Controls v19.2下载

在本文中,主要介绍如何使用Visual Studio工具发布应用程序。

进程

.NET Core 3允许您通过以下方式发布WPF应用程序:

框架相关的可执行文件

在这种模式下,您的应用程序及其依赖性将被发布,不包括.NET Core运行时,部署的应用程序取决于目标计算机上安装的.NET Core运行时。

如果希望将应用程序部署到已安装.NET Core 3运行时的工作站,请使用此方法。

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?

独立部署

在这种模式下,您的应用程序不依赖于目标计算机上安装的.NET Core运行时,.NET Core运行时和所有应用程序依赖项都包含在发行版中。

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?
在Visual Studio中发布

要发布应用程序,请右键单击项目文件,然后选择Publish。

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?

在第一次运行时,创建一个新的发布配置文件:

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?

单击Edit Configuration:

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?

在Profile Settings窗口中,选择所需的Deployment Mode并点击Save:

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?

点击Publish将您的应用发布到指定的文件夹。

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?
通过命令行发布

# <RID> - Runtime Identifier: win-x86, win-x64, etc.
# Framework-dependent executable:
dotnet publish -c Release

# Self-contained deployment:
dotnet publish -c Release -r <RID> --self-contained true

部署选项

单一可执行文件

您可以将应用程序及其所有依赖项(包括.NET Core 3运行时)打包到一个可执行文件中。

为此,将以下选项添加到您的项目文件:

<PropertyGroup>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<PublishSingleFile>true</PublishSingleFile>
</PropertyGroup>

发布应用程序后,您将看到一个可执行文件和一个用于调试的* .pdb。

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?

准备运行图像

许多.NET Framework开发人员使用Ngen.exe来减少应用程序启动时间。

Ngen.exe不适用于.NET Core,但是.NET Core 3允许您通过以ReadyToRun(R2R)格式编译应用程序来加快应用程序启动时间。

R2R二进制文件包含本机代码(类似于即时(JIT)编译器生成的代码),此本地代码减少了应用程序启动期间的JIT编译器工作量。

要以R2R格式发布应用,请在项目文件中将<PublishReadyToRun>选项设置为true:

<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>

R2R二进制文件较大,因为它们同时包含本机代码和IL代码。

R2R格式仅适用于针对特定运行时环境(RID)的自包含应用程序,例如Windows x86或Windows x64。


DevExpress v19.2全新发布,最新动态请持续关注DevExpress中文网!

DevExpress中文网官网QQ群:540330292      欢迎一起进群讨论

扫描关注DevExpress中文网微信公众号,及时获取最新动态及最新资讯

一篇文章教你如何部署.NET Core WPF应用,你还在等什么?