如何将DLL库嵌入编译后的C# EXE文件?
大家好!我正在用C#(Windows Forms)写一个小应用程序,它使用了第三方库——例如Newtonsoft.Json或iTextSharp。当我在Visual Studio中构建项目时,Debug/Release文件夹中会出现我的.exe文件和一堆.dll文件。这对用户来说很不方便:他们需要确保所有库都放在exe旁边,否则程序无法运行。
我想做的是将所有DLL直接嵌入到一个.exe文件中。也就是说,用户得到一个文件,运行它——一切都能正常工作,无需额外操作。
我试过谷歌搜索,找到了ILMerge,但它已经过时了,不支持.NET Core / .NET 5+。还听说过Costura.Fody,但不确定如何正确配置它。有没有现代的方法在.NET 6/7/8中实现这一点?或者也许可以通过AssemblyResolve手动加载DLL?希望能看到一个可工作的示例,最好带有代码。
以下是我的项目结构示例(.NET 6控制台应用程序):
```