Hololens 应用程序将不再构建 - 引用元数据文件丢失且 c-Sharp.firstpass 未找到

Hololens Apps Will No Longer Build - Cites Metadata file missing and c-Sharp.firstpass not found

我已按照 Microsoft 在其 Microsoft Holographic - Academy 教程中多个项目下列出的确切步骤进行操作。我完成了所有这些,并且从创建到导出和测试,它们都工作得很好。这是使用 Unity3D / C# 编译成 Visual Studio 解决方案 (sln) 文件。

完成这些之后,我继续构建我自己的应用程序 - 它也构建得很好。没问题!

现在,当我尝试构建时 - 我收到一个奇怪的错误,即找不到 c-Sharp.firstpass 文件(据我所知是 exported/cross-compiled dll)。

现在连构建成功的项目都不会再构建了

我会在下面粘贴确切的错误。

我尝试过的事情:

似乎存在引用问题 - 所以我也 unreferenced/referenced 提到的文件。

感谢您提供的所有帮助。需要明确的是,这是为 Microsoft Hololens 开发的 Windows 10 通用应用程序。但是,在这种情况下,设备本身似乎与构建过程无关,除了针对它之外。

最佳,

Addyarb

错误:

The command ""D:\Development\Hololens Builds\PlanetApp\Unity\Tools\SerializationWeaver\SerializationWeaver.exe" "D:\Development\Hololens Projects\Planetarium\UWP\Assembly-CSharp-firstpass\bin\x86\Release\Unprocessed\Assembly-CSharp-firstpass.dll" -pdb -verbose -unity-engine="D:\Development\Hololens Builds\PlanetApp\Planetarium\Unprocessed\UnityEngine.dll" -unity-networking=D:\Development\Hololens Builds\PlanetApp\Planetarium\Unprocessed\UnityEngine.Networking.dll "D:\Development\Hololens Projects\Planetarium\UWP\Assembly-CSharp-firstpass\obj\x86\Release\x86\Release"" exited with code 1. Assembly-CSharp-firstpass D:\Development\Hololens Projects\Planetarium\UWP\Assembly-CSharp-firstpass\Assembly-CSharp-firstpass.csproj 180

Metadata file 'D:\Development\Hololens Projects\Planetarium\UWP\Assembly-CSharp-firstpass\bin\x86\Release\Assembly-CSharp-firstpass.dll' could not be found Assembly-CSharp D:\Development\Hololens Projects\Planetarium\UWP\Assembly-CSharp\CSC

Metadata file 'D:\Development\Hololens Projects\Planetarium\UWP\Assembly-CSharp\bin\x86\Release\Assembly-CSharp.dll' could not be found Planetarium D:\Development\Hololens Builds\PlanetApp\Planetarium\CSC

--更新---

我之前的回答仍然适用,所以我不会删除它。但要解决此特定问题,请确保将生成的应用放在 不包含任何空格 的文件夹结构中。 SerializatioWeaver.exe 中似乎存在错误,无法正确读取路径并且无法找到必要的 Unity 扩展。


确保您使用的是为 HoloLens 构建的正确 Unity3D 版本。 始终使用 HoloLens 学院论坛上宣布的最新兼容版本 - 在撰写本文时,该版本为 5.4 Beta 18,您可以下载它 here

始终从 HoloLens 论坛上提供的 link 下载安装程序,因为常规的 Unity 版本不同。您需要为 HoloLens

构建的特殊 Unity3D 版本

安装新版本时,始终安装在比以前版本新的位置。安装 Unity 后,始终安装 UWP 运行时,您可以在我上面 link 编辑的同一页面上找到它(UWP 运行时是专门为每个版本构建的,因此总是在 Unity 之后重新下载和安装)。安装 UWP 运行时时,请确保 select Unity 3D 安装文件夹的正确位置(您刚刚将 unity 安装到的文件夹)。

如果一切安装正确,您的构建应该会再次开始工作。

我今天遇到了同样的问题,通过将整个项目移动到路径较短的文件夹中解决了这个问题。这可能不是您的问题,但出于某种原因它对我有用。您还必须找到 .sln 文件中的所有绝对路径,并更改它们以匹配新的较短路径,以便加载您的项目。如果我没记错的话,.userprefs 文件夹中还有一个路径你必须更改。

祝你好运!希望这对你有用,虽然我什至不明白为什么它对我有用。

大约 3 天没有结果后,我将全息镜头和我正在使用的计算机恢复出厂设置。重新安装所有相关软件后,我的构建工作正常。我保存到相同的 drives/folders 和所有内容。

如果你采用这种方法,记得备份你的工作!

这当然不是 'best' 处理此问题的方法,因为我不能为每个错误都恢复出厂设置。但我离解决这个问题还差得很远,好吧,时间就是金钱。

祝你好运,谢谢你的回答!

我通过使用适用于 Unity 的 HoloLens 项目套件 https://github.com/microsoft/HoloToolkit-Unity 而不是从头开始,修复了生成的 SLN 中类似的 DLL 缺失问题。很明显,但让我走了。

我只是想把它放在那里,因为我检查了所有其他答案,但仍然无法正常工作。在玩了 2 天之后,我决定把我为 Unity/HoloLens 个项目下载的所有示例都抓起来,然后重新开始。我在某处读到最新版本的 unity 可与 HoloLens 一起使用,其他人指出 Unity 5.4 和 5.6 中的项目在新版本中打开后将无法运行。有人建议元数据文件一定是从那以后发生了变化。我下载了最新版本的unity,目前是2017.2.0b7,然后在"Additional Downloads"下我去了Windows Component Installers并下载了Windows Store (.NET) Target Support。正如@AlexDrenea 提到的,这是重要的一步。后记我确保 Visual Studio 2017 已安装,是最新的,并且安装了所有附加功能。我必须重新 运行 安装程序并确保选择了 "Universal Windows Platform development" 和 "Game development with Unity"。

至于项目,我从头开始,按照在线教程中的相同方式修改了构建设置,但有一点不同。我没有检查 "Unity C# projects" 设置。经过一些研究,我发现这不需要设置。之后,我能够毫无错误地构建到模拟器和设备

tldr;在使用 Unity 和 HoloLens 时不要使用旧的示例或项目,始终使用与 HoloLens 兼容的最新版本的 Unity 和最新版本的 VisualStudio,并从头开始项目。除非它们适用于您的版本。

在我看来,您遇到的问题是 Unity3D 与 Visual Studio 2017 (15.3) 之间的不兼容性 请按照以下 link 查看此问题的参考资料。

解决方案:

  • 安装上面的补丁link
  • 卸载 visual studio 2017 (15.3) 并安装 visual studio 2015 或 Visual Studio 2017.2
  • 修改 UAP 版本,因为该用户有Hololens device build fails to not finding Assembly-CSharp-firstpass.dll