Unity Game fails Supported API certification

My game works just fine on Windows RT tablet (and on Windows 8 PC). However, it fails Windows certification kit API test:

“◦API System.Collections.Hashtable in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. Assembly-CSharp-firstpass.dll calls this API.
◦API System.Collections.ArrayList in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. Assembly-CSharp-firstpass.dll calls this API.
◦API System.IO.DirectoryInfo in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. Assembly-CSharp-firstpass.dll calls this API.
◦API System.IO.FileInfo in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. Assembly-CSharp-firstpass.dll calls this API.” etc.

Is this because I use “None” as compilation override? Should I use “Use Net Core” instead?

Using that options fails to build as numerous APIs are missing (FileStream, FileInfo, DirectoryInfo, etc.). Do I need to rewrite my code not to use these APIs, or is there a way around it?

Which version of Unity do you use?
FileStream, FileInfo, DirectoryInfo are not supported on Windows Store, for now you’ll have to rewrite those.

4.2.1f4

Is there going to be an update that would solve any of these problems?

In 4.3 Hashtable and ArrayList should work.
Others not yet, we might do something regarding them, but no promises.

Now with 4.3, I’ve managed to shrink down the list to just one error:

API System.Type.op_Equality(System.Type,System.Type) in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. Assembly-CSharp-firstpass.dll calls this API.

I’d assume that’s caused by something like:
Type t = object.GetType();
if (t == anotherType.GetType())

But the codebase I’m working on is tens of thousands of lines of code, so finding a codeline like that is next to impossible with any help from tools. Any ideas how find the offending piece of code? Also, I wonder why Unity let’s me use methods and types that are not allowed for Windows Store Apps…

Solved it myself, it seems. I removed whole bunch of references to System.Type, but I’m quite sure that it’s actually caused by testing Master-build, rather than Release-build (it’s 8.1 version). When building with 8.0, there’s no Master-configuration.

It remains to be seen if the Master-build is going to pass the real certification test or not…

I did not get what u r telling hebba84…even i am getting same problem…please tell me how i can fix that

“API System.Type.op_Equality(System.Type,System.Type) in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. Assembly-CSharp-firstpass.dll calls this API.”

reply soon…thank u

Don’t use operator == to compare System.Type objects. This is not supported by .NET for Windows Store Apps.

Trying downloading Unity 4.3.1, and see if the problems persists.