2012-06-05 3 views
2

Это не может быть связано 100% Json.NET, но так как это компонент, который падает ...Json.NET Windows Store App сертификации аварии

сериализации работает просто отлично до второго испытания ОС Windows App Cert Комплект. Начиная с этим приложением запуска он выдает следующее исключение:

System.EntryPointNotFoundException Entry point was not found. 
at Newtonsoft.Json.Utilities.ReflectionUtils.GetFieldsAndProperties(Type type, BindingFlags bindingAttr) in \Newtonsoft.Json\Utilities\ReflectionUtils.cs:line 661 
at Newtonsoft.Json.Serialization.DefaultContractResolver.GetSerializableMembers(Type objectType) in \Newtonsoft.Json\Serialization\DefaultContractResolver.cs:line 267 
at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateProperties(Type type, MemberSerialization memberSerialization) in \Newtonsoft.Json\Serialization\DefaultContractResolver.cs:line 845 
at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(Type objectType) in \Newtonsoft.Json\Serialization\DefaultContractResolver.cs:line 349 
at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(Type objectType) in \Newtonsoft.Json\Serialization\DefaultContractResolver.cs:line 734 
at Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(Type type) in \Newtonsoft.Json\Serialization\DefaultContractResolver.cs:line 232 
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.GetContractSafe(Object value) in \Newtonsoft.Json\Serialization\JsonSerializerInternalWriter.cs:line 77 
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value) in \Newtonsoft.Json\Serialization\JsonSerializerInternalWriter.cs:line 58 
at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value) in \Newtonsoft.Json\JsonSerializer.cs:line 608 
at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Formatting formatting, JsonSerializerSettings settings) in \Newtonsoft.Json\JsonConvert.cs:line 749 

Код выглядит следующим образом ...

var test = JsonConvert.SerializeObject(new { id = "a", test = "test" }); 

После запуска Вак на приложении, которое я должен заново установить его, чтобы заставить его работать снова.

Кто-нибудь знает, как WACK запускает приложение? Я предполагаю, что это как-то объединяет различные среды при каждом запуске, но я не могу понять, как это испортит мое приложение.

+1

У меня такая же проблема, и я обнаружил, что это происходит потому, что WACK компилирует Json.NET в нативном коде, и это приводит к этому странному вопросу. Если вы перейдете в папку пакета и удалите Json.NET из AC \ Microsoft \ CLR_v4.0_32, он снова начнет работать. –

ответ

0

Проблема вызвана Json.NET с использованием анонимного типа в GetFieldsAndProperties. У WinRT должна быть ошибка с ними при использовании в сторонней dll.

0

Извините, я виноват. Я подтверждаю, что он исправлен в Release 7

Я открыл ошибку на Connect, потому что это проблема блокировки для использования решетки JSNO.Net в Windows 8 Metro.

https://connect.microsoft.com/VisualStudio/feedback/details/749011/ngen-failing-with-json-net-metro

+0

Это исправлено в текущей версии, Json.NET 4.5 Release 7 – Andrei

+0

Я попытался, но проблема все еще присутствует в релизе 7. сертификаты проходят, но EntryPointNotFoundException все еще присутствует во время выполнения после сборки сгенерированного ngen –

+0

Не могли бы вы предоставить полную трассировку стека. Мне нужно знать, откуда генерируется исключение, чтобы исправить это. –

Смежные вопросы