IL2cpp compilation fails

Hello!

I want to try IL2cpp. It does not work. Unity 2019.3.0a5. I get this message:

Failed running C:\Program Files\Unity\Hub\Editor\2019.3.0a5\Editor\Data\il2cpp/build/il2cpp.exe --convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile="unityaot" --compile-cpp --libil2cpp-static --platform="WindowsDesktop" --architecture="x64" --configuration="Release" --outputpath="C:\programowanie\Artificer\Temp/StagingArea/Data\Native\GameAssembly.dll" --cachedirectory="C:\programowanie\Artificer\Assets\..\Library/il2cpp_cache" --profiler-report --map-file-parser="C:/Program Files/Unity/Hub/Editor/2019.3.0a5/Editor/Data/Tools/MapFileParser/MapFileParser.exe" --directory=C:/programowanie/Artificer/Temp/StagingArea/Data/Managed --generatedcppdir=C:/programowanie/Artificer/Temp/StagingArea/Data/il2cppOutput

stdout:
il2cpp.exe didn't catch exception: System.InvalidOperationException: Unknown MSVC version: 10.0
   at Unity.IL2CPP.Building.ToolChains.MsvcVersions.MsvcInstallation.GetMsvcVersionRequirementsForBuildingAndReasonItCannotBuild(Version version, Architecture architecture)
   at Unity.IL2CPP.Building.ToolChains.MsvcDesktopToolChain.GetCannotBuildInCurrentEnvironmentErrorMessage()
   at Unity.IL2CPP.Building.CppProgramBuilder.ThrowIfCannotBuildInCurrentEnvironment()
   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
   at il2cpp.Program.DoRun(String[] args)
   at il2cpp.Program.Run(String[] args)
   at il2cpp.Program.Main(String[] args)
stderr:

Unhandled Exception: System.InvalidOperationException: Unknown MSVC version: 10.0
   at Unity.IL2CPP.Building.ToolChains.MsvcVersions.MsvcInstallation.GetMsvcVersionRequirementsForBuildingAndReasonItCannotBuild(Version version, Architecture architecture)
   at Unity.IL2CPP.Building.ToolChains.MsvcDesktopToolChain.GetCannotBuildInCurrentEnvironmentErrorMessage()
   at Unity.IL2CPP.Building.CppProgramBuilder.ThrowIfCannotBuildInCurrentEnvironment()
   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
   at il2cpp.Program.DoRun(String[] args)
   at il2cpp.Program.Run(String[] args)
   at il2cpp.Program.Main(String[] args)

0x00007FF62069403C (Unity) StackWalker::GetCurrentCallstack
0x00007FF620697581 (Unity) StackWalker::ShowCallstack
0x00007FF61EE8A335 (Unity) GetStacktrace
0x00007FF621284040 (Unity) DebugStringToFile
0x00007FF6206CA061 (Unity) DebugLogHandler_CUSTOM_Internal_Log
0x000001F62C699BAB (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,UnityEngine.LogOption,string,UnityEngine.Object)
0x000001F62C699A6B (Mono JIT Code) [DebugLogHandler.cs:10] UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
0x000001F62C699101 (Mono JIT Code) [Logger.cs:61] UnityEngine.Logger:Log (UnityEngine.LogType,object)
0x000001F652C49F4D (Mono JIT Code) [Debug.bindings.cs:127] UnityEngine.Debug:LogError (object)
0x000001F652C3C583 (Mono JIT Code) [BuildUtils.cs:128] UnityEditorInternal.Runner:RunProgram (UnityEditor.Utils.Program,string,string,string,UnityEditor.Scripting.Compilers.CompilerOutputParserBase)
0x000001F652C3B6A3 (Mono JIT Code) [BuildUtils.cs:72] UnityEditorInternal.Runner:RunManagedProgram (string,string,string,UnityEditor.Scripting.Compilers.CompilerOutputParserBase,System.Action`1<System.Diagnostics.ProcessStartInfo>)
0x000001F652C47A3B (Mono JIT Code) [IL2CPPUtils.cs:502] UnityEditorInternal.IL2CPPBuilder:RunIl2CppWithArguments (System.Collections.Generic.List`1<string>,System.Action`1<System.Diagnostics.ProcessStartInfo>,string)
0x000001F652C41AF3 (Mono JIT Code) [IL2CPPUtils.cs:483] UnityEditorInternal.IL2CPPBuilder:ConvertPlayerDlltoCpp (string,string,string,bool)
0x000001F652C0DFFB (Mono JIT Code) [IL2CPPUtils.cs:335] UnityEditorInternal.IL2CPPBuilder:Run ()
0x000001F652C0D61B (Mono JIT Code) [IL2CPPUtils.cs:71] UnityEditorInternal.IL2CPPUtils:RunIl2Cpp (string,UnityEditorInternal.IIl2CppPlatformProvider,System.Action`1<string>,UnityEditor.RuntimeClassRegistry)
0x000001F651EAD723 (Mono JIT Code) [DesktopStandalonePostProcessor.cs:243] DesktopStandalonePostProcessor:SetupStagingArea (UnityEditor.Modules.BuildPostProcessArgs,System.Collections.Generic.HashSet`1<string>)
0x000001F651EA9C3B (Mono JIT Code) [DesktopStandalonePostProcessor.cs:44] DesktopStandalonePostProcessor:PostProcess (UnityEditor.Modules.BuildPostProcessArgs)
0x000001F651EA97A1 (Mono JIT Code) [DefaultBuildPostprocessor.cs:31] UnityEditor.Modules.DefaultBuildPostprocessor:PostProcess (UnityEditor.Modules.BuildPostProcessArgs,UnityEditor.BuildProperties&)
0x000001F651EA8957 (Mono JIT Code) [PostprocessBuildPlayer.cs:282] UnityEditor.PostprocessBuildPlayer:Postprocess (UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,string,string,string,int,int,UnityEditor.BuildOptions,UnityEditor.RuntimeClassRegistry,UnityEditor.Build.Reporting.BuildReport)
0x000001F651EA8F30 (Mono JIT Code) (wrapper runtime-invoke) <Module>:runtime_invoke_void_int_int_object_object_object_int_int_int_object_object (object,intptr,intptr,intptr)
0x00007FFF2A2AC11B (mono-2.0-bdwgc) [mini-runtime.c:2809] mono_jit_runtime_invoke
0x00007FFF2A232282 (mono-2.0-bdwgc) [object.c:2921] do_runtime_invoke
0x00007FFF2A23B27F (mono-2.0-bdwgc) [object.c:2968] mono_runtime_invoke
0x00007FF620618262 (Unity) scripting_method_invoke
0x00007FF620611DB1 (Unity) ScriptingInvocation::Invoke
0x00007FF61E6C6568 (Unity) CallMono
0x00007FF61E6E3371 (Unity) PostprocessPlayer
0x00007FF61E6CE619 (Unity) DoBuildPlayer_PostBuild
0x00007FF61E6BC572 (Unity) BuildPlayer
0x00007FF61F46C100 (Unity) BuildPipeline::BuildPlayerInternalNoCheck
0x00007FF61F4698FA (Unity) BuildPipeline_CUSTOM_BuildPlayerInternalNoCheck
0x000001F64161ECD3 (Mono JIT Code) (wrapper managed-to-native) UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck (string[],string,string,UnityEditor.BuildTargetGroup,UnityEditor.BuildTarget,UnityEditor.BuildOptions,bool)
0x000001F64161E0C3 (Mono JIT Code) [BuildPlayerWindowBuildMethods.cs:170] UnityEditor.BuildPlayerWindow/DefaultBuildMethods:BuildPlayer (UnityEditor.BuildPlayerOptions)
0x000001F641615203 (Mono JIT Code) [BuildPlayerWindowBuildMethods.cs:96] UnityEditor.BuildPlayerWindow:CallBuildMethods (bool,UnityEditor.BuildOptions)
0x000001F63F1D2EAB (Mono JIT Code) [BuildPlayerWindow.cs:913] UnityEditor.BuildPlayerWindow:GUIBuildButtons (UnityEditor.Modules.IBuildWindowExtension,bool,bool,bool,UnityEditor.Build.BuildPlatform)
0x000001F63F1C52AB (Mono JIT Code) [BuildPlayerWindow.cs:798] UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings ()
0x000001F63F1A9BD3 (Mono JIT Code) [BuildPlayerWindow.cs:373] UnityEditor.BuildPlayerWindow:OnGUI ()
0x000001F629EA5F10 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FFF2A2AC11B (mono-2.0-bdwgc) [mini-runtime.c:2809] mono_jit_runtime_invoke
0x00007FFF2A232282 (mono-2.0-bdwgc) [object.c:2921] do_runtime_invoke
0x00007FFF2A23B452 (mono-2.0-bdwgc) [object.c:3073] mono_runtime_invoke_checked
0x00007FFF2A23BBE9 (mono-2.0-bdwgc) [object.c:5264] mono_runtime_try_invoke_array
0x00007FFF2A23B3E6 (mono-2.0-bdwgc) [object.c:5142] mono_runtime_invoke_array_checked
0x00007FFF2A1E0284 (mono-2.0-bdwgc) [icall.c:3358] ves_icall_InternalInvoke
0x000001F618E2D806 (Mono JIT Code) (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
0x000001F618E2CF4B (Mono JIT Code) System.Reflection.MonoMethod:Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
0x000001F618E2CC0F (Mono JIT Code) System.Reflection.MethodBase:Invoke (object,object[])
0x000001F623D3B8C3 (Mono JIT Code) [HostView.cs:355] UnityEditor.HostView:Invoke (string,object)
0x000001F623D3B713 (Mono JIT Code) [HostView.cs:350] UnityEditor.HostView:Invoke (string)
0x000001F63F1A8853 (Mono JIT Code) [HostView.cs:139] UnityEditor.HostView:OldOnGUI ()
0x000001F6276AD941 (Mono JIT Code) [IMGUIContainer.cs:280] UnityEngine.UIElements.IMGUIContainer:smile:oOnGUI (UnityEngine.Event,UnityEngine.Matrix4x4,UnityEngine.Rect,bool,UnityEngine.Rect)
0x000001F6276ABBAB (Mono JIT Code) [IMGUIContainer.cs:494] UnityEngine.UIElements.IMGUIContainer:HandleIMGUIEvent (UnityEngine.Event,UnityEngine.Matrix4x4,UnityEngine.Rect)
0x000001F6276A914B (Mono JIT Code) [IMGUIContainer.cs:475] UnityEngine.UIElements.IMGUIContainer:HandleIMGUIEvent (UnityEngine.Event)
0x000001F6276A8BFB (Mono JIT Code) [IMGUIContainer.cs:465] UnityEngine.UIElements.IMGUIContainer:SendEventToIMGUI (UnityEngine.UIElements.EventBase)
0x000001F623D2EA3B (Mono JIT Code) [IMGUIContainer.cs:446] UnityEngine.UIElements.IMGUIContainer:HandleEvent (UnityEngine.UIElements.EventBase)
0x000001F6276A7BA0 (Mono JIT Code) [MouseCaptureDispatchingStrategy.cs:98] UnityEngine.UIElements.MouseCaptureDispatchingStrategy:smile:ispatchEvent (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel)
0x000001F623D1E336 (Mono JIT Code) [EventDispatcher.cs:282] UnityEngine.UIElements.EventDispatcher:ProcessEvent (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel)
0x000001F623D18A83 (Mono JIT Code) [EventDispatcher.cs:157] UnityEngine.UIElements.EventDispatcher:smile:ispatch (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.IPanel,UnityEngine.UIElements.DispatchMode)
0x000001F623D186A3 (Mono JIT Code) [Panel.cs:210] UnityEngine.UIElements.BaseVisualElementPanel:SendEvent (UnityEngine.UIElements.EventBase,UnityEngine.UIElements.DispatchMode)
0x000001F62766BC1B (Mono JIT Code) [UIElementsUtility.cs:292] UnityEngine.UIElements.UIElementsUtility:smile:oDispatch (UnityEngine.UIElements.BaseVisualElementPanel)
0x000001F62766B34B (Mono JIT Code) [UIElementsUtility.cs:107] UnityEngine.UIElements.UIElementsUtility:ProcessEvent (int,intptr)
0x000001F62766ACAE (Mono JIT Code) [GUIUtility.cs:179] UnityEngine.GUIUtility:ProcessEvent (int,intptr)
0x000001F62766AED3 (Mono JIT Code) (wrapper runtime-invoke) <Module>:runtime_invoke_bool_int_intptr (object,intptr,intptr,intptr)
0x00007FFF2A2AC11B (mono-2.0-bdwgc) [mini-runtime.c:2809] mono_jit_runtime_invoke
0x00007FFF2A232282 (mono-2.0-bdwgc) [object.c:2921] do_runtime_invoke
0x00007FFF2A23B27F (mono-2.0-bdwgc) [object.c:2968] mono_runtime_invoke
0x00007FF620618262 (Unity) scripting_method_invoke
0x00007FF620611DB1 (Unity) ScriptingInvocation::Invoke
0x00007FF62060BA8A (Unity) ScriptingInvocation::Invoke<bool>
0x00007FF61D9D96A9 (Unity) Scripting::UnityEngine::GUIUtilityProxy::ProcessEvent
0x00007FF61E468AAC (Unity) GUIView::ProcessRetainedMode
0x00007FF61EEB1006 (Unity) GUIView::OnInputEvent
0x00007FF61E4689BC (Unity) GUIView::ProcessInputEvent
0x00007FF61EEB28D5 (Unity) GUIView::ProcessEventMessages
0x00007FF61EEACEE0 (Unity) GUIView::GUIViewWndProc
0x00007FFF83A26D41 (USER32) CallWindowProcW
0x00007FFF83A26713 (USER32) DispatchMessageW
0x00007FF61EEB047B (Unity) MainMessageLoop
0x00007FF61EEB798F (Unity) WinMain
0x00007FF621C33652 (Unity) __scrt_common_main_seh
0x00007FFF82E34034 (KERNEL32) BaseThreadInitThunk
0x00007FFF85913691 (ntdll) RtlUserThreadStart

Where do I begin debugging this? Thank you for your advice

Hi,

Sorry for super delayed response!

Looks like IL2CPP Crashes when we’re trying to tell you that you need to have Visual Studio installed to be able to build C++ code. We’ll fix the error message reporting.

Until we get the error message corrected, make sure you have either Visual Studio 2015 or Visual Studio 2017 installed along with the C++ Development Workload, in order to use IL2CPP.

Are we not able to use 2019 C++ tools yet even in Unity 2019.3? It’s giving me the same error.

It should work. Do you have C++ workload installed?

Restarting PC seems to have fixed it. I hadn’t needed to do that with the VS 2017 C++ tools so assumed it wouldn’t be an issue for 2019’s.