这是一个简单的问题。如果Newtonsoft.Json.dll不在程序文件夹中,我就无法运行我的程序。为什么这个?我尝试添加引用,将文件添加到项目根目录,添加到资源文件夹,但没有任何效果。如何在程序文件夹中运行没有Newtonsoft.Json.dll的程序?我正在Windows窗体应用程序中开发。
问题解决了,感谢花费向我介绍了ILMerge,这是一个非常好的NuGet包,它可以将第三方dll组合到一个可执行的二进制文件中。对于谁想要创建一个独立的应用程序,只需使用ILMerge。快速,简单且非常有用。见啊!
答案 0 :(得分:4)
通常,如果您的程序使用DLL,那么您在app文件夹(或用户路径或GAC)中需要该DLL。
分发多个文件的传统方法是使用安装程序。您可以使用WiX或VS Installer Projects扩展名编写一个。现在,所有输出文件都与安装程序附带的所有其他优点一起安装。我非常喜欢这种方法。
然而,还有其他选择:
Download the source并将源代码复制到主项目中,然后将其编译到主程序集中(确保检查许可证是否允许这样做)。
使用ILMerge将所有程序集合并为一个二进制文件。
答案 1 :(得分:0)
如果您不想在程序中引用dll,可以在客户端计算机上将其安装到GAC,但我不明白您想要的上下文
答案 2 :(得分:0)
如果您只需要一些JSON序列化。您可以使用随.Net安装的JavascriptSerializer
类来切换您的功能吗?