VC MSBuild扩展性示例

null

大家好,我叫Felix Huang,是Visual C++团队的开发人员。 在过去的一年中,我致力于以MSBudio系统为基础,以VisualStudio 2010中的构建系统更加灵活。  对于那些认为需要使用批处理脚本来支持构建的人,我希望这个新系统能够为您提供如此大的灵活性,同时保持与visualstudio以前版本相似的UI感觉。  上一篇文章作者 玛丽安·卢帕鲁 更多地涉及MSBuild的好处。  在本文中,我将提供一个增强构建系统和属性页的示例,以更好地适应开发生命周期。

假设您想向现有工具添加另一个开关。  以link.exe中的/WS:AGGRESSIVE为例。  我们在项目旁边创建一个名为myfavorite.xml的文件。  此文件描述UI属性页的结构。  我们希望在优化类别中使用布尔开关。  通过从MSDN复制和粘贴注释,我们得到下面的代码片段。

<?xml version=“1.0”encoding=“utf-8〃?>

我最喜欢的选择

<规则.类别>

优化

<规则.数据源>

进程存储器

使用/WS:AGGRESSIVE选项将WSu AGGRESSIVE属性添加到应用程序的映像中。WindowsNT4.0(及更高版本)加载程序将识别此属性,并在进程的工作集不活动时积极地修剪它

参考 李绍的博客 关于编写xml的主题。  重新启动Visual Studio以加载更改。

图片[1]-VC MSBuild扩展性示例-yiteyi-C++库

接下来,我们将把开关附加到目标文件,从而在执行期间将其传递给链接器。  有很多方法可以做到这一点;但是让我们使用MSBuild4.0中的一个新特性,该特性在目标之前/之后调用。  在一个项目文件(.vcxproj)中,将下面的添加到范围中。  通过使用BeforeTargets,它将在链接目标运行之前将此目标插入到生成的执行中。  因此,我们可以修改附加在末尾的附加选项中的值。

<项目组>

<属性页架构

Include=“$(MSBuildThisFileDirectory)myfavorite.xml”/>

<项目组>

<链接>

%%(Link.AdditionOptions)/WS:Aggressive

PropertyPageSchema项组将让IDE知道在哪里查找xml。  现在您的项目已准备好进行构建。

谢谢你的阅读。

Felix Huang公司

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享