gpt4 book ai didi

c# - Unity找不到其他DLL的DLL依赖关系(均在Assets文件夹中)

转载 作者:行者123 更新时间:2023-12-03 13:42:07 30 4
gpt4 key购买 nike

背景信息(可能是相关的):

  • 将Unity 2017.2与“脚本运行时版本”设置为“实验(等效于.NET 4.6)”使用
  • 在Visual Studio 2017中(而非MonoDevelop)编写代码

  • 我有一个Unity项目,该项目直接使用了第三方DLL(“库A”),我已将其添加到项目的Assets文件夹中。库A依赖于另一个DLL,即“库B”,我也已将其添加到Assets文件夹中。 Unity项目中的任何脚本均未使用库B。库A和B都是用C#和目标.NET 4编写的,即它们都是托管代码。

    一旦添加到Assets文件夹中,在Visual Studio中打开项目,并且两个库的“Copy Local”都设置为“True”时,库A和库B都将列在“引用”下(尽管我不知道Unity是否使用该库)。属性(property))。

    但是,在Unity编辑器中运行项目时,对库A的各种调用都会引发异常,表明库B不可用。我能够使其正常工作的唯一方法是将库B的副本放置在 C:\Program Files\Unity\Editor(包含Unity.exe的目录,Unity编辑器可执行文件的目录)中。

    我在其他非Unity项目中使用了库A和B,从没有任何问题(只要被引用,Visual Studio就会将它们都复制到输出目录中)。我是否缺少一个必需的特定于Unity的步骤来告诉它需要库B?

    最佳答案

    我只是想分享我如何完成这项工作。我正在使用Unity 2019.2.10f1。
    我的项目中有许多自己和第三方托管的dll文件,并将它们全部复制到ProjectFolder\Assets\Resources\
    而且我从来没有遇到任何问题,可以调出任何一个库,或者那些库互相调用。
    可能的问题是,由于您的第二个库(库B)没有被任何脚本引用,因此Unity不会捆绑它并使它在调试/运行时可用。
    根据我的经验,我发现如果要保留某些内容(任何未引用的 Assets ,它们可能在运行时动态消耗),请将其粘贴在Assets的资源子文件夹中。
    第二种选择可能是构造对第二个“库B”的虚拟调用(不执行任何操作,也许构造和转储),以便Unity认为它是必需的并将其包含在您的构建中。
    不确定是否有帮助,但是祝您好运!

    关于c# - Unity找不到其他DLL的DLL依赖关系(均在Assets文件夹中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971893/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com