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

时间:2016-06-14 16:05:53

标签: asp.net dll dllimport bin web-application-project

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

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

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

  

无法加载文件或程序集&managed.dllWrapper.DLL'或其中一个依赖项。找不到指定的模块。

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

当我将dll复制到C:\ Windows文件夹时,webapp运行完美,但只能在我的机器上本地运行。

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

为什么它不能用于webapp?我该如何导入这些dll?

  • 我无法将它们引用到Visual Studio中,因为它们不是有效的COM程序集。

  • 使用dllimport不会在代码中导入dll,因为我不知道它们提供的具体功能。托管的dll包装器使用dll。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我没有一对一解决问题,但我成功地绕过了问题:

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