65.9K
CodeProject 正在变化。 阅读更多。
Home

自动化清单注入过程

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.14/5 (5投票s)

2005年2月22日

2分钟阅读

viewsIcon

62725

downloadIcon

356

使用构建后事件自动注入清单。

Sample Image - ManifestInjection2.jpg

引言

之前的文章中,我探讨了将清单作为资源添加到已编译的可执行文件中的能力。这个过程允许 XP 主题正确显示,而无需在分发应用程序时管理另一个文件。我第一篇文章的缺点是注入清单的过程很麻烦,并且每次编译源代码时都需要这样做。

本文旨在通过在每次新构建完成后自动注入清单来简化“免人工”方式的清单注入过程。该解决方案使用项目的构建后属性来调用清单注入器的控制台版本,因此在构建项目时不需要额外的工作。

项目设置

要设置一个项目,首先下载本文的源代码。请注意ManifestConsole.exe的路径。现在打开一个 Windows Forms 项目,并打开项目属性对话框。选择左侧的“构建事件”选项。单击“构建后事件命令行”的框。单击省略号按钮以打开构建后编辑器。

Post-build Command Line

编辑器是我们指定路径和参数来调用ManifestConsole.exe的地方。ManifestConsole.exe需要两个命令行参数。第一个参数是目标可执行文件 (即要注入清单的 EXE) 的路径。第二个参数是清单的路径(例如,它是您项目的根目录)。

命令示例如下所示

C:\ManifestInjection\ManifestConsole\bin\Release\ManifestConsole.exe $(TargetPath) $(ProjectDir)WindowsApplication1.exe.manifest

Post-build Editor

准备构建

如果我们剖析这个命令行,我们会看到三件事。首先是ManifestConsole.exe文件的路径。目前,这与您放置本文源代码的位置相同。相应地更改C:\<path>。第一个命令行参数 $(TargetPath) 将由 Visual Studio 填充,其中包含您正在构建的 EXE。最后一个参数 $(ProjectDir)WindowsApplication1.exe.manifest 指向您的项目目录中的一个名为WindowsApplication1.exe.manifest的文件。更改此参数以指向您的清单,您就可以构建您的项目了。*注意:* 单击编辑器窗口上的“”按钮,可以查看 Visual Studio .NET 支持的路径列表。在您构建项目时,检查输出窗口以获取注入过程的状态。现在…运行您的应用程序!您难道不喜欢自动化吗?

© . All rights reserved.