用于silverlight的JSON.net 5.0 nuget包无法识别

时间:2013-12-03 21:51:46

标签: c# visual-studio-2010 json.net silverlight-5.0 nuget-package

原始问题:

我是否需要更改命名空间,Newtonsoft.Json或packages.config文件,以便Visual Studio 2010,Silverlight 5,NuGet和JSON.Net能够正常播放?< / em>的

更新后:

是否有可用于Silverlight 5的Json.Net程序集(或NuGet程序包)?

我在解决方案中有几个项目的解决方案,其中项目引用了JSON.net库。我正在重构Visual Studio解决方案以使用NuGet而不是静态的下载版本(然后引用DLL文件)。

右键单击项目并选择“Manage NuGet Packages”按预期工作,让我将Json.net“软件包安装到解决方案中的.NET 3.5项目和解决方案中的Silverlight项目中。所有人都看好了点。

我将设置设置为搜索更新并授予NuGet下载缺失包的权限。

在3.5和Silverlight 5项目中找到的packages.config文件引用:

package id="Newtonsoft.Json" version="5.0.8" targetFramework="net35"

package id="Newtonsoft.Json" version="5.0.8" targetFramework="sl50"

分别

编译.Net 3.5项目时没有错误,但对于Silverlight 5项目,您得到:

The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
C:\CognexWorkSpace\TAF_Tools\src\TypeSafeEnumeration.Common\Enumeration.Serialization.cs

我是否需要更改命名空间,Newtonsoft.Json或packages.config文件,以便Visual Studio 2010,Silverlight 5,NuGet和JSON.Net能够正常播放?

FWIW:Visual Studio 2010 Intellisense标记该行:

using Newtonsoft.Json;

未解决,但仅在Silverlight 5项目中。

更新

我应该更清楚解决方案结构。目前,我有两个项目(Json.Net35和json.Silverlight),它们是从Json.net 4源代码编译而来的。然后,解决方案中的其他项目将引用该项目所需的JSON序列化程序的特定变体。

解决方案的重构是升级导致实现NuGet的代码库。随着NuGet方法暂时阻塞,我想直接引用Json.net DLL。当我下载二进制文件时,ZIP存档只包含以下变体:

Net20
Net35
Net40
Net45
Portable
Portable40
WinRT

现在这个问题变成了:

是否有可用于Silverlight 5的Json.Net程序集(或NuGet程序包)?

如果不是这样可以很容易地解释我开始的NuGet包问题,我回到原始(当前)方法,但使用更新版本的源代码。

1 个答案:

答案 0 :(得分:0)

如果您使用的是VS2010,则不支持Portable项目,您需要返回到Json.Net的4.5版本。我不确定Silverlight甚至可以利用什么改进,因为Portable项目通常会排除Json.Net的许多更新功能。

这尤其适用于Silverlight,因为这些项目需要是Portable40项目,这些项目本身不包括Portable类。