首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gRPC对HoloLens 2的Windows支持

gRPC对HoloLens 2的Windows支持
EN

Stack Overflow用户
提问于 2020-06-22 19:25:55
回答 1查看 1K关注 0票数 2

我想要构建我的统一-AR应用程序运行在HoloLens 2上。我们使用gRPC进行HoloLens设备和桌面PC之间的进程间通信以传递信息。HoloLens 2具有ARM处理器体系结构,而gRPC不为其提供grpc_csharp_ext.dll。

有没有人有同样的问题,你是如何解决的?

*编辑:我在应用程序开发中使用了统一,所以我只限于.NET框架和.NET标准解决方案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-10 14:47:17

这是我在grpc问题跟踪器这里这里中注释中的合并副本/粘贴。

x86**,编辑:我在 ** x64 arm64 on Github.上发布了一个带有预编译库的统一项目

针对这个问题,我的解决办法是编译一个没有用于WSA构建的Mono和DllImportsFromStaticLib的DllImportsFromStaticLib,以及一个grpc_charp_ext.dll的ARM64版本,它不是官方统一包的一部分,而是HoloLens 2所必需的。

  • 下载一个每日构建统一包(例如 1)并解压缩它。这是1.25-dev版。我尝试过最近的1.26-dev每日构建,但不幸的是,grpc_charp_ext.dll没有正确地加载到这些构建的HoloLens模拟器中。我还尝试了vcpkg必须提供的最新版本(1.29.1),但不幸的是,还没有解决Protobuf/System.Memory版本冲突(#22251)。
  • 克隆grpc并签出每日构建提交:
    • 如果使用上述构建,则为git checkout 8853754e8caa0b2ffb3ab0e25514f3f7612ebf7a

  • init子模块:git submodule update --init
  • 如果您和我一样,并且不想安装过时的构建工具,可以在tools\run_tests\helper_scripts\pre_build_csharp.bat.中更改使用过的Visual版本我使用的是"Visual 15 2017“,而不是"Visual 14 2015”。
  • 构建grpc_charp_ext
    • python tools/run_tests/run_tests.py -l csharp -c opt --build_only

  • 如果一切顺利,那么当Python试图构建Microsoft.Build.Tasks.Git.targets项目时,您将遇到一些C#异常。这可能与一些过时的SourceLink依赖或其他相关。尽管如此,该项目将在Visual 2019中构建得很好。
  • 应用grpc-no-static.patch.txt
  • 打开Grpc.sln并编译发行版构建
  • 将生成的Grpc.Core.dll复制到下载包的Plugins/Grcp.Core/lib/net45 45_wsa中
  • 如果您遵循了这些步骤,那么您应该可以使用1,现在是使其与HoloLens2一起工作的部分。
  • 克隆vcpkg并签出标签2020.01。我不知道签出2020.01是否真的是必要的,但它包含的grpc版本最接近1.25gcpc。
  • git clone https://github.com/microsoft/vcpkg.git
  • git checkout 2020.01
  • 您必须编辑grpc端口才能生成正确的版本。下载00001-fix-uwp.patch.txt00002-static-linking-in-linux.patch.txtportfile.cmake.txt,删除.txt结尾并覆盖位于ports\grpc的文件。
  • 将插件文件夹复制到您的联合项目中
  • 确保Grpc.Core.dll文件夹中的net45_wsa仅用于WSA生成,而原始构建排除了net45_wsa中的Grpc.Core.dll:

  • 确保grpc_charp_ext在Grpc.Core/运行时/win/x86和x64中正确导出(正确的arch):

  • 接下来,您必须支持一个三胞胎配置:下载arm64-windows-static.cmake.txt,重命名它并将其放入triplets\community中。
  • 现在引导vcpkg并用arm64-windows-static三重态构建protobuf:x86-windowsgrpc
    • .\vcpkg.exe install protobuf:x86-windows
    • .\vcpkg.exe install grpc --triplet arm64-windows-static

  • 将生成的文件buildtrees\grpc\arm64-windows-static-rel\grpc_csharp_ext.dll复制到插件文件夹(Grpc.Core\runtimes\win\arm64)中,并设置此DLL的目标:

  • 导出并构建项目
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62522023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档