layout | title | subtitle |
---|---|---|
default |
Platform support |
Supported features varies (wildly) by platform. Here is a small recap of differences you might expect, but the list is constantly evolving so don't take it 100% for granted.
Feature | .NET 3.5 | .NET 4.x | .NET Core | PCL library | WSA Apps (1) | Unity Mono | Unity IL2CPP (2) | Unity AOT (3) | Unity WSA Apps |
---|---|---|---|---|---|---|---|---|---|
Script execution | Y | Y | Y | Y | Y | Y | Y | Y | Y |
Bytecode dumping | Y | Y | Y | N | N | Y | Y | Y | N |
``dynamic`` | N | Y | N | Y | N | N | N | N | N |
Async APIs | N | Y | Y | Y | N | N | N | N | N |
Optimized interop | Y | Y | Y | Y | Y | Y | N | N | Y |
VsCode debugger | Y | Y | Y | N | N | Y | N | N | N |
Remote debugger | Y | Y | N | N | N | N | N | N | N |
IO and OS libraries (4) | Y | Y | (5) | Y | N | (6) | N | N | N |
Support for value types (7) | Y | Y | Y | Y | Y | Y | N | N | Y |
1 - WSA Apps should use the PCL DLL included on NuGet and in the distribution Zip. This column refers to WSA apps built using the sources
2 - Unity IL2CPP includes most targets and is the recommended platform if you can't get the Mono runtime working
3 - Unity AOT column refers to the Ahead of Time runtime without IL2CPP. It's usage is not recommended
4 - Support of io
and os
modules has known bugs. Beside them, known bugs exist in timezone conversions when running on Mono (due to bugs in the mono libraries)
5 - .NET Core support of io
and os
modules is complete except for os.exec
and the issues mentioned before.
6 - Unity standalone player support for io
and os
modules is disabled by default but can be forced on and be fully working. Their use is still discouraged.
7 - Value types are an endless source of pain on every platform (due to how the poorly support reflection), but on IL2CPP and AOT platforms a lot more issues can be expected