在Microsoft宣布WinForms支持.NET Core 3后,DevExpress技术团队在最新的版本中支持了.NET Core,.NET Core中一项有趣的功能是对单文件可执行AOT编译的应用程序的支持,本文将为大家介绍如何在DevExpress WinForms针对.NET Core 3的示例中演示此功能。 先决条件请注意,存储库中的文件README.md包含在Visual Studio中使用的演示说明,但这不是必需的,可查看实际的单文件可执行发布机制。 测试单文件可执行发布打开命令提示符,然后使用cd命令导航到StockMarketTraderApp演示文件夹,运行命令dotnet publish -r win10-x64来构建和发布解决方案,参数-r win10-x64标识应用程序的目标平台。 对于大多数实际场景,应添加参数-c Release来使用Release配置构建应用程序,否则将使用Debug进行构建。 在demo文件夹中,导航到新创建的目录\ bin \ Debug \ netcoreapp3.0 \ win10-x64 \ publish(如果添加了-c Release,则为\ bin \ Release \ netcoreapp3.0 \ win10-x64 \ publish)文件夹 包含需要分发给最终用户的340多个文件,包括您自己的应用程序逻辑程序集、标准.NET和DevExpress程序集。为Release配置生成的文件较少,但差异不大。
运行DevExpress.StockMarketTrader.exe并在任务管理器中检查内存消耗。 在我们的测试机上,该值在220到260 MB之间变化。
要测试单文件可执行发布,请删除文件夹bin。 现在再次运行dotnet publish命令,但是这次添加一个参数来设置MSBuild的PublishSingleFile属性:
dotnet publish -r win10-x64 -c Release -p:PublishSingleFile=true
再次检查自动生成publish文件夹,其路径与以前相同,这次您将看到一个文件夹、一个267 MB的自解压可执行文件。
该文件在任何Windows 10 x64位计算机上运行StockMarketTrader演示,并将应用程序需要的所有内容包含在一个文件中。
首次启动应用程序要比多文件部署花费更长的时间,因为所有依赖项都被解压缩到%AppData%中的临时文件夹中。
在进一步运行时,不会对启动时间或内存消耗造成任何损失。
更多信息Microsoft保证,在.NET 5发布时,您将能够发布由提前(AOT)编译器创建的单文件可执行文件,来替代现在可用的自解压可执行文件。我们正在密切关注所有.NET Core更新,以确保我们的控件和组件完全支持所有新功能。 有关单文件发布的一些设计文档可用。 如果您好奇,请查看以下链接: DevExpress Winforms For .NET Core 3DevExpress NuGet软件包可用于将WinForms组件与.NET Core 3一起使用,最近更新的这些软件包,支持其他程序集,并且现在所有内容都是由.NET Core 3本机构建的。
|