如何使用VS2008安装程序注册性能计数器清单



我有一个VC++(非托管)项目,我使用manifest方法向该项目添加了性能计数器。一切都很好,我甚至有一些构建步骤,可以使用带有/m:manifest开关的lodctr.exe工具进行清单编译和自动注册。

我遇到的问题是,我现在需要让安装程序(VS2008安装程序项目)在安装时进行注册(在卸载时取消注册)。

我试图通过一个引用lodctr.exe工具的自定义操作来设置它,CustomActionData设置为/m:[TARGETDIR]PerfMon.manifest,类似的设置使用unloadtr.exe进行自定义卸载操作。

当安装程序运行时,我确实看到cmd窗口的短暂闪烁(这是可以的),但计数器没有被注册。我运行了SysInternals的ProcMon工具,甚至没有看到创建lodctr.exe进程。

我测试了在目标机器上手动运行lodctr.exe会注册计数器。

我在谷歌上搜索了一个例子或解释如何使用VisualStudio安装程序项目,但结果是空的。它有一些面向.NET的示例,但不适用于非托管的、硬的和冷的VC++。。。

如何使用安装程序项目注册性能计数器清单?

Visual Studio安装程序项目的功能非常有限。从Visual Studio 2012开始,不支持Visual Studio安装程序项目,您应该考虑改用Windows installer XML(WIX)。

将您的清单包含到WIX项目中,并使用WIX的PerfCounterManifest。

最新更新