Publish.net core 3.0 as FDE for win on linux

Posted

技术标签:

【中文标题】Publish.net core 3.0 as FDE for win on linux【英文标题】: 【发布时间】:2019-10-22 09:00:51 【问题描述】:

我需要将 asp.net 应用程序发布为 Windows 的框架相关可执行文件。 使用官方镜像 mcr.microsoft.com/dotnet/core/sdk:3.0 在 docker 容器 (Gitlab CI) 中发布。

发布命令是

dotnet publish -f netcoreapp3.0 -c Release -o result_folder -r win-x64 --self-contained false project.csproj

发布成功完成,但产生了 90+ MB 的文件,其中一些:

System.Private.CoreLib.dll
System.Private.Xml.dll
coreclr.dll
System.Linq.Expressions.dll
api-ms-win-core-file-l1-2-0.dll

Result 看起来更像是一个独立的可执行文件,而不是我期望的依赖于框架的。

在 Windows 上运行相同的命令会产生 12+ MB 的文件。结果看起来完全像我预期的依赖于框架的可执行文件。

问题是如何在 docker/linux 上获得相同的结果?

【问题讨论】:

【参考方案1】:

原来.net发布没有问题。其他文件由其他 CI 活动创建。

所以发布在 docker 中的 linux 上运行良好!

【讨论】:

以上是关于Publish.net core 3.0 as FDE for win on linux的主要内容,如果未能解决你的问题,请参考以下文章

jenkins publish .net core application to linux server in docker

AS 3.0事件处理函数带参实现方法

如何使用 EF Core 3.0 使多个包含更高效

译 .NET Core 3.0 发布

微软推出.NET Core 3.0,持续的Linux支持和更好的性能

[ActionScript 3.0] AS3.0和AS2.0的相互通信