gpt4 book ai didi

c# - .NET 无法在同一目录中找到非托管 DLL

转载 作者:可可西里 更新时间:2023-11-01 11:43:50 28 4
gpt4 key购买 nike

我有一个 C++ DLL 库(我们称它为 unmanaged.dll),它围绕着一个托管 .NET 库(我们称它为 managed.dll)。 managed.dll 使用 unmanaged.lib 导入/链接 unmanaged.dll。我有另一个使用 managed.dll 的 ASP.NET Web API 项目(我们称该项目为 webapi.dll)。现在,每当我构建 Web 项目时,在输出目录中我都会得到 webapi.dllmanaged.dll。然后,我手动将 unmanaged.dll 复制到同一个输出文件夹中,以便(大概).NET 可以找到它并加载它。
但是,当我尝试运行 webapi.dll 时,它失败并显示无法加载 managed.dll 的错误:

Could not load file or assembly 'managed.DLL' or one of its dependencies. The specified module could not be found.

这特别奇怪,因为 unmanaged.dll 在同一个文件夹中。
我觉得很奇怪的是,如果我将 unmanaged.dll 放在 C:\Windows\system32 下,那么 .NET 可以正确加载它!

我的问题是如何在 .NET 项目输出所在的文件夹中使此 unmanaged.dll 对 .NET 可见?

最佳答案

导致问题的是 IIS。有同样的问题,通过将 dll 添加到位于 PATH 变量中的文件夹来解决它。

关于c# - .NET 无法在同一目录中找到非托管 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51326404/

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