InstallUtil Публикация схемы WMI в 64-битной директории вместо 32-битной директории - PullRequest
2 голосов
/ 25 марта 2010

Это похоже на вопрос , но, похоже, что хорошее решение не было найдено, поэтому я открываю новое с уточненными деталями.

Мы написали сервис .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 перевернулся. Кто-нибудь еще сталкивался с этим или знает об обходной работе?

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Я знаю, что этот ответ еще позже, но, возможно, он может помочь и другим людям -

Я обнаружил, что если вы запускаете утилиту установки из командной строки, если вы не запускаете ее от имени администратора, вы сталкиваетесь с причудливыми проблемами, у нас было что-то похожее на это, и мы открывали команду с помощью «Запуск от имени администратора "и проблемы испарились. Может не решить вашу проблему, но стоит попробовать.

0 голосов
/ 07 апреля 2010

Я искал ответ на этот же вопрос. Я сейчас уже немного опоздал, но вам и другим читателям. Мы обнаружили, что он работает нормально, когда мы используем команду

C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ InstallUtil.exe

вместо

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Installutil.exe

.

64 в каталоге Framework это то, что нас сбило с толку. Если вы уже решили свою проблему, то я надеюсь, что помог другим найти ответ на ту же проблему.

...