1

我使用 System.Management.Instrumentation 命名空间在 C# 中开发了一个 WMI 提供程序。我需要将提供程序安装到 GAC 中并使用 MSI 将其注册到 WMI 存储库。我如何使用 WIX 完成此任务?

4

2 回答 2

3

您需要一个 CustomAction 来注册 WMI 提供程序。我们曾考虑向 WiX 工具集添加一个标准的 CustomAction 来支持这一点,但还没有时间这样做。应该是相当多的工作。

于 2009-03-24T16:32:26.063 回答
0

您可能需要查看 .NET 框架中的 AssemblyInstaller 类。 http://msdn.microsoft.com/en-us/library/System.Configuration.Install.AssemblyInstaller_methods.aspx

您可以创建一个托管自定义操作,该操作使用 Install() 和 Commit() 方法生成 WMI 提供程序的 mof 并安装它。您还可以在卸载 CustomAction 中使用 Uninstall() 和 Commit() 方法。

我不知道这是否是官方推荐的完成此任务的方法。这有点像自我注册,我不喜欢在安装程序中使用。但是,我知道在 WMI 的数据库中注册静态类/实例定义的唯一方法是编译 MOF 文件。包含您的类/实例信息的 MOF 是您的 WMI 提供程序程序集被引用的地方。

AssemblyInstaller 类知道如何为您生成和编译 MOF 文件。还有一个本机 API (IMofCompiler::CompileFile): http: //msdn.microsoft.com/en-us/library/aa390867 (v=vs.85).aspx可用于编译您的 MOF 文件。

于 2013-07-24T16:45:07.667 回答