我一直在开发一个控制台应用程序,该应用程序具有一些新功能,主要使用NewtonSoft.Json nuget包。对于分发,我一直在进入bin文件夹->发布,然后复制/粘贴可执行文件以分发给我的同事。然而,由于我使用了NewtonSoft.Json软件包,我的同事在他们的机器上会出现以下错误。
System.IO.FileNotFoundException:未能加载文件或程序集"Newtonsoft.Jso"n、 Version=7.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6eed'或其中之一其依赖关系。系统找不到指定的文件。文件名:'Newtonsoft.Json,Version=7.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6eed’
我该如何度过难关?如何让我的同事能够在自己的机器上支持NewtonSoft.Json?
就像ragerory在你的问题评论中所说的那样,这些错误将发生在对与可执行文件一起部署的外部依赖项的任何缺失引用中。
您可以执行以下操作以避免依赖项加载问题:
- 分发具有执行所需的所有依赖项的可执行文件
- 使用第三方软件将依赖项与可执行文件"合并"
如果你熟悉NuGet,你也可以使用Costura.Fody,这是我在构建时用来嵌入引用作为资源的工具。它避免使用诸如ILMerge之类的外部工具,我之所以选择它,是因为在已经使用NuGet包的项目中可以轻松集成。
我的问题是缺少一些配置,如果在源代码管理中的提交过程中没有签入,就会发生这种情况。
我使用Nuget软件包,因此重新安装软件包对我来说很有效。我确实升级到了不同的版本,但这不起作用——必须重新安装。
Update-Package -Id Newtonsoft.Json -reinstall