• 2019-10-26-dotnet-core-发布只有一个-exe-的方法


    title author date CreateTime categories
    dotnet core 发布只有一个 exe 的方法
    lindexi
    2019-10-26 8:42:7 +0800
    2019-2-1 10:6:38 +0800
    dotnet dotnetcore

    在 dotnet core 发布的时候,会使用很多文件,这样发给小伙伴使用的时候不是很清真,本文告诉大家一个非官方的方法通过 warp 将多个文件打包为一个文件

    和之前相同的方式发布一个 dotnet core 程序,记得需要使用 --self-contained 发布

    dotnet publish -c Release --self-contained -r win-x86

    这时可以在输出的文件夹 bin 的 Release etcoreapp2.1win-x86publish 文件夹看到输出的文件,可以看到输出的文件很多,这时通过 Powershell 下载 warp 工具

    [Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" ; Invoke-WebRequest https://github.com/dgiagio/warp/releases/download/v0.3.0/windows-x64.warp-packer.exe -OutFile warp-packer.exe

    当然这个下载方法有些诡异,同时国内的网速也不是很好,可以通过 官网csdn 下载

    下载之后将 warp-packer.exe 放在 Release etcoreapp2.1win-x86publish 的上一级文件夹里面,就放在 Release etcoreapp2.1win-x86 文件夹

    这样就可以通过下面的命令打包出一个 exe 包含里面的文件

    当前的命令行路径是 Releasenetcoreapp2.1win-x86
    
    > .warp-packer --arch windows-x64 --input_dir .publish --execpublish文件夹里面运行的程序 --output 输出的.exe

    如在 Release etcoreapp2.1win-x86 里面的可运行程序 exe 是 lindexi.exe 我可以通过下面的代码合并里面的文件为一个 exe 文件

    .warp-packer --arch windows-x64 --input_dir .publish --exec lindexi.exe --output lindexi.exe

    同时使用这个工具还有一个好处,就是对文件进行压缩

    限制:

    当前(2019年1月3日)只能发布 x64 的版本的程序,如 windows x64 和 linux x64 程序

    命令行工具

    现在可以通过 dotnet 工具使用 warp 发布,在使用之前先安装工具

    dotnet tool install --global dotnet-warp

    安装完成可以在输出文件夹里面执行 dotnet-warp 就可以打包为单个exe文件

    这个项目在github欢迎小伙伴访问

    使用 dotnet 命令行发布

    dotnet core 3 preview5 支持在命令行一键打包为一个文件

    这个文件包含所有的依赖和资源文件,在启动的时候将所有依赖复制到临时文件夹,然后将这些依赖加载。这个解压只会在第一次运行,之后都可以快速启动

    dotnet publish -r win10-x64 /p:PublishSingleFile=true

    新建一个控制台创建使用上面命令发布为一个 exe 文件的大小大概是 67M 左右

    第一次运行需要解压文件到临时文件夹的 .net程序集名xx 文件夹里面,然后再运行

    dgiagio/warp: Create self-contained single binary applications

    Single exe self contained console app · Issue #13329 · dotnet/corefx

    Announcing .NET Core 3.0 Preview 5

    dotnet-warp && NSSM 部署 .net core 项目到 windows 服务 - 易墨 - 博客园

  • 相关阅读:
    Uipath-Close Application和Close Window区别
    我与某猪同学斗智斗勇的那些事
    可视报表(Project)
    自定义函数(Power Query 之 M 语言)
    报表(Project)
    拆分…Split…(Power Query 之 M 语言)
    参加Mos考试
    主要视图展示(Project)
    听听文档(视频)-Power Pivot
    突出显示(Project)
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085897.html
Copyright © 2020-2023  润新知