microsoft / Windows-appsample-marble-maze

A 3D DirectX game for the Universal Windows Platform.
MIT License
111 stars 65 forks source link

Unable to deploy to XDK with Microsoft Visual Studio 2017 #3

Closed mstorch closed 7 years ago

mstorch commented 7 years ago

Was able to build and deploy for x64 using Visual Studio 2017 on a local Windows 10 PC but was unable to deploy to the remote Xbox One (XDK). The game built and was installed to the Xbox One just fine, but upon launching the following error message was displayed:

A dependent dll was not found

I found these two other developer posts, but I believe they were using Visual Studio 2015 instead. I also did not see WIN32_LEAN_AND_MEAN set as a preprocessor flag in the GitHub project, so I don't believe that is the issue. I retargeted the solution to platform tools v141 and tried the latest two Windows SDKs 15063 and 14393.

https://social.msdn.microsoft.com/Forums/windowsapps/en-US/2c06b874-9ee0-4a81-beea-a03278278aa1/uwpccxxbox-one-app-crashes-on-xbox-one-0xc0000135-a-dependent-dll-was-not-found?forum=wpdevelop

https://social.msdn.microsoft.com/Forums/windowsapps/en-US/92ea9bfa-2968-4cb6-9c36-d0e70d09064d/uwpxbox-a-dependent-dll-was-not-found?forum=wpdevelop

Please let me know if any additional information would be helpful to assist in debugging this issue. If someone could confirm they also encounter errors deploying this sample to Xbox One (XDK) with Visual Studio 2017, that would also be helpful information.

For now, I am attempting to uninstall VS 2017 and will try again with a fresh install of VS 2015.

Thanks, Mark

mstorch commented 7 years ago

It seems this also doesn't work for me in Visual Studio 2015. I just performed a fresh install and I am using platform toolset v140, x64 architecture. Windows SDK 10.0.14393. Everything works fine deploying to the local Windows 10 machine, but I get the following errors deploying to Xbox One (XDK):

'MarbleMaze_VS2015.exe' (Win32): Loaded 'D:\DevelopmentFiles\Microsoft.SDKSamples.MarbleMaze.CPPVS.Debug_x64.mark_\MarbleMaze_VS2015.exe'. Symbols loaded. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\combase.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\kernel32legacy.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\bcryptprimitives.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\d2d1.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\d3d11.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\advapi32legacy.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\sspicli.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\MinUser.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\gdi32min.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\win32u.dll'. Cannot find or open the PDB file. 'MarbleMaze_VS2015.exe' (Win32): Loaded 'C:\Windows\System32\dxgi.dll'. Cannot find or open the PDB file. The thread 0x5f4 has exited with code -1073741515 (0xc0000135). The thread 0xc98 has exited with code -1073741515 (0xc0000135). The program '[5736] MarbleMaze_VS2015.exe' has exited with code -1073741515 (0xc0000135) 'A dependent dll was not found'.

abbycar commented 7 years ago

Thanks for bringing this issue to our attention! I just attempted to remote deploy from Visual Studio 2017 to an Xbox One without any luck. I'll investigate and see if we can get this resolved soon. :)

abbycar commented 7 years ago

Following back up on this.

In its current state, this sample isn't meant to run on Xbox. One block is that it uses XINPUT which is not a valid API for UWP. By updating the sample to use Windows.Gaming.Input, you'd be a step closer to getting it deployed to an Xbox One.

This page could be a helpful reference if you do attempt to make this work for Xbox: UWP features not yet supported on Xbox

Thanks! Abby

abbycar commented 7 years ago

One other piece of info. While the above suggestion is a long term fix for that particular issue, you could also change the link pointing to xinput.lib to xinputuap.lib. This library is an adapter that uses Windows.Gaming.Input.