Search Unity

UWP Build Failing

Discussion in 'Windows' started by GS796, Nov 4, 2017.

  1. GS796

    GS796

    Joined:
    Dec 16, 2016
    Posts:
    24
    I have worked through a ton of errors trying to get my game up and running in a UWP build- it works fine in editor and on other platforms. But now I am pretty stuck.

    I've tried upgrading to Unity 2017 latest beta as it looked like it solved some UWP issues, but no luck.
    I am using VS 2017 and do have a warning after upgrading- in the Unity editor that says VS is missing required components- but there is no information as to what is missing and I am not sure if it is related.

    Any point in the right direction greatly appreciated!

    This is the error I don't understand:


    ----------


    Failed running C:\Program Files\Unity 2017.3.0b8\Editor\Data\il2cpp/build/UnityLinker.exe --api=NET_4_6 -out="C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\tempStrip" -l=none -c=link --link-symbols -x="C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Core.xml" -f="C:\Program Files\Unity 2017.3.0b8\Editor\Data\il2cpp\LinkerDescriptors" -x "C:\Users\Public\Documents\Unity Projects\Projects\GameName/Temp\StagingArea\Data/methods_pointedto_by_uievents.xml" -x "C:\Users\Public\Documents\Unity Projects\Projects\GameName/Temp\StagingArea\Data/UnityEngine.xml" -x "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\preserved_derived_types.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\il2cpp\LinkerDescriptors\mscorlib45.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\il2cpp\LinkerDescriptors\System45.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Accessibility.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\AI.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Animation.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\AR.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\AssetBundle.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Audio.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Cloth.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Core.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\CrashReporting.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Director.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\GameCenter.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Grid.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\ImageConversion.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\IMGUI.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Input.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\JSONSerialize.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\ParticlesLegacy.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\ParticleSystem.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\PerformanceReporting.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Physics.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Physics2D.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\ScreenCapture.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\SharedInternals.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\SpriteMask.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\SpriteShape.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\StyleSheets.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Terrain.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\TerrainPhysics.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\TextRendering.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Tilemap.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UI.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UIElements.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UNET.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UnityAnalytics.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UnityConnect.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UnityWebRequest.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UnityWebRequestAudio.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UnityWebRequestTexture.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\UnityWebRequestWWW.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Vehicles.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Video.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\VR.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Web.xml" -x "C:\Program Files\Unity 2017.3.0b8\Editor\Data\PlaybackEngines\MetroSupport\Whitelists\Wind.xml" -x "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Assets\link.xml" -d "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\Assembly-CSharp-firstpass.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\Assembly-CSharp.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\Assembly-UnityScript-firstpass.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\Assembly-UnityScript.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\UnityEngine.UI.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\DOTween.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\PlayMaker.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\ES2.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\TextMeshPro-1.0.55.2017.1.0b12.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\I18N.CJK.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\I18N.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\I18N.MidEast.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\I18N.Other.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\I18N.Rare.dll" -a "C:\Users\Public\Documents\Unity Projects\Projects\GameName\Temp\StagingArea\Data\Managed\I18N.West.dll"

    stdout:
    Fatal error in Unity CIL Linker
    System.InvalidProgramException: Failed to resolve [UnityEngine]System.Resources.NeutralResourcesLanguageAttribute.
    at Unity.IL2CPP.AssemblyDependenciesComponent.ResolveWindowsRuntimeReferences(AssemblyDefinition assembly)
    at Unity.IL2CPP.AssemblyDependenciesComponent.CollectAssemblyDependencies(AssemblyDefinition assembly)
    at Unity.IL2CPP.AssemblyDependenciesComponent.GetReferencedAssembliesFor(AssemblyDefinition assembly)
    at UnityLinker.UnityLinkContext.ResolveReferences(AssemblyDefinition assembly)
    at UnityLinker.Steps.UnityResolveFromXmlStep.GetAssembly(LinkContext context, AssemblyNameReference assemblyName)
    at UnityLinker.Steps.UnityResolveFromXmlStep.ProcessAssemblies(LinkContext context, XPathNodeIterator iterator)
    at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
    at Mono.Linker.Pipeline.Process(LinkContext context)
    at UnityLinker.UnityDriver.Run()
    at UnityLinker.UnityDriver.RunDriver()
    stderr:

    UnityEngine.Debug:LogError(Object)
    UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:128)
    UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action`1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildUtils.cs:73)
    UnityEditorInternal.AssemblyStripper:RunAssemblyLinker(IEnumerable`1, String&, String&, String, String) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:89)
    UnityEditorInternal.AssemblyStripper:StripAssembliesTo(String[], String[], String, String, String&, String&, String, IIl2CppPlatformProvider, IEnumerable`1) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:82)
    UnityEditorInternal.AssemblyStripper:RunAssemblyStripper(String, IEnumerable, String, String[], String[], String, IIl2CppPlatformProvider, RuntimeClassRegistry) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:204)
    UnityEditorInternal.AssemblyStripper:StripAssemblies(String, IIl2CppPlatformProvider, RuntimeClassRegistry) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/AssemblyStripper.cs:114)
    UnityEditorInternal.IL2CPPBuilder:Run() (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:152)
    UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry, Boolean) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/Il2Cpp/IL2CPPUtils.cs:34)
    PostProcessUAPIl2Cpp:RunIL2CPP() (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessUAPIl2Cpp.cs:378)
    PostProcessWinRT:process() (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessWinRT.cs:231)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)
     
  2. tswalk

    tswalk

    Joined:
    Jul 27, 2013
    Posts:
    1,109
    I think there are still problems with using .NET 4.6 API compatibility level.. probably want to stick with IL2CPP and .NET 2.0 subset

    atleast that seems to be the issue i've had.. not sure if it is the same as yours though.
     
  3. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Are you on 2017.3 beta as the path suggests?

    What is your API compatibility level set to in the player settings?

    Could we get a bug report on this? Even if we find a workaround, we'd like to fix this issue.
     
  4. jeremy-off2

    jeremy-off2

    Joined:
    Sep 1, 2015
    Posts:
    5
    I can't make c# project at all because of compiling errors.

    My environments are like the following.

    visual studios : 2017 community (15.4.0)
    unity : 2017.2.0f3-MRTP
    Windows : 10.0.17025

    Scripting Runtime Version & Api Compatibility : .NET 4.6
    Scripting Backend : .NET
    Compilation Overrides: Use Net Core

    Working on Editor is fine. but I can't compile for Player

    I choose "Use Net Core" which means that unity uses Microsoft compiler and .Net Core

    But some of class like System.threading.ThreadPool is not available.

    Recent Windows Fall update announces UWP supports .Net standard 2.0


    All theses problem is from unity itself? or any ideas?
     
  5. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    .NET standard 2.0 in Unity is not available for .NET scripting backend. You can switch to IL2CPP instead: it supports all the classes that you use in the editor.
     
  6. jeremy-off2

    jeremy-off2

    Joined:
    Sep 1, 2015
    Posts:
    5
    @Tautvydas-Zilys

    Thank you for your response.

    All my assumption is from this article( https://docs.microsoft.com/en-us/windows/uwp/gaming/missing-dot-net-apis-in-unity-and-uwp)

    even though I use .Net backend not Mono ( of course I can't), Unity use their own .Net flavor for compiling?

    Unity Documentation says

    When Compilation Overrides is set to:
    • None - C# files are compiled using Mono compiler.
    • Use .Net Core - C# files are compiled using Microsoft compiler and .NET Core, you can use Windows Runtime API, but classes implemented in C# files aren’t accessible from the JS language. Note: when using API from Windows Runtime, it’s advisable to wrap the code with ENABLE_WINMD_SUPPORT define, because the API is only avaible when building to Universal Windows Platform, and it’s not available in Unity Editor.
    • Use .Net Core Partially - C# files not located in Plugins, Standard Assets, Pro Standard Assets folders are compiled using Microsoft compiler and .NET Core, all other C# files are compiled using Mono compiler. The advantage is that classes implemented in C# are accessible from the JS language. Note: You won’t be able to test .NET Core API in Unity Editor, because it doesn’t have access to .NET Core, so you’ll be able to test the API only when running Universal Windows App.
    It says "Use .Net Core" use Microsoft compiler and its library instead of Mono Compiler

    and There is a SDK option you can choose in unity build settings. I don't understand what this is for


    Anyway I tired to compile with IL2CPP. compile is okay. but I can't open its project sin file. error message says "
    The application which this project type is based on was not found"
     
  7. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Unity uses the .NET flavour that UWP shipped with when you use .NET scripting backend. They call it "Microsoft.NETCore.UniversalWindowsPlatform, Version 5.0.0". It was not made up by Unity.

    IL2CPP scripting backend either uses .NET 3.5 or .NET 4.6 depending on "API Compatibility level" player setting.

    As for that "The application which this project type is based on was not found" error - what kind of Visual Studio do you have installed? You need either VS2015 or VS2017 with C++ compiler installed.

    This setting manages which Windows SDK is used when building your project. It is not related to .NET version.
     
  8. jeremy-off2

    jeremy-off2

    Joined:
    Sep 1, 2015
    Posts:
    5
    @Tautvydas-Zilys Thank you so much. you save my ass.

    The reason IL2CPP build is not opened in VS is that VS dosen't have C++ compiler. if I install it, the problem will be gone.

    But I still have a question. New visual studio 2017 supports UWP with .net standard 2.0. so is there anyway to select that library when I compile thorugh unity not using "Microsoft.NETCore.UniversalWindowsPlatform, Version 5.0.0"

    sorry to bother you. but I have no one to ask. sorry T.T
     
  9. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    As I mentioned before, there is no way to do it on .NET scripting backend. Since we're planning to drop .NET scripting backend next year anyway, we don't have any plans of introducing this functionality, unfortunately. You'll have to use IL2CPP if you want to access those classes.
     
  10. jeremy-off2

    jeremy-off2

    Joined:
    Sep 1, 2015
    Posts:
    5
    @Tautvydas-Zilys anyway thanks for your response.

    I love to use IL2CPP. but building UWP application for windows mixed reality with IL2CPP doesn't work.

    The official manual also doesn't recommend it too. T.T
     
  11. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Which part of it doesn't work? As far as I'm aware, it should work great.

    Can I have a link to that so we could get it fixed?
     
  12. jeremy-off2

    jeremy-off2

    Joined:
    Sep 1, 2015
    Posts:
    5
    @Tautvydas-Zilys yeah. you are right. IL2CPP is working perfectly. I didn't install "VC++ 2017 v141 toolset (x86,x64)" module in VS.