前言
最近在捣鼓如何将Unity项目部署到Hololens2上,但是遇到了各种报错,国内资料又较少,故自己整理了下。
问题一、ERROR:DEP6957
首先是报了以下错误(识别不到Hololens2):
DEP6957: Failed to connect to device '127.0.0.1' using Universal Authentication.
Please verify the correct remote authentication mode is specified in the project debug settings.
COMException - No connection could be made because the target machine actively refused it.
(Exception from HRESULT: 0x8007274D) [0x8007274D]
结果发现是自己的TypeC线有问题,最后换了根TypeC或者用WIFI调试即可。
问题二、部署加载不了dll
在部署的时候一直报以下错误:
查看控制台报的是以下错误信息:
'Hololens2.exe' (Win32) : Loaded 'C:\Windows\System32\ntdll.dll'.
'Hololens2.exe' (Win32) : Loaded 'C:\Windows\System32\KernelBase.dll'.
'Hololens2.exe' (Win32) : Loaded 'C:\Windows\System32\combase.dll'.
'Hololens2.exe' (Win32) : Loaded 'C:\Windows\System32\ucrtbase.dll'.
'Hololens2.exe' (Win32) : Loaded 'C:\Windows\System32\rpcrt4.dll'.
'Hololens2.exe' (Win32) : Loaded 'C:\Windows\System32\kernel32legacy.dll'.
MRTK Hololens.exe exit 3221225781 (0xc0000135) 'cant find the dll'。
(找不到依赖的dll)
如果正常的话是报什么信息呢?我在 外网搜了下,如果一切正常的话是以下信息:
'Hololens2.exe' (Win32) : Chargé 'C:\Windows\SysWOW64\ntdll.dll'.
'Hololens2.exe' (Win32) : Chargé 'C:\Windows\SysWOW64\KernelBase.dll'.
'Hololens2.exe' (Win32) : Chargé 'C:\Windows\SysWOW64\combase.dll'.
'Hololens2.exe' (Win32) : Chargé 'C:\Windows\SysWOW64\ucrtbase.dll'.
'Hololens2.exe' (Win32) : Chargé 'C:\Windows\SysWOW64\rpcrt4.dll'.
'Hololens2.exe' (Win32) : Chargé 'C:\Windows\SysWOW64\kernel32legacy.dll'.
'Hololens2.exe' (Win32) : Chargé 'P:\WindowsApps\Microsoft.VCLibs.140.00_14.0.29231.0_x86__8wekyb3d8bbwe\vccorlib140_app.dll'.
可以看到,我就是卡在了识别不到vccorlib140_app.dll'
这个地方。
'P:\WindowsApps\Microsoft.VCLibs.140.00_14.0.29231.0_x86__8wekyb3d8bbwe\vccorlib140_app.dll'.
故我们到对应路径找这个dll文件(这里的P指的是系统变量里的Program File的路径):
打开WindowsApps
的时候还表示我没有权限,根据 更改WindowsApps权限教程 ,我们成功地进入了到了C:/Program Files/WindowsApps路径下,且可以看到对应路径下的dll文件并没有缺失:
(如果你的路径下没有这些dll文件的话,可以去官网下载:VC包 重新修复一下,也可以去C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0
路径下看看有没有可以安装的包)
既然我已经有了这些dll,那为什么会识别不到呢?
我这时候突然想起在最开始配电脑的时候,为了防止一些文件默认安装到C盘的Program File里,把注册表里默认Program File的路径改了,导致了现在VS识别不到C盘下Program File的文件!
故运行WIN+D -> regedit-> 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
可以看到:
果然是自己的环境变量路径设置有问题,将其改成C盘就可以了:
最后,重启下电脑,重新打开visual studio 往Hololens里写数据,问题就解决了。
看来经常搞编程的还是不要更改Program File路径为好,不然在使用微软官方一些软件以及Nvidia官方的nvidia geforce experience时会出现路径错误的情况。