Version: 2018.4
Universal Windows Platform: Debugging on IL2CPP Scripting Backend
Universal Windows Platform: Examples

FAQ

Unsupported classes and functions when using .NET Scripting Backend

How to create AppX package from Visual Studio ?

  • After building the project from Unity Editor open it with Visual Studio
  • In the solution explorer, right click on the project
  • Store -> Create App Packages
  • Do you want to build packages to upload to the Windows Store? Choose No, then Next
  • Pick appropriate platform, for ex., ARM Release
  • Don’t include public symbol files, this will make package smaller
  • Create
  • Locate folder which is named something like YourApp_1.0.0.0_ARM_Test, check that it has Add-AppDevPackage.ps1 file
  • Copy the folder contents to the target machine, then on the target machine right click on Add-AppDevPackage.ps1 -> Run with PowerShell
  • Follow the steps, you might need an internet connection to install Developper License, this will require for you to have Microsoft account
  • If everything is okay, your app should appear on the start menu

How to install an appx file on your machine?

  • Open Windows PowerShell from start menu, navigate to your appx file, execute Add-AppxPackage <yourappx>.appx, if the appx was signed, it will be installed on your machine. Note: if you’re installing appx file again, you have to uninstall the previous one, simply right-click on the icon, and click Uninstall.

I am getting an error “DEP0600: incorrect parameter” while deploying an application.

  • Something is wrong with your certificate, try creating a new by clicking on Package.appxmanifest -> Packaging -> Choose Certificate -> Configure Certificate -> Create Test Certificate

How to use Visual Studio’s graphical debugger on ARM?

How to deploy a project on a tablet PC?

How do I choose which compiler to use for my C# scripts?

Under the Publishing Settings panel on the Player settings for Universal Windows PlatformAn IAP feature that supports Microsoft’s In App Purchase simulator, which allows you to test IAP purchase flows on devices before publishing your application. More info
See in Glossary
, there’s a drop down menu called Compilation overrides. There are 3 settings:

Value Function
None Unity compiles all C# scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary
with the Mono C# compiler.
Use Net Core Partially Unity compiles scripts that are in folders Assets/Plugins, Assets/Standard Assets and Assets/Pro Standard Assets with the Mono C# compiler, and uses the Microsoft C# compiler for the rest.
Use Net Core Unity compiles all scripts with the 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.

Getting more information about Windows App Certification Kit (WACK) failure?

You can find a log in <user&gt;\AppData\Local\Microsoft\AppCertKit which might contain additional information about the failure.

Help! There’s too many defines! Which are defined when?

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 backendA framework that powers scripting in Unity. Unity supports three different scripting backends depending on target platform: Mono, .NET and IL2CPP. Universal Windows Platform, however, supports only two: .NET and IL2CPP. More info
See in Glossary
ENABLE_IL2CPP Defined on all scripts when using IL2CPPA Unity-developed scripting back-end which you can use as an alternative to Mono when building Projects for some platforms. More info
See in Glossary
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.

Breakpoints in generated Assembly-CSharp-* projects aren’t hit.

There could be couple of reasons:

  • This may occur because of the JIT optimization on module load. In Visual Studio, go to Tools > Options > Debugging > General and uncheck Suppress JIT optimization on module load.
  • Visual Studio doesn’t consider Assembly-CSharp-* as your code. Go to Tools > Options > Debugging > General and uncheck Enable Just My Code. This tells Visual Studio that you want to debug the Assembly-CSharp-* projects.

• 2017–05–16 Page amended

Universal Windows Platform: Debugging on IL2CPP Scripting Backend
Universal Windows Platform: Examples