如何将 .NET Core 3.1 或 .NET 5 程序集转换为自包含的二进制文件作为后期处理?

问题描述

我将我的一些应用程序(.NET Core 3.1 和 .NET 5.0;我们谈论的是应用程序,而不是库)作为商业软件发布。因此,我通过(不仅)使用代码混淆器使破解者更难理解和修补我的许可逻辑。混淆器采用完全托管代码 .NET 程序集,并生成“受保护的”完全托管代码 .NET 程序集。混淆器无法处理由 dotnet publish --self-contained (dotnet publish documentation) 生成的自包含二进制文件

我想为各种目标(macOS、Linux、Windows)生成自包含的二进制文件,因为有些客户不想安装 .NET 运行时,但另一方面,当 .NET运行时是自包含二进制文件的一部分。

现在我想知道,是否有可能采用“受保护”但仍然完全托管的代码 .NET 程序集并将其转换为自包含的二进制文件。如果是这样,该怎么做?

我不想反编译受保护的程序集并重新编译它,但是当没有其他可用的解决方案时,我会记住这个选项。

当前工作流程:

  1. 编写源代码
  2. 构建 .NET 程序集 (dotnet build)。
  3. 针对 .NET 程序集运行混淆器。
  4. 发布软件(作为完全托管的代码 .NET 程序集,需要在目标系统上安装 .NET 运行时)。

所需的工作流程:

  1. 编写源代码
  2. 构建 .NET 程序集 (dotnet build)。
  3. 针对 .NET 程序集运行混淆器。
  4. 使受保护的 .NET 程序集成为自包含的二进制文件
  5. 发布软件(作为自包含二进制文件,不需要 .NET 运行时,因为它本身已经包含它)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)