C#编译时嵌入dll至生成的exe

689 阅读1分钟

在C#开发时我们常常会调用外部dll,生成的程序必须和dll放一起。不过有些时候需要生成单文件程序,这时就要把dll嵌入exe了。

可以自己写代码实现,不过有一个更简单的方法就是安装一个名为Costura.Fody的外部包即可。

在项目右边引用点右键-管理NuGet程序包:

image.png

在浏览里面搜索Costura.Fody

image.png

这里需要提醒一下安装的版本问题:

  • 如果你的程序是用 .NET Framework 开发的,那么需要安装其4.1.0及其以下版本
  • 如果你的程序是用 .NET Core 或者 .NET 5 开发的,那么可以安装其5.0.2及其以上版本

安装完成,它会自动引用:

image.png

然后运行程序,你会发现虽然dll还是复制到了生成目录,但是你把exe单独拎出来仍然可以正常运行。