.net core 发布单个exe 文件, 并优化缩小大小

最新版的.net core 3.0 可以通过命令行发布为exe文件,

操作步骤如下:

在项目目录下打开控制台:

输入命令:

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

这时候会发布exe 文件.

如果想打包成一个exe文件,则运行命令:

// x86 

dotnet publish -r win-x86 -c Release /p:PublishSingleFile=true

// x64 

 dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true

这时候输出的文件大小比较大。

这时候有同学就想,有没有办法进行裁剪, 答案是肯定的 微软这种事情肯定是考虑到的:

命令:

// x86 

dotnet publish -r win-x86 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true

// x64 

 dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true

 运行后需要的时间比没有优化时间长,exe大小会缩小三分之一 

 

 

  

转载于:https://www.cnblogs.com/tangruixin/p/11581802.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 ASP.NET Core WebAPI 下载文件的代码示例: ```csharp [HttpGet("download/{fileName}")] public async Task<IActionResult> DownloadFile(string fileName) { var filePath = Path.Combine(_env.ContentRootPath, "Files", fileName); var memory = new MemoryStream(); using (var stream = new FileStream(filePath, FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; var contentType = MimeTypes.GetMimeType(fileName); return File(memory, contentType, fileName); } ``` 其中,`MimeTypes.GetMimeType()` 方法是获取文件 MIME 类型的自定义方法,可以根据实际情况替换为其他方法。 接下来是对代码的优化: 1. 使用 `Path.GetFullPath()` 方法获取文件路径,可以避免拼接路径时出现错误。 2. 使用 `FileStream` 的 `using` 块来确保文件流被及时关闭,避免资源泄漏。 3. 使用 `memory.Position = 0` 将内存流的位置重置为开头,以确保文件从开头开始读取。 4. 使用 `File()` 方法返回文件结果,避免手动设置响应头信息。 优化后的代码如下: ```csharp [HttpGet("download/{fileName}")] public async Task<IActionResult> DownloadFile(string fileName) { var filePath = Path.GetFullPath(Path.Combine(_env.ContentRootPath, "Files", fileName)); var memory = new MemoryStream(); using (var stream = new FileStream(filePath, FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; var contentType = MimeTypes.GetMimeType(fileName); return File(memory, contentType, Path.GetFileName(filePath)); } ``` 注意,这里的 `_env` 是 `IWebHostEnvironment` 的实例,需要在构造函数中注入。另外,`MimeTypes.GetMimeType()` 方法需要根据实际情况实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值