VisualStudio 2017中构建过程中发生System.IO.IOException

时间:2019-02-15 13:28:30

标签: visual-studio build visual-studio-2017 hololens

我正在使用Unity 2018.2.20f1开发Hololens应用程序。我正在毫无问题地从Unity构建UWP应用程序。但是,在VisualStudio 2017(社区版)中打开生成的解决方案并尝试对其进行构建后,构建过程将失败,并出现以下错误:

Severity    Code    Description Project File    Line    Suppression State
Error   MSB3073 The command ""D:\Projects\VSProjects\VirtualPrague\Il2CppOutputProject\\IL2CPP\build\il2cpp.exe" --libil2cpp-static --compile-cpp -architecture=x86 -configuration=Release -platform=winrt -outputpath="D:\Projects\VSProjects\VirtualPrague\\build\bin\Win32\Release\GameAssembly.dll" --data-folder="D:\Projects\VSProjects\VirtualPrague\\build\bin\Win32\Release\\" -cachedirectory="D:\Projects\VSProjects\VirtualPrague\\build\obj\il2cppOutputProject\Win32\Release\\" -generatedcppdir="D:\Projects\VSProjects\VirtualPrague\Il2CppOutputProject\\Source" --additional-defines=WINDOWS_UWP --additional-defines=UNITY_UWP --additional-defines=UNITY_WSA_10_0 --additional-defines=UNITY_WSA --additional-defines=UNITY_WINRT --additional-defines=PLATFORM_WINRT -dotnetprofile=unityjit -verbose --map-file-parser="D:\Projects\VSProjects\VirtualPrague\Il2CppOutputProject\\IL2CPP\MapFileParser\MapFileParser.exe"" exited with code -532462766.   Il2CppOutputProject C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets   44  

Severity    Code    Description Project File    Line    Suppression State
Error   LNK1181 cannot open input file 'D:\Projects\VSProjects\VirtualPrague\build\bin\Win32\Release\GameAssembly.lib'  VirtualPrague   D:\Projects\VSProjects\VirtualPrague\VirtualPrague\LINK 1   

在输出中有多个例外,类似于此例外:

1>il2cpp.exe didn't catch exception: System.IO.IOException: The process cannot access the file 'C:\Users\dev\AppData\Local\Temp\tmpDE97.tmp' because it is being used by another process.
1>   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
1>   at System.IO.File.InternalDelete(String path, Boolean checkHost)
1>   at Unity.IL2CPP.Shell.Execute(ExecuteArgs executeArgs, IExecuteController controller)
1>   at Unity.IL2CPP.Building.CppProgramBuilder.PostprocessObjectFiles(HashSet`1 objectFiles, CppToolChainContext toolChainContext)
1>   at Unity.IL2CPP.Building.CppProgramBuilder.Build(IBuildStatistics& statistics)
1>   at il2cpp.Program.DoRun(String[] args)
1>   at il2cpp.Program.Run(String[] args)
1>   at il2cpp.Program.Main(String[] args)

例外是相同的,但是是针对不同的文件抛出的。我试图重新安装Visual Studio,并设法建立了一个版本。第二天,我打开电脑,然后又回来了。我停止了所有VS实例并从任务管理器中进行了处理,从Temp文件夹中删除了所有文件,并成功进行了几次构建。然后这个错误又回来了。

据我所知,在构建过程中,Visual Studio创建了一些* .tmp文件,由于某种原因,它认为另一个进程正在使用它。

有什么想法为什么会发生以及如何解决?

非常感谢!

编辑:所以这是我到目前为止所做的(更多的是解决而不是解决方案)

  1. 卸载与统一
  2. 使用ccleaner和Advanced Uninstaller Pro清除注册表
  3. 安装vs和Unity

每次我想建立一个版本时,

  1. 关闭所有vs实例
  2. 清除Temp文件夹(C:\ Users \ dev \ AppData \ Local \ Temp)
  3. 删除以前的vs解决方案
  4. 从Unity构建
  5. 以管理员身份运行
  6. 通过vs构建并部署解决方案

它在大多数时间都有效。另外,有时更改解决方案配置(从调试到发行,反之亦然)也有帮助。

0 个答案:

没有答案