我们有一个大型C#(.net 2.0)应用程序,它使用我们自己的C++ COM组件和一个也可以通过COM访问的第三方指纹扫描器库。我们遇到了一个问题,即虽然来自我们自己的C++ COM组件的事件被触发并被很好地接收,但在生产中,指纹库中的某些事件并未触发到C#应用程序中。

使用MSINFO32将工作系统上的已加载模块与发生故障的系统上的模块进行比较,我们确定这是由STDOLE.DLL不在GAC中导致的,因此没有加载到故障进程中引起的。

将此文件拖到GAC中,可以使事件从指纹COM库恢复正常。

那么stdole.dll是做什么的呢?它的大小为16k,所以不会太大...是某种链接到另一个库(如STDOLE32)吗?它的缺失如何导致这种奇怪的行为?

我们如何分发stdole.dll?这是XCOPY部署应用程序,我们不使用GAC。我们是否应该将其打包为资源并使用System.EnterpriseServices.Internal.Publish.GacInstall来确保它在GAC中?

最佳答案

看来stdole.dll是一个主互操作程序集。参见Office 2003 Primary Interop Assemblies on MSDN.

关于c# - stdole.dll是做什么的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/162028/

10-13 05:30