首页 > 解决方案 > Unity dll 在编辑器中工作,但无法独立加载

问题描述

我正在使用 TensorFlow.net 库来加载一些机器学习模型。在编辑器中一切正常。但是,当我构建应用程序(Windows 独立应用程序)时,不会加载 dll,因此无法对 TensorFlow 模型进行回调。最奇怪的是,当我将播放器构建为启用脚本调试的开发版本时,该 dll 工作正常并且被加载。我尝试将 dll 移动到根文件夹上的 .exe 旁边,但问题仍然存在。

关于如何解决这个问题的任何想法?

标签: unity3d

解决方案


我解决了这个问题,所以我发布答案,以防将来有人会发现这有帮助。

问题是我已经手动添加了 Unity 项目中的所有托管和本机 DLL,方法是通过 nugget 从 Visual Studio 下载 dll,编译,然后将文件复制到 assets/Plugins 文件夹中。这可能会创建一些他们在编辑器中工作的依赖项,但 dll 在构建应用程序时无法找到相应的包。

该解决方案使用 nuget2Unity 自动下载 NuGet 包并将它们转换为统一包。使用这个工具,我可以让它在编辑器和独立播放器中都工作。如果您遵循此解决方案并收到“卸载损坏的程序集”、“无法加载签名”等错误,只需将所有托管 dll 移动到 assets 下的同一 Plugins 文件夹中,错误就会消失。

我希望这个答案可能会派上用场。


推荐阅读