如何在不需要同一目录中的所有 dll 文件的情况下制作 exe 运行?

How do you make an exe run without needing all the dll files in the same directory?

因此,如果可能的话,我正在尝试将我所有的 DLL 文件合并到我的 exe 中,这样我就可以 运行 exe 而不需要同一目录中的 DLL 文件 我试着四处寻找其他提出相同问题的人,但没有真正找到任何有用的信息或我个人可以关注的任何信息。

在此先感谢您的帮助

选项 1:.NET Core >3.x、.NET 5

Single-file deployment 开始,您可以编辑项目文件以包含以下内容

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <PublishSingleFile>true</PublishSingleFile>
    <SelfContained>true</SelfContained>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <PublishTrimmed>true</PublishTrimmed>
    <PublishReadyToRun>true</PublishReadyToRun>
  </PropertyGroup>

</Project>

对应运行 CLI工具: dotnet publish -r win-x64 -p:PublishSingleFile=true --self-contained true

选项 2:.NET 框架

在单文件部署可用之前(在 .NET Framework 中),我个人使用 Fody Costura。 Fody 是一个程序集编织器,安装后,它会将一些命令放入项目的 MSBuild 配置中,使您能够做很多事情。一个插件是 Costura,它将您的依赖项编织到一个程序集中。