Rei*_*ror 9 c# dll dependencies unity-game-engine
背景信息(可能相关):
我有一个直接使用第三方 DLL(“库 A”)的 Unity 项目,我已将其添加到项目的 Assets 文件夹中。库 A 依赖于另一个 DLL,即“库 B”,我也将其添加到 Assets 文件夹中。库 B 未被 Unity 项目中的任何脚本使用。库 A 和 B 都是用 C# 编写的,目标是 .NET 4,也就是说,它们都是托管代码。
添加到 Assets 文件夹后,当在 Visual Studio 中打开项目时,库 A 和 B 都列在“参考”下,并且“Copy Local”都设置为“True”(虽然我不知道 Unity 是否使用那个财产)。
但是,在 Unity 编辑器中运行项目时,对库 A 的各种调用都会引发异常,表明库 B 不可用。我能够让它工作的唯一方法是将库 B 的副本放入C:\Program Files\Unity\Editor
(包含 Unity.exe 的目录,Unity 编辑器可执行文件)。
我在其他非 Unity 项目中使用过库 A 和 B,并且从未遇到任何问题(只要引用它们,Visual Studio 就会将它们都复制到输出目录中)。我是否缺少告诉它需要库 B 所必需的特定于 Unity 的步骤?
小智 0
我只是想分享我是如何完成这件事的。顺便说一句,我正在使用 Unity 2019.2.10f1。
我的项目中有许多我自己和第三方托管的 dll 文件,我将它们全部复制到 ProjectFolder\Assets\Resources\
我从来没有遇到过任何调用任何库或这些库相互调用的问题。
也许问题在于,由于任何脚本都没有引用您的第二个库(库 B),因此 Unity 不会将其捆绑并使其在调试/运行时可用。
根据我的经验,我发现如果您希望在构建中保留某些内容(任何可能在运行时动态消耗的未引用资产),请将其粘贴到Assets 的Resources子文件夹中。
第二个选项可能是构建对第二个“库 B”的一些虚拟调用(不执行任何操作,可能构建并转储),以便 Unity 认为需要它并将其包含在您的构建中。
不确定这是否有帮助,但祝你好运!