.net 运行依赖WMI的应用程序时出错

.net 运行依赖WMI的应用程序时出错,.net,deployment,wmi,.net,Deployment,Wmi,我刚刚开发了一个使用system.Management类的应用程序,但我的朋友在使用该应用程序时遇到了问题,因为它会出错。他安装了winxp sp3和.Net framework 2.0,就像我一样 “System.Management.mtaheloper”引发了异常。--> System.Runtime.InteropServices.COMException(0x80040154):正在检索 具有CLSID的组件的COM类工厂 {A8F03BE3-EDB7-4972-821F-AF6F8E

我刚刚开发了一个使用system.Management类的应用程序,但我的朋友在使用该应用程序时遇到了问题,因为它会出错。他安装了winxp sp3和.Net framework 2.0,就像我一样

“System.Management.mtaheloper”引发了异常。--> System.Runtime.InteropServices.COMException(0x80040154):正在检索 具有CLSID的组件的COM类工厂 {A8F03BE3-EDB7-4972-821F-AF6F8EA34884}由于以下原因失败 错误:80040154。 在System.Management.mtaheloper..cctor()上

如何部署此应用程序以确保wmi存在?
可能是什么问题?

消息中给出的
0x80040154
HRESULT
错误表示所使用的COM类未在系统上注册。(这也可能意味着未注册依赖类;COM类无法解析依赖关系,返回此错误代码导致引发异常。)


在您的机器上安装的操作系统或框架与您朋友的机器上安装的操作系统或框架之间显然存在差异。我们无法告诉您它们可能是什么,因为您没有发布任何代码。您可以通过在计算机上的Windows注册表中搜索错误消息(
{A8F03BE3-EDB7-4972-821F-AF6F8EA34884}
)中显示的
CLSID
)来开始跟踪它。在命令行中:

net start winmgmt
如果您将应用程序作为windows服务分发,则可以在安装服务期间放置一个。也值得一看:

所以我去了 HKCR\CLSID{A8F03BE3-EDB7-4972-821F-AF6F8EA34884}\InprocServer32(默认) 在我的x64环境中,并看到以下路径: C:\Windows\system32\mscoree.dll

客户更改了在中找到的C:\WINDOWS\SysWOW64\mscoree.dll路径 右边的那个,他没有再出错


如果您将注册表注册为Ken White,并且它没有“HKCR\CLSID{A8F03BE3-EDB7-4972-821F-AF6F8EA34884}”,则可能值得重新安装.NET。另请看。

这是错误的。显示的
HRESULT
未注册的类
。未运行的服务不会导致此问题。在google中搜索“HRESULT 0x80040154”进行多个讨论。@ken请查看我的评论。关于部署,您不应分发任何其他DLL。System.management是.NET的一部分,您已经依赖.NET了。如果在注册表中找不到A8F03BE3-EDB7-4972-821F-AF6F8EA34884,请尝试重新安装.NET。请注意,我在应用程序中引用了
system.management.dll
并导入了
system.management
。我必须在我的应用程序中部署和注册此dll吗?您不能部署和注册这些dll。它们是.NET framework的一部分,因此您必须安装整个框架的正确版本。(它们可能依赖于不匹配的其他DLL,以此类推。)+1指出不运行WMI服务不可能是问题的原因。
net start winmgmt