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



原始问题:

是否需要更改命名空间、Newtonsoft.Json或packages.config文件以使Visual Studio 2010、Silverlight 5、NuGet和Json.Net都能正常运行

更新后:

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

我有一个解决方案,其中有几个项目引用了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:CognexWorkSpaceTAF_ToolssrcTypeSafeEnumeration.CommonEnumeration.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

这个问题现在演变成:

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

如果不是这样的话,这将很容易解释我开始时的NuGet包问题,我回到了最初(当前)的方法,但使用了更新版本的源代码。

如果您使用的是VS2010,Portable项目不受支持,您需要回到Json.Net的4.5版本。无论如何,我真的不确定Silverlight是否可以利用任何改进,因为Portable项目通常会排除Json.Net.的许多更新功能

这尤其适用于Silverlight,因为这些项目需要是Portable40项目,它排除的不仅仅是Portable类本身。

相关内容

  • 没有找到相关文章

最新更新