Under publishing settings on Universal Windows Platform player settings, there’s a drop down menu called “Compilation overrides”. There are 3 settings:
1. None. All C# scripts will get compiled with Mono C# compiler;
2. Use Net Core Partially. Scripts that are in folders "Assets/Plugins", "Assets/Standard Assets" and "Assets/Pro Standard Assets" will get compiled with Mono C# compiler, while the rest will be compiled with Microsoft C# compiler;
3. Use Net Core. All scripts will get compiled with Microsoft C# compiler.
Both compilers have their ups and downs. Compiling scripts with the Mono C# compiler will allow them to be referenced by JavaScript scripts, which, for example, is needed for Angry Bots (hence you have to set it to none). However, using the Microsoft C# compiler will allow you to use Microsoft specific APIs without the need for plugins - just wrap the code in #if ENABLE_WINMD_SUPPORT/#endif, and it will compile and work just fine.
You can find a log in <user>\AppData\Local\Microsoft\AppCertKit which might contain additional information about the failure.
No worries. Here’s all of them:
UNITY_WINRT | Defined on all scripts |
UNITY_WSA | Defined on all scripts |
UNITY_WINRT_10_0 | Defined on all scripts |
UNITY_WSA_10_0 | Defined on all scripts |
ENABLE_DOTNET | Defined on all scripts when using .NET scripting backend |
ENABLE_IL2CPP | Defined on all scripts when using IL2CPP scripting backend |
NETFX_CORE | Defined on C# scripts that are compiled using Microsoft C# compiler when using .NET scripting backend |
WINDOWS_UWP | Defined on C# scripts that are compiled using Microsoft C# compiler when using .NET scripting backend or IL2CPP scripting backend with .NET 4.6 compatibility level |
ENABLE_WINMD_SUPPORT | Defined on C# scripts that are compiled using Microsoft C# compiler when using .NET scripting backend or IL2CPP scripting backend with .NET 4.6 compatibility level |
See also platform dependent compilation.
There could be couple of reasons:
• 2017–05–16 Page amended with no editorial review