gpt4 book ai didi

c# - Unity3d DllNotFoundException 显示我的计算机上不存在的目录

转载 作者:行者123 更新时间:2023-11-28 01:20:20 28 4
gpt4 key购买 nike

我正在尝试在我的统一项目中使用一个 Assets ,它有一个 c# script.cs,它在游戏开始时调用并初始化插件。但是当我按下播放按钮时,unity 不断抛出 DllNotFoundException

image of exception

这是我玩游戏时出现的错误图片(抱歉,由于我签署了使用条款,我不得不发送图片并审查某些部分)

错误说

at "C:/Users/thatcompany/source/repos/plugin-name/plugin-name-api/a-class-in-plugin.cs:192"

而且这条路径在我的电脑上根本不存在

此 Assets 适用于 unity3d,是用 C# 和 C++ 编写的。用于初始化的代码是用 c# 编写的,它使用了一个也是用 c# 编写的 DLL 文件,而该 DLL 文件使用了另一个用 c++ 编写的 DLL 文件,并且具有

[DllImport("DllThatUnityCantFind", EntryPoint = "name_initialize", CharSet = CharSet.Ansi)]
public static extern IntPtr Name_initialize(int argc, string[] argv);

这是我发现对这个问题唯一有用的代码行,因为其他行甚至没有机会执行。

我已经阅读了本网站和其他网站上的所有相关问题并尝试了这些答案,

  • 将DLL文件放在项目的根目录

  • 将 DLL 文件放入 unity 编辑器主文件夹

  • 将DLL文件分离到不同目录

  • 将依赖的 DLL 文件放入项目的根目录,同时将另一个放在插件文件夹中,反之亦然

  • 将脚本运行时版本切换到 3.5 和 4.x

  • 更改 API 功能级别

  • 创建一个新项目

  • 重启编辑器

  • 以管理员身份打开 unity 编辑器

  • 将 unity 更新到测试此插件的版本

  • 更新unity到最新版本

  • 将 DLL 文件的名称更改为 name.dll.dll 而不是 name.dll

  • 更改插件的平台设置

  • 安装所有不同版本的 VC redist 2005-2019,32 位和 64 位

  • 更新到最新版本的 .net 核心和 .net 框架

DLL Import Settings

unity无法导入的DLL文件也显示警告信息

dependency walker

unity找不到的dll文件,在dependency walker

最佳答案

该 DLL 链接到 VS 2015 调试运行时 (MSVCP140D.dll)。除非您的计算机上安装了具有 C++ 工作负载的 Visual Studio 2015,否则不会加载 DLL。

这是 .DLL 中的错误 - 分发的 DLL 不应针对调试 C++ 运行时进行编译。我建议联系您从中获得此 DLL 的人员,并要求他们在“发布”配置中重建它。当你这样做时,你可能还想要求他们静态链接 CRT,否则你必须在你尝试使用该 DLL 的机器上安装 VS 2015 C++ 可再发行组件包。

关于c# - Unity3d DllNotFoundException 显示我的计算机上不存在的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56603157/

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