繁体   English   中英

如何在ASP.NET应用程序中添加对32位dll的引用

[英]How to add a reference to 32 bit dll in ASP.NET application

我尝试使用IIS Express在ASP.NET应用程序中添加对32位dll的引用。

但是有一个问题。 当我启动应用程序时,它会抛出异常:

'无法加载文件或程序集'CppInerop.dll'或其依赖项之一。 指定的模块无法找到。'

我试图将目标平台设置为x86x64但没有任何改变。

这个dll适用于控制台和win表单应用程序。 我刚刚将那些CPU的属性target从任何CPU更改为x86

但它仍然无法与ASP.NET一起使用。 我看到了其他一些选项,当然要将所有必需的dll添加到bin中。 但没有什么可以改变结果。

这个dll是用C ++编写的。

另外我使用了fuslogvw ,但它没有记录关于这个dll的任何内容。

请帮忙看看,为什么会这样。

你不能轻易做到这一点。

你可能不得不安排在进程外调用DLL。 我已经完成了这样的任务。

这适用于Web请求:

1)创建一个.EXE,它提供一个合适的二进制接口来通过stdin / stdout调用DLL。 EXE反序列化参数,调用DLL函数,序列化结果并将其发送到stdout。 你可能在想等待API太难了。 好吧,我还没有看到API太难了。 我以这种方式进行TWAIN扫描。

2)在另一个目录中安装.EXE和.DLL。 找到一种方法让您的webapp找到它(在web.config中可以选择相对路径或参数)

3)在Web应用程序中实现二进制接口的另一面。 启动进程,序列化请求,向进程的stdin发送请求,从进程的stdout读取结果。

对于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"

对于您的情况,您希望取消选中此选项

此外,在您的Web项目中,请确保您还在构建中定位x86平台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM