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

我已遵循Microsoft在Microsoft Holographic – Academy教程中的多个项目下列出的确切步骤。 我完成了所有这些工作,所有这些工作都很好,从创建到导出和测试。 这是使用Unity3D / C#,它被编译成Visual Studio Solution(sln)文件。

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

现在,当我尝试构建时 – 我得到一个奇怪的错误,无法找到c-Sharp.firstpass文件(我所理解的导出/交叉编译的dll)。

现在,即使是成功构建的项目也不会再构建。

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

我尝试过的事情:

  • 创建一个新项目并将所有以前的资产粘贴到其中 – 然后重建。
  • 清理VS项目
  • 重新启动我的电脑
  • 重启Unity3D
  • 卸载并重新安装Visual Studio(推荐版本)
  • 卸载并重新安装Unity3D(推荐版本)
  • 再次按照教程逐步完成
  • 搜索StackOverflow并尝试每个解决方案,其问题与我的问题非常相似
  • 问答Unity Answers(2天前)
  • 将项目文件构建到不同的驱动器,文件夹,位置等。
  • 不要放弃

似乎有一个引用问题 – 所以我也没有引用/引用上面提到的文件。

感谢您的帮助。 需要说明的是,这是为Microsoft Hololens开发的Windows 10 Universal应用程序。 但是,在这种情况下,设备本身似乎与构建过程几乎没有任何关系,除了定位它。

最好,

Addyarb

错误:

命令“”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”“退出代码1. Assembly-CSharp- firstpass D:\ Development \ Hololens Projects \ Planetarium \ UWP \ Assembly-CSharp-firstpass \ Assembly-CSharp-firstpass.csproj 180

无法找到元数据文件’D:\ Development \ Hololens Projects \ Planetarium \ UWP \ Assembly-CSharp-firstpass \ bin \ x86 \ Release \ Assembly-CSharp-firstpass.dll’Assembly-CSharp D:\ Development \ Hololens Projects \天文馆\ UWP \大会-CSHARP \ CSC

无法找到元数据文件’D:\ Development \ Hololens Projects \ Planetarium \ UWP \ Assembly-CSharp \ bin \ x86 \ Release \ Assembly-CSharp.dll’Planetarium D:\ Development \ Hololens Builds \ PlanetApp \ Planetarium \ CSC

–update —

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


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

始终从HoloLens论坛上提供的链接下载安装程序,因为常规的Unity版本不同。 您需要为HoloLens构建的特殊Unity3D版本

安装新版本时,请始终安装在比上一个版本更新的位置。 安装Unity后,请始终在上面链接的同一页面上安装可以找到的UWP运行时(UWP运行时是专门为每个版本构建的,因此始终在Unity之后重新下载和安装)。 安装UWP Runtime时,请确保为Unity 3D安装文件夹选择正确的位置(您刚安装的文件夹)。

如果一切都安装正确,您的构建应该重新开始工作。

大约3天没有结果,我工厂重置hololens和我正在使用的计算机。 重新安装所有相关软件后,我的构建工作正常。 我保存到相同的驱动器/文件夹和一切。

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

这当然不是处理这个问题的“最佳”方法,因为我不能只针对每个bug重置工厂。 但我没有接近解决这个问题,而且时间就是金钱。

Goodluck,谢谢你的答案!

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

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

我只是想把它放在那里,因为我经历了所有其他的答案,仍然无法让它工作。 在玩了2天之后,我决定抓住我为Unity / HoloLens项目下载的所有示例并重新开始。 我读到某个地方最新版本的Unity与HoloLens一起工作,其他人指出Unity 5.4和5.6中的项目在新版本打开后不起作用。 有人建议从那时起元数据文件必须已更改。 我下载了目前2017.2.0b7的最新版本的unity,以及“附加下载”下的后续内容,我去了Windows组件安装程序并下载了Windows Store(.NET)目标支持。 正如@AlexDrenea所说,这是重要的一步。 后来我确保安装了Visual Studio 2017,最新版本,并安装了所有其他function。 我必须重新运行安装程序并确保选择“通用Windows平台开发”和“使用Unity进行游戏开发”。

至于项目,我从头开始修改构建设置,就像我在在线教程中找到的那样,但有一点不同。 我没有检查“Unity C#项目”设置。 经过一些研究,我发现这不需要设置。 之后,我能够无错误地构建模拟器和设备

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

在我看来,你遇到的问题是Unity3D和Visual Studio 2017之间不兼容(15.3)请按照以下链接查看此问题的参考。 Hololens Build Failing – 命令AssemblyConverter.exe退出,代码为1

解决方案:

  • 从上面的链接安装补丁
  • 卸载visual studio 2017(15.3)并安装visual studio 2015或Visual Studio 2017.2
  • 修改UAP版本,因为此用户具有Hololens设备构建无法找到Assembly-CSharp-firstpass.dll