【发布时间】:2013-12-20 04:16:30
【问题描述】:
原问题:
为了让 Visual Studio 2010、Silverlight 5、NuGet 和 JSON.Net 都能正常运行,我需要更改命名空间、Newtonsoft.Json 或 packages.config 文件吗?
更新后:
是否有适用于 Silverlight 5 的 Json.Net 程序集(或 NuGet 包)?
我有一个解决方案,其中项目引用 JSON.net 库的解决方案中有几个项目。我正在重构 Visual Studio 解决方案以使用 NuGet 而不是静态下载版本(然后引用 DLL 文件)。
右键单击项目并选择“管理 NuGet 包”按预期工作,让我将 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
为了让 Visual Studio 2010、Silverlight 5、NuGet 和 JSON.Net 都能正常运行,我需要对命名空间、Newtonsoft.Json 或 packages.config 文件进行更改吗?
FWIW:Visual Studio 2010 Intellisense 标记该行:
using Newtonsoft.Json;
未解决,但仅在 Silverlight 5 项目中。
更新
我应该更清楚解决方案的结构。目前,我有两个从 Json.net 4 源代码编译的项目(Json.Net35 和 json.Silverlight)。然后解决方案中的其他项目引用该项目所需的 JSON 序列化程序的特定变体。
解决方案的重构是升级导致实现 NuGet 的代码库。由于 NuGet 方法暂时阻塞,我想直接引用 Json.net DLL。但是,当我下载二进制文件时,ZIP 存档仅包含以下变体:
Net20
Net35
Net40
Net45
Portable
Portable40
WinRT
这个问题现在变成了:
是否有适用于 Silverlight 5 的 Json.Net 程序集(或 NuGet 包)?
如果不是这样可以很容易地解释我一开始的 NuGet 包问题,我又回到了原始(当前)方法,但使用了更新版本的源代码。
【问题讨论】:
-
也许相关,所有 Silverlight 和 Windows Phone 代码都是在 5.0.8 版本发布几天后来自项目的removed。
标签: c# visual-studio-2010 json.net silverlight-5.0 nuget-package