【问题标题】:How to merge multiple .NET Core assemblies into a single one (.dll / .exe)?如何将多个 .NET Core 程序集合并为一个(.dll / .exe)?
【发布时间】:2018-09-13 19:32:11
【问题描述】:

我知道有用于 .NET Framework(完整框架)程序集的 ILMerge。但是.NET Core 呢?我想创建一个命令行实用工具,但我不希望它像 20 个文件,而只有 1 个 .exe。

有什么办法吗?

【问题讨论】:

标签: .net .net-core


【解决方案1】:

您可以使用 .NET Core 3.0 的新功能:

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

Read on MSDN

【讨论】:

  • 它仅适用于 .EXE。我很难找到将一堆程序集(.NET Standard)合并为一个的东西。
  • 这不是最好的方法,因为它不像 ILMerge 过去那样工作。它只会将文件压缩成单个文件,但在第一次运行时,它会将所有文件解压缩到临时文件夹(Windows 中为 %TEMP%\.net)并从那里运行。实际上你只会看到一个文件,但它会真正创建所有文件,例如,如果你需要编辑一个设置文件,你必须从那个临时文件夹中编辑它。
【解决方案2】:

Fody (https://github.com/Fody/Fody) 自 2017 年起支持 .NET Core,您可以将其作为 NuGet 包安装到您的项目中,以便它作为项目构建过程的一部分自动运行。

【讨论】:

  • 它如何支持该功能?通过插件?有什么例子吗?谢谢!
  • 我不确定这是否应该被否决......看起来github.com/Fody/Costura支持你想做的事
猜你喜欢
  • 2010-12-22
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
相关资源
最近更新 更多