我在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>
但仍然得到同样的错误。
我做错了什么?
答案 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?