Windows App Certification Kit

Apr 13, 2012 at 9:54 AM
Hi

Currently I'm writing a Win8 metro project and I need to do some Json work, however after running the appcert took i'm receiving this error.

FAILED
Binary Analyzer
  • Error: Following errors were encountered while running the Binary Analyzer test.
    • File C:\Program Files\WindowsApps\a70ac3f7-ece7-40b9-89af-5dfabdd4b5d3_1.0.0.1_neutral__k5ke7t4b264n8\Newtonsoft.Json.dll has failed the APTCACheck check.

Any idea's; as i would rather not use the in build Json and it's not that good.

Apr 22, 2012 at 6:23 PM

Hi,

I have the same issue, any resolution this?

Coordinator
Apr 23, 2012 at 11:24 AM

Well considering that the Metro Json.NET dll doesn't even have AllowPartiallyTrustedCallersAttribute (APTCA) on the assembly I don't know why it is complaining.

Coordinator
Apr 24, 2012 at 10:09 AM

Fixed

May 16, 2012 at 8:10 PM

I just run the certification kit against my Metro app (using Json.net 4.5.5) and it failed with this error

Supported APIs
  • Error Found: The supported APIs test detected the following errors:
    • API System.Reflection.Emit.DynamicMethod in SYSTEM.REFLECTION.EMIT.LIGHTWEIGHT, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.Label in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.LocalBuilder in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.DynamicMethod.#ctor(System.String,System.Type,System.Type[],System.Reflection.Module,System.Boolean) in SYSTEM.REFLECTION.EMIT.LIGHTWEIGHT, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.DynamicMethod.#ctor(System.String,System.Type,System.Type[],System.Type,System.Boolean) in SYSTEM.REFLECTION.EMIT.LIGHTWEIGHT, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.DynamicMethod.GetILGenerator in SYSTEM.REFLECTION.EMIT.LIGHTWEIGHT, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.DefineLabel in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode,System.Int32) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.Label) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode,System.Reflection.ConstructorInfo) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.MarkLabel(System.Reflection.Emit.Label) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.DynamicMethod.set_InitLocals(System.Boolean) in SYSTEM.REFLECTION.EMIT.LIGHTWEIGHT, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.DeclareLocal(System.Type) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode,System.Type) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode,System.Reflection.FieldInfo) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.Emit.ILGenerator.Emit(System.Reflection.Emit.OpCode,System.Reflection.MethodInfo) in SYSTEM.REFLECTION.EMIT.ILGENERATION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
    • API System.Reflection.TypeInfo.get_Module in SYSTEM.REFLECTION, PUBLICKEYTOKEN=B03F5F7F11D50A3A is not supported for this application type. Newtonsoft.Json.dll calls this API.
  • Impact if not fixed: Using an API that is not part of the Windows SDK for Metro style apps violates the Windows Store certification requirements.
  • How to fix: Review the error messages to identify the API that is not part of the Windows SDK for Metro style apps. Please note, C++ apps that are built in a debug configuration will fail this test even if it only uses APIs from the Windows SDK for Metro style apps. See the link below for more information: 
    Alternatives to Windows APIs in Metro style apps.

Do you know if there is something to do?

Thanks a lot
Benjamin

Oct 1, 2012 at 9:37 PM

Can you please go into detail about what you did to fix this error?

Coordinator
Oct 2, 2012 at 1:29 AM

Removed IL emit.