Windows 缺少事件查看器描述

Windows 缺少事件查看器描述,windows,service,registry,event-log,Windows,Service,Registry,Event Log,我正在为我们的一款产品创建一个新的安装包,但在让Windows使用事件消息描述DLL向事件查看器提供事件描述时遇到了重大问题。我总是在事件属性中收到以下消息: 无法删除源(MyProduct)中事件ID(39)的说明 建立本地计算机可能没有必要的注册表 信息或消息DLL文件以显示来自远程服务器的消息 电脑。您可以使用/AUXSOURCE=标志来检索此文件 描述有关详细信息,请参阅帮助和支持。以下 信息是事件的一部分:MyProduct、、、、和, 我的产品 我以前的安装程序似乎可以在其他系统上正

我正在为我们的一款产品创建一个新的安装包,但在让Windows使用事件消息描述DLL向事件查看器提供事件描述时遇到了重大问题。我总是在事件属性中收到以下消息:

无法删除源(MyProduct)中事件ID(39)的说明 建立本地计算机可能没有必要的注册表 信息或消息DLL文件以显示来自远程服务器的消息 电脑。您可以使用/AUXSOURCE=标志来检索此文件 描述有关详细信息,请参阅帮助和支持。以下 信息是事件的一部分:MyProduct、、、、和, 我的产品

我以前的安装程序似乎可以在其他系统上正常工作。这里的目标操作系统是WinXP SP3和Server 2008 R2,我在这两个系统上看到了相同的问题。事件消息文件在HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Services下的Eventlog\Application项下注册,并将EventMessageFile和TypesSupported present设置为正确的值

为了解决此问题,我尝试了以下方法:

  • 将事件消息DLL移动到System32文件夹
  • 确保事件日志服务具有对事件消息DLL的完全访问权限(仅限2008-WinXP不在域上,因此在文件属性中没有安全选项卡)

任何想法,因为我已经没有选项了,除了设置注册表之外,我在网上找不到任何东西,这是我从一开始就做的。

最后发现我们的事件消息DLL中有一个编译错误(!)

您是否也将源代码添加到应用程序项下的源代码值中?您可以使用Process Monitor查看事件查看器是否正在尝试加载您的DLL。如果没有,则说明注册表有问题;否则,说明DLL有问题。