到目前为止,我已经了解到,我必须为我的性能计数器和事件编写一个事件清单。 您可以手动完成此操作,也可以使用名为“ecmangen.exe”的工具。 该程序的文档提供了有关创建事件清单的详细步骤指南,但没有解释如何将其与您的代码集成。
据我了解,下一步是使用两个神秘的命令行应用程序“MC.exe”和“CTRPP.exe”。 这些似乎会分别为添加事件和计数器插装到您的代码中生成C或C#头文件、源文件和资源文件。
接下来,您必须构建您的代码(请参阅'C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\winbase\Eventing'中的示例),然后我们来到我目前卡住的地方:正确使用下一个神秘工具“wevtutil.exe”
此工具需要两个东西:您已编译的二进制文件(exe或DLL)和您用于生成这些资源的清单文件。 我遇到的问题是它对二进制文件所在位置非常挑剔,而我无法确定这种挑剔的形式。 咒语和祭品都没有产生任何结果。
如果在清单文件中“provider”标记的“resourceFileName”字段中定义了路径(例如'c:\MYDIR\TEd.exe'),则可以正常使用。 但是,如果我将相同的exe放入不同的文件夹中(其中一个失败的是C:\ tw \ TEd.exe),它会发出警告。
给出的错误消息是“警告:发布者TEd-Event-Provider的资源无法访问。”,但没有更多解释原因或尝试查找位置。
那么,我添加插装的方法是否错误,是否已经有指南说明所有的陷阱以及“wevtutil.exe”对目录名称的奇怪选择性质。
提前致谢,
Tim.