之前使用过资源嵌入加AssemblyResolve
事件来实现将整个项目只生成一个exe文件,也使用过采用自解压打包的方式来实现,后面看到可以试试Costura.Fody
开发环境:.NET Framework版本:4.8
开发工具:Visual Studio 2022
-
首先新建一个控制台程序,再新建一个类库项目,在类库Class1中实现Sum方法
public class Class1 { public int Sum(int a ,int b) { return a + b; } }
-
然后将类库引用到控制台程序中,在控制台程序中进行调用
internal class Program { static void Main(string[] args) { Console.WriteLine(new ClassLibrary1.Class1().Sum(3, 5)); Console.ReadLine(); } }
-
上面两步形成依赖关系后,就会生成一个exe文件一个dll文件
-
接下来我们开始引入
Costura.Fody
,在Nuget搜索并安装,目前最新版本是5.7.0, -
在安装的时候会看到项目的引用中加了一堆东西,不过对生成没太大影响(体积还是会变大)。
-
安装完成后,重新生成解决方案,会发现debug目录下没有dll文件了。只有一个exe文件,单独拿出去发现也是可以正常运行的。
-
最后,不得不说,这个方式的确是简单方便。
Costura.Fody
的开源地址为:https://github.com/Fody/Costura,如果在使用过程中有问题,也可点击去看看作者有没有说明。