当我尝试在目标机器上部署我的应用程序时出现此错误。
我用谷歌搜索,发现一些 dll 需要注册(在我的应用程序中使用)
所以,我将 dll 复制到 System32 并执行了 regsvr32
然后我得到了这个错误
Interop.ShockwaveFlashObject.dll was loaded bt DllRegisterServer entry point was not found. The file cannot be registered
一件奇怪的事是,该应用程序不能只在一台机器上运行。我在 10 台不同的机器上进行了测试,一切都运行良好。它不能只在一台机器上工作。
有人可以帮我解决这个问题吗?
最佳答案
Interop dll 不需要注册,它实际上包含指向现有 COM 注册对象的指针。
如果它遵循通常的命名约定,则看起来 ShockwaveFlashObject.dll 未在计算机上注册(这将是您应该运行 regsvr32 的 DLL)。据推测,您需要安装 Shockwave/Flash(和/或检查安装的版本是否正确,如果您认为它已经在包装盒上)。
关于c# - System.Runtime.InteropServices.COMException (0x80040154),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3164162/