注册的WMI提供程序在升级后失败

时间:2013-07-02 08:33:34

标签: c# installutil

这是this question的后续问题。

我正在开发一个c#windows服务。

所有对服务的请求都是使用WMI完成的。

我正在使用InstallUtils安装服务。然后我使用InstalUtils注册WMI架构:

  

InstallUtils.exe / f assemblyPath.dll

我们正在使用以下方式获取installUtils的路径:

System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory() + "InstallUtil.exe";

在app.config中我们设置:

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"></supportedRuntime>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>

我在Windows 7上安装了我的应用程序,然后将操作系统升级到Windows 8。 服务运行正常,只有我所有的“WMI部分”都不起作用。 我收到错误: System.Management.ManagementException:Provider不能为每个WMI操作(getInstances,query,invoke方法等)尝试操作。

当我在Win8上安装te应用程序然后升级到8.1

时,也会发生此错误

当我不尝试升级时,WMI在Windows 7和Windows 8上都能正常工作。

如果我用/ f assemplyPath.dll重新运行InstallUtils,升级后修复了这个问题。 此外,如果在升级之前在Win7上安装了Visual Studio,则不会再现该问题。

我认为问题可能是在Windows 7中可用的InstallUtils版本来自

  

C:\的Windows \ Microsoft.NET \框架\ V2.0.50727 \

在Windows 8中我们正在使用

  

C:\的Windows \ Microsoft.NET \框架\ v4.0.30319

但是,当我从Windows 8升级到Windows 8.1后再次遇到此问题时,它已不再存在了。 但这只是一个猜测,我仍然无法理解这个问题,这个错误意味着什么?可能是这个问题的根本原因是什么?

0 个答案:

没有答案