C# 如何使用MC.exe编译清单文件?
我想在我的c#应用程序中使用Windows事件日志,所以我正在尝试创建一个事件提供程序。我已经编写了xml清单文件,但是我不知道如何编译它来生成资源定义文件和C代码文件。我知道我必须使用MessageCompiler(MC.exe),而且我已经安装了Windows SDK。有人能告诉我如何进行吗 这是该网站的msdn链接C# 如何使用MC.exe编译清单文件?,c#,winapi,event-log,C#,Winapi,Event Log,我想在我的c#应用程序中使用Windows事件日志,所以我正在尝试创建一个事件提供程序。我已经编写了xml清单文件,但是我不知道如何编译它来生成资源定义文件和C代码文件。我知道我必须使用MessageCompiler(MC.exe),而且我已经安装了Windows SDK。有人能告诉我如何进行吗 这是该网站的msdn链接 我做了一次搜索,找到了这篇解释使用mc.exe记录事件的文章。 希望这能有所帮助。(您好,从2021年2月开始!) 微软最近改变了mc.exe的工作方式 此外,在“程序员事
我做了一次搜索,找到了这篇解释使用mc.exe记录事件的文章。
希望这能有所帮助。(您好,从2021年2月开始!)
- 微软最近改变了mc.exe的工作方式
- 此外,在“程序员事件指南”*.docx文件(2010年12月17日)中记录的
(“清单生成器”)GUI程序没有替换ecmangen.exe
- 微软的官方建议是下载最新版本的Windows10SDK,其中包括
。。。令人恼火的是,MSFT的回复并没有具体说明应该使用哪个SDK,只是用“Windows10CreatorsEdition”这个名称(非常模糊)来指代它。ecmangen.exe
- (他们称之为“创作者版”让我非常恼火,因为它听起来像是一个独立的SKU,就像家庭版和专业版一样)
- 原来他们指的是Windows 10 SDK 10.0.15063.468,您可以从中下载
- “秋季创建者更新”(版本为10.0.16299.91)的Windows 10 SDK中不包含该版本
<> > > P> >获得<代码> EcMang.exe <代码>的“Windows SDK用于桌面C++ x86应用程序”和“桌面SDC++桌面AM+64应用程序”(您应该同时安装)。
- 微软的官方建议是下载最新版本的Windows10SDK,其中包括
- 安装Windows 10 SDK版本10.0.15063.468后,您将在以下位置找到
:ecmangen.exe
“C:\Program Files(x86)\Windows Kits\10\bin\10.0.15063.0\x86\ecmangen.exe”
“C:\Program Files(x86)\Windows Kits\10\bin\10.0.15063.0\x64\ecmangen.exe”
- (是的,x64二进制文件位于x86程序文件目录下;是的,这很奇怪)
现在,如果要运行命令
mc-s EventLogMsgs.mc
来构建消息,那么这是不正确的
相反,请执行以下操作:
ecmangen.exe
的清单文件有效(假设它名为“manifest.man”)- 自Windows 7.1 SDK以来,SDK不再在“开始”菜单中包含其命令提示符快捷方式,因此请改为执行此操作,因此暂时将其添加到您的
路径中,如下所示:
- 将
复制到剪贴板(包括双引号)-或任何实际安装路径“C:\Program Files(x86)\Windows Kits\10\bin\10.0.15063.0\x64”
- 打开
(或者先打开PowerShell,然后运行cmd.exe
)cmd
- 在不按Enter键的情况下键入此项:
SET PATH=%PATH%代码>
- 粘贴步骤1中的路径(通常只需单击鼠标右键或Shift+Insert键)。
- 所以你有
设置路径=%PATH%;“C:\ProgramFiles(x86)\Windows工具包\10\bin\10.0.15063.0\x64”
- 然后按回车键
cd%HOMEPATH%
现在应该可以工作了mc.exe-?
- 将
cd
到包含manifest.man
和messages.mc
文件的目录mc.exe messages.mc
,它就可以正常工作了
- 您现在应该可以看到
和manifest.h
(以及一些manifest.rc
和.bin
文件…)输出到同一目录中TEMP.bin
你可以找到一个网络搜索的例子你能给我举一个例子吗?我想知道如何使用MC.exe,但我找不到任何关于它的信息。我会通过网络搜索来做到这一点。