Windows服务异常 - 无法加载文件或程序集Newtonsoft.Json

时间:2014-12-09 08:12:15

标签: c# json windows-services json.net

我在Windows服务项目中使用Newtonsoft.Json

我的Newtonsoft.Json版本为6.0.0.0,我在项目参考中引用了它。

安装和编译通过就好了。但是,当我从Services启动我的服务时,它会引发异常:

  

无法加载文件或程序集'Newtonsoft.Json,Version = 6.0.0.0,   Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个   依赖。系统找不到指定的文件。

我还在网上搜索并在我的app.config文件中添加了以下内容:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json"
        publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>
</runtime>

但仍然得到同样的错误。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果您打算将数组转换为Json,则无需使用外包的dll。 VS 2010有JavaScriptSerializer来完成这项任务。

示例如下:

using System.Web.Script.Serialization;

JavaScriptSerializer js = new JavaScriptSerializer();
var json = js.Serialize(strYourArrayString);

答案 1 :(得分:0)

问题可能与启动目录有关(在GAC中是'Newtonsoft.Json'吗?)。 您可以尝试使用服务来设置目录,但我放弃了。

实际上我总是为非Microsoft引用的程序集设置copy local,我使用与此类似的源代码 How to add folder to assembly search path at runtime in .NET?