[英]How to add a DLL reference to a ASP.NET C# web application (the dll is a wrapper for underlying c libraries)
[英]How to add a reference to 32 bit dll in ASP.NET application
我尝试使用IIS Express在ASP.NET应用程序中添加对32位dll的引用。
但是有一个问题。 当我启动应用程序时,它会抛出异常:
'无法加载文件或程序集'CppInerop.dll'或其依赖项之一。 指定的模块无法找到。'
我试图将目标平台设置为x86
和x64
但没有任何改变。
这个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.