0

Windows 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 を使用してブラウジングしてきましたが、どういうわけか installutil がそのファイルを開こうとしているようです。

4

2 に答える 2

1

WMI.net を使用する WMI プロバイダーをインストールしようとしている場合は、/mof スイッチを使用してみてください。それはあなたにもっと多くの情報を与えるかもしれません。デバッグに役立ちます。

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

于 2012-01-30T20:56:27.770 に答える
0

WMIデータベースが何らかの理由で破損したようです。最終的に、アプリのスキーマ全体を削除し(最初にクラスのみを削除しようとしました)、installutilの実行がエラーなしで完了しました。

公開されたwmiスキーマを削除する方法は?

于 2012-01-31T17:23:35.533 に答える