我尝试使用IIS Express在ASP.NET应用程序中添加对32位dll的引用。
但是有一个问题。当我启动应用程序时,它会抛出异常:
'无法加载文件或程序集'CppInerop.dll'或其依赖项之一。指定的模块无法找到。'
我尝试将目标平台设置为x86
和x64
,但没有任何变化。
此dll
适用于控制台和win表单应用。我刚刚将任何CPU的属性target
更改为x86
。
但它仍无法与ASP.NET一起使用。我看到了其他一些选项,当然要将所有必需的dll
添加到bin中。但没有什么可以改变结果。
此dll
写在 C ++ 。
此外,我使用了 fuslogvw ,但它没有记录有关此dll的任何内容。
请帮忙看看,为什么会这样。
答案 0 :(得分:0)
你不能轻易做到这一点。
您可能不得不安排在进程外调用DLL。我已经完成了这样的任务。
这适用于网络请求:
1)创建一个.EXE,它提供一个合适的二进制接口,通过stdin / stdout调用DLL。 EXE反序列化参数,调用DLL函数,序列化结果并将其发送到stdout。你可能在想等待API太难了。好吧,我还没有看到API太难了。我用这种方式进行TWAIN扫描。
2)在另一个目录中安装.EXE和.DLL。找到一种方法让您的webapp找到它(在web.config中可以选择相对路径或参数)
3)在Web应用程序中实现二进制接口的另一面。启动进程,序列化请求,向进程的stdin发送请求,从进程的stdout读取结果。
答案 1 :(得分:0)
对于VS2015(和2013)您可以选择以32位或64位运行IIS Express,方法是进入Visual Studio:
Tools -> Options -> Projects and Solutions -> Web Projects
check/uncheck "Use the 64 bit version of IIS Express for web sites and projects"
对于您的情况,您希望取消选中此选项
此外,在您的网络项目中,请确保您还在构建中定位x86平台。