自动化清单注入过程






4.14/5 (5投票s)
2005年2月22日
2分钟阅读

62725

356
使用构建后事件自动注入清单。
引言
在之前的文章中,我探讨了将清单作为资源添加到已编译的可执行文件中的能力。这个过程允许 XP 主题正确显示,而无需在分发应用程序时管理另一个文件。我第一篇文章的缺点是注入清单的过程很麻烦,并且每次编译源代码时都需要这样做。
本文旨在通过在每次新构建完成后自动注入清单来简化“免人工”方式的清单注入过程。该解决方案使用项目的构建后属性来调用清单注入器的控制台版本,因此在构建项目时不需要额外的工作。
项目设置
要设置一个项目,首先下载本文的源代码。请注意ManifestConsole.exe的路径。现在打开一个 Windows Forms 项目,并打开项目属性对话框。选择左侧的“构建事件”选项。单击“构建后事件命令行”的框。单击省略号按钮以打开构建后编辑器。
编辑器是我们指定路径和参数来调用ManifestConsole.exe的地方。ManifestConsole.exe需要两个命令行参数。第一个参数是目标可执行文件 (即要注入清单的 EXE) 的路径。第二个参数是清单的路径(例如,它是您项目的根目录)。
命令示例如下所示
C:\ManifestInjection\ManifestConsole\bin\Release\ManifestConsole.exe $(TargetPath) $(ProjectDir)WindowsApplication1.exe.manifest
准备构建
如果我们剖析这个命令行,我们会看到三件事。首先是ManifestConsole.exe文件的路径。目前,这与您放置本文源代码的位置相同。相应地更改C:\<path>。第一个命令行参数 $(TargetPath) 将由 Visual Studio 填充,其中包含您正在构建的 EXE。最后一个参数 $(ProjectDir)WindowsApplication1.exe.manifest 指向您的项目目录中的一个名为WindowsApplication1.exe.manifest的文件。更改此参数以指向您的清单,您就可以构建您的项目了。*注意:* 单击编辑器窗口上的“宏”按钮,可以查看 Visual Studio .NET 支持的路径列表。在您构建项目时,检查输出窗口以获取注入过程的状态。现在…运行您的应用程序!您难道不喜欢自动化吗?