为什么在 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?
我无法将它们引用到项目的 Visual Studio 中,因为它们不是有效的 COM 程序集。
dll没有在dllimport的代码中导入,因为我不知道它们提供的具体功能。托管 dll 包装器使用 dll。
有什么想法吗?谢谢!
我没有一对一解决问题,但是我成功规避了问题:
通过使用显式 dllimport 重写 c#/c++ 包装器,我直接使用路径寻址 dll 文件。然后,依赖的 dll 只需与引用的 dll 位于同一文件夹中。这也适用于网络应用程序。
我在 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?
我无法将它们引用到项目的 Visual Studio 中,因为它们不是有效的 COM 程序集。
dll没有在dllimport的代码中导入,因为我不知道它们提供的具体功能。托管 dll 包装器使用 dll。
有什么想法吗?谢谢!
我没有一对一解决问题,但是我成功规避了问题:
通过使用显式 dllimport 重写 c#/c++ 包装器,我直接使用路径寻址 dll 文件。然后,依赖的 dll 只需与引用的 dll 位于同一文件夹中。这也适用于网络应用程序。