使用WIX安装WMI提供程序

时间:2009-03-24 13:54:15

标签: wix windows-installer wmi

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

2 个答案:

答案 0 :(得分:2)

您需要一个CustomAction来注册WMI提供程序。我们已经考虑过向WiX工具集添加标准的CustomAction以支持这一点,但还没有时间这么做。可能相当多的工作。

答案 1 :(得分: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文件。