使用 NetCoreBeauty 优化 .NET CORE 独立部署目录结构

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 NetCoreBeauty 优化 .NET CORE 独立部署目录结构相关的知识,希望对你有一定的参考价值。

在将一个 .NET CORE \\ .NET 5.0 \\ .NET 6.0 程序进行独立部署发布时,会在发布目录产生很多系统类库,导致目录非常不简洁。这给寻找入口程序造成了困难,特别是路遥工具箱这种绿色软件,不会在开始菜单、系统桌面创建快捷方式,如此多的文件直接将小白用户劝退。

独立部署时会产生大量的系统文件,难以找到应用程序的入口。

使用 NetCoreBeauty 优化目录结构

NetCoreBeauty moves .NET Core app runtime components and dependencies into a sub-directory to make it beautiful.

NetCoreBeauty 会将 .NET Core 软件的运行时组件和依赖移动到一个子目录中,让发布文件看起来更简洁漂亮。

路遥工具箱使用 NetCoreBeauty 优化了目录结构

NetCoreBeauty 的开源地址在:https://github.com/nulastudio/NetCoreBeauty

如何使用 NetCoreBeauty

NetCoreBeauty 只适用于独立部署发布模式的程序。

为项目添加 Nuget 引用:

dotnet add package nulastudio.NetCoreBeauty

编辑项目配置文件(*.csproj)应该和下面的代码类似:

<Project Sdk="Microsoft.NET.Sdk">


  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <!-- beauty into sub-directory, default is libs, quote with "" if contains space  -->
    <!-- 要移动到字母名称,默认是 libs 目录,如果需要包含空格,请用双引号括起来 -->
    <BeautyLibsDir>libraries</BeautyLibsDir>
    <!-- 设置一些你不想被移动或者不能被移动到子目录的文件名,支持匹配。-->
    <!-- dlls that you don't want to be moved or can not be moved -->
    <!-- <BeautyExcludes>dll1.dll;lib*;...</BeautyExcludes> -->
    <!-- 最终用户不会使用到的文件,可以在这里配置隐藏掉。-->
    <!-- dlls that end users never needed, so hide them -->
    <!-- <BeautyHiddens>hostfxr;hostpolicy;*.deps.json;*.runtimeconfig*.json</BeautyHiddens> -->
    <!-- 如果不想执行移动操作,可以设置为 True -->
    <!-- set to True if you want to disable -->
    <DisableBeauty>False</DisableBeauty>
    
    <!-- set to True if you don't want to generate NetCoreBeauty flag file -->
    <!-- do not beauty twice since there is no flag file to determine if beauty already -->
    <NoBeautyFlag>False</NoBeautyFlag>
    <ForceBeauty>False</ForceBeauty>
    <!-- <BeautyAfterTasks></BeautyAfterTasks> -->
    <!-- set to True if you want to disable -->
    <DisablePatch>False</DisablePatch>
    <!-- valid values: Error|Detail|Info -->
    <BeautyLogLevel>Error</BeautyLogLevel>
    <!-- 设置仓库镜像,如果你不能链接到 GitHub 的话可以采用该设置。推荐大陆用户打开这个配置。-->
    <!-- set to a repo mirror if you have troble in connecting github -->
    <!-- <GitCDN>https://gitee.com/liesauer/HostFXRPatcher</GitCDN> -->
    <!-- <GitTree>master</GitTree> -->
  </PropertyGroup>


  <ItemGroup>
    <PackageReference Include="nulastudio.NetCoreBeauty" Version="1.2.9.3" />
  </ItemGroup>


</Project>

以上中文翻译来由以下公众号提供

在你使用 dotnet publish 命令或者 Visual Studio 发布时,移动工作将自动进行。

官方提供了一个测试项目,可以在这里看到源代码:

https://github.com/nulastudio/NetCoreBeauty/tree/master/NetCoreBeautyNugetTest

路遥工具箱

路遥工具箱是笔者在学习 WPF 时练手做的一个小工具,主要用于解决一些开发过程中常见的功能性需求,并将其自动化。截至目前,本工具已拥有十数项功能。

为了方便最终用户,笔者在不久前将路遥工具箱设置为了独立部署发布,本文正是笔者对该过程中遇到问题的解决方案记录。

如果你对路遥工具箱感兴趣,可以在这里下载:

https://www.coderbusy.com/luyao-toolkit

以上是关于使用 NetCoreBeauty 优化 .NET CORE 独立部署目录结构的主要内容,如果未能解决你的问题,请参考以下文章

.NET性能优化-使用结构体替代类

.NET性能优化小技巧

.NET性能优化-为结构体数组使用StructLinq

.NET性能优化-推荐使用Collections.Pooled

.NET应用程序性能优化

使用 .Net 核心应用程序发送到 EventHubs 时如何优化吞吐量