当InProcServer32键定义DLL的完整路径时,path环境变量中为什么需要COM DLL的路径
Why is the path to a COM DLL needed in the PATH Environment variable when InProcServer32 key defines the full path to the DLL?
我正在开发一个在C#web服务中使用的遗留C++组件。C#项目引用显示为有效,但在运行时,当创建COM对象时,会引发"CLSID查找失败"异常。事实证明,CLSID解析需要DLL所在的根路径。
为什么要使CLSID查找工作,DLL的路径必须存在于path环境变量中?
我找到了原因。C#Web服务托管在IIS中,当调度传入调用时,IIS会探测Web服务的"\bin"文件夹中的DLL。由于COM组件是项目引用,因此磁盘上的物理文件是运行时可调用包装器,而不是实际的DLL。将DLL的路径添加到path环境变量使IIS能够找到COM DLL并成功解析它。
相关文章:
- 如何使特定程序仅从安装的路径运行以避免DLL劫持
- 如何从客户端为COM服务器设置dll搜索路径?
- MFC:重写附属 DLL 中 RC 文件中的位图路径
- 设置所需DLL文件的自定义路径:电子应用
- 问题在具有依赖性时从其他路径上加载DLL的DLL
- GetFullPathNameA 不返回 DLL 的路径
- GetFullPathName 不会获取 DLL 路径
- 在 Windows 中加载共享库时在特定路径中选取 dll
- 错误53:找不到文件,而是路径中存在所有DLL
- 当InProcServer32键定义DLL的完整路径时,path环境变量中为什么需要COM DLL的路径
- 搜索.NET组件的搜索路径取决于C /CLI DLL
- Windows找不到DLL在路径中的目录中以为其
- VS2012:“找不到资源编译器DLL.请确保路径正确.”
- Maven NAR插件:在路径上找不到DLL依赖项
- 仅资源 DLL - 文件夹、路径
- QT-在pro中指定DLL路径.文件
- 通过给出DLLName来定位DLL路径
- 设置dll路径来构建qt文件
- 获取dll路径/字符串问题(c++初学者)
- 如何为CMake添加外部DLL路径