c# - 将 .NET 外部 dll 合并到单个可执行文件

标签 c# json winforms visual-studio ilmerge

这是一个简单的问题。如果 Newtonsoft.Json.dll 不在程序文件夹中,我就无法运行我的程序。为什么这个?我试过添加引用,将文件添加到项目根目录,添加到资源文件夹,但没有任何效果。程序文件夹中没有Newtonsoft.Json.dll如何运行程序?我正在开发 Windows 窗体应用程序。

更新

问题解决了,感谢spender给我介绍了ILMerge ,一个非常好的 NuGet 包,可以将第三方 dll 组合到一个可执行的二进制文件中。对于想要制作独立应用程序的人,只需使用 ILMerge。快速、简单且非常有用。再见!

最佳答案

通常,如果您的程序使用 DLL,那么您需要在应用程序文件夹(或用户路径或 GAC)中使用该 DLL。

分发多个文件的传统方法是使用安装程序。您可以使用 WiX 之一编写一个或 VS Installer Projects扩大。现在,您的所有输出文件都与已安装程序附带的所有其他优点一起安装。我非常喜欢这种方法。

但是,还有其他选择:

  • Download the source并将源代码复制到您的主项目中,然后它将被编译到您的主程序集中(确保您检查许可证是否允许这样做)。

  • 使用 ILMerge将所有程序集组合成一个二进制文件。

关于c# - 将 .NET 外部 dll 合并到单个可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25578362/

相关文章:

C# 是否可以将 groupBox 标题设为单选按钮?

c# - 根据具有属性的属性复制派生类的实例

c# - 如何使用扩展验证证书以编程方式签署 HCK 提交

c# - 根据 C# 中的体系结构引用不同的库

javascript - nunjucks 模板中的 JSON 数据,使用 gulp-data

c# - 在其父级边界之外的用户控件内显示控件

c# - 改进 Entity Framework 中的嵌套查询

ios - 如何存储在 .plist 文件中解析的 JSON?

java - gson 抛出 MalformedJsonException

c# - BindingSource MoveFirst/MoveLast 不起作用