为什么在 asp.net webapp 的 bin 文件夹中无法识别 c++ .dll?

Why are c++ .dll not recognized in bin folder of asp.net webapp?

我在 Visual Studio 2015 年使用 Razor 语法在 C# 中创建了一个 ASP.NET Webapp。

我必须使用 20 个第三方原生 c++ dll 文件(其中大部分用于图像处理、libtiff-5.dll、libpng16-16.dll 等...)。

即使我手动将那些 dll 文件复制到 bin 文件夹中,应用程序也不会 运行。错误是:

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

但是根据互联网上几乎所有的提示,复制到 bin 文件夹应该可以。

当我将 dll 复制到 C:\Windows 文件夹时,Web 应用程序 运行 完美运行,但仅在我的机器上本地运行。

此外,当我创建 C# 控制台应用程序而不是 web 应用程序时,复制到 bin 文件夹中工作正常。

为什么它不适用于网络应用程序?我如何导入这些 dll?

有什么想法吗?谢谢!

我没有一对一解决问题,但是我成功规避了问题:

通过使用显式 dllimport 重写 c#/c++ 包装器,我直接使用路径寻址 dll 文件。然后,依赖的 dll 只需与引用的 dll 位于同一文件夹中。这也适用于网络应用程序。