Это похоже на вопрос , но, похоже, что хорошее решение не было найдено, поэтому я открываю новое с уточненными деталями.
Мы написали сервис .NET, который, помимо прочего, публикует некоторые иерархии классов с использованием WMI. На 64-разрядной машине (под управлением Windows 2008 R2 Server) мы используем 32-разрядную версию InstallUtil для установки службы. Он успешно устанавливается, но при запуске службы появляется следующее сообщение об ошибке при публикации класса WMI с использованием Instrumentation.Publish ()
DirectoryNotFoundException - (Не удалось найти часть пути
"C: \ Windows \ system32 \ WBEM \ Framework \ корень \ MyNamespace \ MyService.)
Однако этот каталог существует в каталоге C: \ Windows \ syswow64. Если мы вручную скопируем эту структуру каталогов в каталог system32, то все будет работать. Однако , мы ищем автоматизированное решение, потому что оно упаковано в MSI, который мы распределяем по многим серверам.
Мы попытались запустить 64-разрядную версию InstallUtil, чтобы посмотреть, сработает ли это, однако ... и это действительно странная часть ... это дает нам ошибку при установке , что говорит
Установка схемы WMI: запущено
Исключительная ситуация на этапе установки.
System.IO.DirectoryNotFoundException:
Не удалось найти часть пути
'C: \ Windows \ system32 \ WBEM \ Framework \ корень \ MyNamespace \ MyService.mof'
.
Похоже, что каким-то образом установщик WMI перевернулся. Кто-нибудь еще сталкивался с этим или знает об обходной работе?