在Win 2003 R2 64位上注册WMI事件时“找不到文件”

时间:2012-01-30 16:13:55

标签: .net wmi installutil

我正在尝试在Win 2003 R2 64位服务器上安装包含普通.Net程序集的WMI事件,但我总是收到此错误:

System.IO.FileNotFoundException:找不到文件'C:\ WINDOWS \ system32 \ WBEM \ Framework \ root \ MyApp \ WMIEvents \ Common \ MyApp.MyModule.WmiEvents_SN__Version_1.0.53.0.mof'。< /强>

  • 我的用户是管理员
  • 我在具有完全权限的命令提示符下运行InstallUtil
  • 我正在运行64位InstallUtil

我在这里没有选择,欢迎任何帮助......

以下完整的InstallUtil输出:

D:\Hosts\web\bin>c:\WINDOWS\microsoft.net\Framework64\v2.0.50727\InstallUtil.exe /i MyApp.MyModule.WmiEvents.dll /showcallstack
Microsoft (R) .NET Framework Installation utility Version 2.0.50727.3053
Copyright (c) Microsoft Corporation.  All rights reserved.


Running a transacted installation.

Beginning the Install phase of the installation.
See the contents of the log file for the D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.dll assembly's progress.
The file is located at D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.InstallLog.
Installing assembly 'D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.dll'.
Affected parameters are:
   i =
   assemblypath = D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.dll
   logfile = D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.InstallLog
   logtoconsole =
Installing WMI Schema: Started

An exception occurred during the Install phase.
System.IO.FileNotFoundException: Could not find file 'C:\WINDOWS\system32\WBEM\Framework\root\MyApp\WMIEvents\Common\MyApp.MyModule.WmiEvents_SN__Version_1.0.53.0.mof'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
   at System.IO.StreamReader..ctor(String path, Boolean detectEncodingFromByteOrderMarks)
   at System.Management.Instrumentation.SchemaNaming.get_Mof()
   at System.Management.Instrumentation.ManagementInstaller.Install(IDictionary savedState)
   at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
   at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
   at System.Configuration.Install.AssemblyInstaller.Install(IDictionary savedState)
   at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
   at System.Configuration.Install.TransactedInstaller.Install(IDictionary savedState)

The Rollback phase of the installation is beginning.
See the contents of the log file for the D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.dll assembly's progress.
The file is located at D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.InstallLog.
Rolling back assembly 'D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.dll'.
Affected parameters are:
   i =
   assemblypath = D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.dll
   logfile = D:\Hosts\web\bin\MyApp.MyModule.WmiEvents.InstallLog
   logtoconsole =

The Rollback phase completed successfully.

The transacted install has completed.
The installation failed, and the rollback has been performed.

D:\Hosts\web\bin>

更新 我一直在浏览procmon,似乎安装程序试图打开该文件。

2 个答案:

答案 0 :(得分:1)

如果您尝试安装使用WMI.net的WMI提供程序,请尝试使用/ mof开关。 这可能会给你更多信息。这将有助于您调试。

http://msdn.microsoft.com/en-us/library/bb608336(v=vs.90).aspx

答案 1 :(得分:0)

似乎WMI数据库以某种方式被破坏了,我最终删除了我的应用程序的整个架构(首先我尝试删除了这些类)然后完成了installutil执行而没有错误。

How to remove published wmi schema?