System.OutOfMemoryException 合并时 Newtonsoft.Json
System.OutOfMemoryException when merging Newtonsoft.Json
我正在创建一个插件来调用网络服务。我需要序列化和反序列化 Json 对象。所以,我需要Newtonsoft.Json。我正在尝试在 Visual Studio 2015 中使用 ILMerge.MSBuild.Task 和 ILMerge 合并来自 NewtonSoft.Json 的 dll 和我的应用程序 dll。
我收到以下错误:
我在互联网上寻找解决方案,但找不到任何解决方案。
如果您仅将 ILMerge 用于 serialize/deserialize JSON,我建议您放弃它并改用 DataContractJsonSerializer
class。此更改将删除与 Newtonsoft.Json 和 ILMerge (not supported) 的依赖关系,最终得到一个更轻便的插件库(这总是好的):
// Deserialize a JSON stream to a User object.
public static User ReadToObject(string json)
{
User deserializedUser = new User();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedUser.GetType());
deserializedUser = ser.ReadObject(ms) as User;
ms.Close();
return deserializedUser;
}
可以找到完整示例 here。
我能够通过从 nuget 获取最新的 dll 来解决这个问题,并将其放入侧文件夹并直接引用 dll。
我不确定为什么 nuget 会把它搞砸,但是在我从图片中删除 nuget 之后,构建工作正常。
我不喜欢我不能使用 nuget 来获取这个项目的更新,但至少它是有效的。
对于 VisualStudio 中的 ILMerge,仅使用来自 NuGet 包管理器的必要 dll
我正在使用 MSBuild.ILMerge.Task 1.0.5 和 Newtonsoft.Json 的最新版本并获得此类型的问题。
我尝试通过降级到 Newtonsoft.Json 版本 10.0.3 来使用稳定版本并且它运行良好。
希望对您有所帮助!!!
我正在创建一个插件来调用网络服务。我需要序列化和反序列化 Json 对象。所以,我需要Newtonsoft.Json。我正在尝试在 Visual Studio 2015 中使用 ILMerge.MSBuild.Task 和 ILMerge 合并来自 NewtonSoft.Json 的 dll 和我的应用程序 dll。
我收到以下错误:
我在互联网上寻找解决方案,但找不到任何解决方案。
如果您仅将 ILMerge 用于 serialize/deserialize JSON,我建议您放弃它并改用 DataContractJsonSerializer
class。此更改将删除与 Newtonsoft.Json 和 ILMerge (not supported) 的依赖关系,最终得到一个更轻便的插件库(这总是好的):
// Deserialize a JSON stream to a User object.
public static User ReadToObject(string json)
{
User deserializedUser = new User();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedUser.GetType());
deserializedUser = ser.ReadObject(ms) as User;
ms.Close();
return deserializedUser;
}
可以找到完整示例 here。
我能够通过从 nuget 获取最新的 dll 来解决这个问题,并将其放入侧文件夹并直接引用 dll。
我不确定为什么 nuget 会把它搞砸,但是在我从图片中删除 nuget 之后,构建工作正常。
我不喜欢我不能使用 nuget 来获取这个项目的更新,但至少它是有效的。
对于 VisualStudio 中的 ILMerge,仅使用来自 NuGet 包管理器的必要 dll
我正在使用 MSBuild.ILMerge.Task 1.0.5 和 Newtonsoft.Json 的最新版本并获得此类型的问题。
我尝试通过降级到 Newtonsoft.Json 版本 10.0.3 来使用稳定版本并且它运行良好。
希望对您有所帮助!!!