我在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。
有什么想法吗?谢谢!
答案 0 :(得分:0)
我没有一对一解决问题,但我成功地绕过了问题:
通过使用显式dllimport重写c#/ c ++包装器,我直接用路径解决了dll文件。然后,依赖dll只需与引用的dll位于同一文件夹中。这也适用于网络应用程序。