Hololens2开发--Unity Switch Platform UWP出现IOException: Win32 IO returned 234

太坑了,这个环境配置了一个星期,折磨的不行,不知道接下去还有多少坑,长路漫漫无休矣

错误:

IOException: Win32 IO returned 234. Path: C:\Program Files (x86)\Windows Kits\10\References\10.0.18362.0\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract\2.0.0.0\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd" or "Temp\StagingArea\Data\Managed\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd
System.IO.File.Copy (System.String sourceFileName, System.String destFileName, System.Boolean overwrite) (at <599589bf4ce248909b8a14cbe4a2034e>:0)
PostProcessWinRT.CopyFrameworkAssemblies () (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessWinRT.cs:1823)
PostProcessWinRT.Process () (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessWinRT.cs:164)
UnityEditor.UWP.BuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/ExtensionModule.cs:91)
Rethrow as BuildFailedException: Exception of type 'UnityEditor.Build.BuildFailedException' was thrown.
UnityEditor.UWP.BuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/ExtensionModule.cs:95)
UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at D:/unity/Editor/Mono/Modules/DefaultBuildPostprocessor.cs:27)
UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at D:/unity/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:281)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at D:/unity/Modules/IMGUI/GUIUtility.cs:179)

原因:

下载好的Win10 SDK中的一个文件名太长了,超出了Unity程序设定的字节导出范围。如果先安装VS,再安装Windows SDK会发现Windows SDK的文件会默认在C:\Program Files (x86)\Windows Kits下,且不可修改。

解决方法:

网上千篇一律的说了下面这两种方法,确实这两个方法都可以解决Unity Switch Platform to UWP build出现的问题,能够成功生成文件,但这种方法在VS生成的时候依旧会报错,并不能解决实质性的问题(有人确实也可以编译成功,不知道为什么,反正我是不行)。

1、报错路径:C:\Program Files (x86)\Windows Kits\10\References\10.0.18362.0
\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract,修改Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract的文件名为a,或不带中文的字母和数字都可以。

2、报错路径:C:\Program Files (x86)\Windows Kits\10\References\10.0.18362.0
\Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract,删除Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract文件夹里面的Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd文件

真正解决方法:

1、先安装Windows SDK,我安装的版本是:https://developer.microsoft.com/zh-cn/windows/downloads/windows-10-sdk/,注意安装路径不要选择默认路径C:\Program Files (x86)\;但之后安装VS勾选通用windows平台开发时会包含win10 SDK,所以电脑上会出现两个SDK的版本,这个没关系;

2、再安装VS2019;

3、安装Unity,我安装的版本是:Unity 2019.3.15f1;

最后在VS生成的时候又报了一个错误:MSB3774:找不到WindowsMobile SDK not found version=10.0.19041.0(解决方法参考https://blog.csdn.net/qq_41905133/article/details/88983431

只要将刚刚安装好的Windows kits下的文件复制一份到C:\Program Files (x86)\Windows Kits\下就编译成功了,这一步我也不知道为什么,反正到这一步是没有报错了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值