Использование WIX для установки поставщика WMI - PullRequest
0 голосов
/ 24 марта 2009

Я разработал WMI-провайдера на C #, используя пространство имен System.Management.Instrumentation. Мне нужно установить провайдера в GAC и зарегистрировать его в хранилище WMI с помощью MSI. Как я могу сделать это с WIX?

Ответы [ 2 ]

2 голосов
/ 24 марта 2009

Вам потребуется CustomAction для регистрации провайдера WMI. Мы думали о добавлении стандартного CustomAction в набор инструментов WiX для поддержки этого, но у нас еще не было времени сделать это. Наверное, совсем немного работы.

0 голосов
/ 24 июля 2013

Возможно, вы захотите проверить класс AssemblyInstaller в .NET Framework. http://msdn.microsoft.com/en-us/library/System.Configuration.Install.AssemblyInstaller_methods.aspx

Вы можете создать управляемое настраиваемое действие, которое использует методы Install () и Commit (), чтобы сгенерировать mof вашего поставщика WMI и установить его. Вы также можете использовать методы Uninstall () и Commit () при удалении CustomAction.

Я не знаю, является ли это официальным рекомендуемым способом выполнения этой задачи. Это похоже на саморегистрацию, которую я не люблю использовать в установщике. Однако единственный известный мне способ зарегистрировать определения статических классов / экземпляров в базе данных WMI - это скомпилировать файл MOF. MOF, содержащий информацию о вашем классе / экземпляре, является ссылкой на сборку вашего поставщика WMI.

Класс AssemblyInstaller знает, как сгенерировать и скомпилировать ваш MOF-файл для вас. Существует также собственный API (IMofCompiler :: CompileFile): http://msdn.microsoft.com/en-us/library/aa390867(v=vs.85).aspx, который можно использовать для компиляции файла MOF.

...