unity3d - Unity dll 在编辑器中工作,但无法独立加载
问题描述
我正在使用 TensorFlow.net 库来加载一些机器学习模型。在编辑器中一切正常。但是,当我构建应用程序(Windows 独立应用程序)时,不会加载 dll,因此无法对 TensorFlow 模型进行回调。最奇怪的是,当我将播放器构建为启用脚本调试的开发版本时,该 dll 工作正常并且被加载。我尝试将 dll 移动到根文件夹上的 .exe 旁边,但问题仍然存在。
关于如何解决这个问题的任何想法?
解决方案
我解决了这个问题,所以我发布答案,以防将来有人会发现这有帮助。
问题是我已经手动添加了 Unity 项目中的所有托管和本机 DLL,方法是通过 nugget 从 Visual Studio 下载 dll,编译,然后将文件复制到 assets/Plugins 文件夹中。这可能会创建一些他们在编辑器中工作的依赖项,但 dll 在构建应用程序时无法找到相应的包。
该解决方案使用 nuget2Unity 自动下载 NuGet 包并将它们转换为统一包。使用这个工具,我可以让它在编辑器和独立播放器中都工作。如果您遵循此解决方案并收到“卸载损坏的程序集”、“无法加载签名”等错误,只需将所有托管 dll 移动到 assets 下的同一 Plugins 文件夹中,错误就会消失。
我希望这个答案可能会派上用场。
推荐阅读
- scala - Akka Streams 中的“conditionalZip”运算符
- javascript - 将变量分配给 Animated.timing toValue
- postgresql - 将一张表从 RDS / postgres 加载到 Redshift
- python - 避免 Google Analytics 抽样(日期处理功能、查询分区和自动化)
- fonts - 我如何知道 TrueType 字体的实际字母大小?
- git - 为什么我在 ubuntu 20 中安装 git 时会出现这个奇怪的错误
- java - 如何让程序连续处理方法
- c++ - 按列而不是行存储矩阵
- android - 是否可以在 ObjectBox 中重定向调试日志?
- html - 如何使导航处于固定位置并且滚动就像在链接中一样