资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
集成开发环境的配置及使用说明本文讲解如何编写MSBuild脚本文件执行编译系统、运行FxCop检查代码、 运行NUnit以及NCover进行单元测试、运行SandCastle生成帮助文档四项功能, 并如何在集成开发环境中使用。一、集成开发环境的配置1.1 工具软件准备1.1.1 MSBuild只 要 安 装 过 VS2005 或 VS2008 后 , 就 可 以 是 路 径 C:WINDOWSMicrosoft.NETFramework 中看到 MSBuild 的三人版本,本例中使 用V3.5。另外还得从下面的网站下载一个MSBuild.Community.Tasks.msi文件, 里面有MSBuild的已经编写好的各种任务。下载地址如下:http:/msbuildtasks.tigris.org/1.1.2 NCoverNCover现有网上使用的主要有两个版本NCover3.1和NCover1.5.8,但由于 后者是免费版本,所以本例中使用NCover1.5.8版本,下载地址如下:http:/www.ncover.com/download/community1.1.3 其它软件其它软件如下所示:NUnit 2.5.1FxCop 1.36HTML Help CompilerSandcastle Help File Builder v 1.8.0.2以上包括1.1.1和1.1.2的软件均可在Redmine项目管理的集成开发环境的 配置的文件管理中下载,此处就不一一给链接了。下载后均按默认安装即可。但 因为要在命令行中使用MSBuild和FxCopcmd命令,所在在环境变量Path中加 入:C:WINDOWSMicrosoft.NETFrameworkv3.5;C:Program FilesMicrosoft FxCop 1.36;另外再增加两个新变量:DXROOT C:Program FilesSandcastle 和HHCEXE C:Program FilesHTML Help Workshop1.2编写MSBuild脚本文件关于MSBuild的常用脚本元素之前已在MSBuild的简单介绍与使用中说 过,这里就不再重复了,只针对每一功能的重要语句进行讲解,详情可以 Redmine 项目管理的集成开发环境的配置中下载MyProj.proj文件进行查看。1.2.1 编译系统脚本文件如下所示:其中参数如下:Projects: 必选的 ITaskItem 参数。指定要生成的项目文件。Properties:可选的String参数。以分号分隔的属性名称/值对列表,这些属 性名称/值对将作为全局属性应用于子项目。当使用 MSBuild.exe 生成项目时, 指定此参数在功能上等效于设置具有 /property 开关的属性。例如:Properties =Configuration=Debug;Optimize=$(Optimize)通过 Properties 参数向项目传递属性时,即使已加载项目文件, MSBuild 也 会创建该项目的一个新实例。创建项目的新实例后, MSBuild 会将其视为具有 不同的全局属性并且可与该项目的其他实例并行生成的不同项目。例如,“发布” 配置可与“调试”配置同时生成。Targets: 可选的 String 参数。指定要在项目文件中生成的一个或多个目标。 使用分号分隔目标名称列表。如果 MSBuild 任务中未指定目标,将会生成项目 文件中指定的默认目标。Output元素的参数含义如下:TaskParameter 必需。任务输出参数的名称。PropertyName: PropertyName 或 ItemName 属性是必需的。接收任务输出 参数值的属性。此后,项目可以使用 $(PropertyName) 语法引用该属性。此属性 名称可以是新的属性名称,也可以是已经在项目中定义的名称。如果 ItemName 还在使用,则不能使用此属性。ItemName: PropertyName 或 ItemName 属性是必需的。接收任务输出参数值 的项。此后,项目可以使用 (ItemName) 语法引用该项。该项的名称可以是新 的项名称,也可以是已经在项目中定义的名称。如果 PropertyName 还在使用, 则不能使用此属性。1.2.2 运行 FxCop 检查代码在 MSBuild.Community.Tasks 中本来有编译好的 FxCop 任务,但此处由于 FxCop 版本问题,不能使用,故仍使用 MSBuild 的 Exec 任务来集成 FxCop 检查 代码。脚本如下:!一 使用FxCopCmd命令对项目进行编码管理 一 /project:(FxCopFile)p文件(FxCop文件的生成在后边的集成环境的使用项目准备中会详细讲解)/out:$(DocFolder)$(FxCopResults)指定将要生成的 FxCop 结果文件1.2.3 运行 NUnit 进行单元测试MSBuild.Community.Tasks 中包含已编写好的 NUnit 任务,此处只要直接添 加任务并配置参数即可,其中详细参数可以参看 MSBuild.Community.Tasks 自带 的帮助文档,脚本文件如下所示:%(RootDir)%(Directory)bin$(Configuration)$(NUni tFile)ContinueOnError=trueAssemblies任务编译生成的结果(即项目的应用程序集)ToolPath: NUnit的安装路径WorkingDirectory: MSBuild 任务编译生成的结果(即项目的应用程序集)所在 的目录OutputXmlFile: 指定输入的 xml 结果文件ContinueOnError 指如果出错后是否继续执行124运行NCover检查NUnit覆盖率因为 NCover1.5.8 版本 不支 持 MSBuild.Community.Tasks 中 已编 写好的 NCover任务,所以只能用Exec任务来完成。NCove脚本文件如下: 因为单独使用NCover.Console命令执行会弹出项目应用程序集的对话框(如 果有的话),所以此处与NUnit 一块使用来避免(如果不阻止的话,后边在将编 写好的MSBuild集成到ccnet时会发生超时退出,因为无法关闭项目应用程序集的对话框)。%22$(NUnitCmd)%22 :导入 NUnit-console.exe 命令The /noshadow option disables shadow copying of the assembly in order to provide improved performance.%22(CodeAssemblies)%22:导入MSBuild任务编译生成的结果(即项目的应用程 序集)/l $(CodeCoverFolder)$(NCoverLogFile) :指定生成的 coverage-log 文件/x $(CodeCoverFolder)$(NCoverFile):指定生成的结果文件 COVeragel.Xml1.2.5 运行 SandCastle 生成帮助文档因为没有编写好的 SandCastle 任务,所以此处仍然用 Exec 任务来集成,脚 本文件如下:$ (DOUBLE_QUOTES) $ (MSBui ldCmd) $ (DOUBLE_QUOTES) : 导入MSBuildCmd 命令$(DOUBLE_QUOTES)(SandCastleHFBProject)$(DOUBLE_QUOTES):导入已生成好的.shfbproj 文件(使用Sandcastle Help File Builder生成,后边详细讲解如何生成)。1.2.6 清除垃圾文件在任务结果时应该将中间生成的无用文件进行删除,如下所示:%(RootDir)%(Directory)bin$(Configuration)*$(NUnitFile); (TestProjects-%(RootDir)%(Directory)bin$(Configuration)*$(LastTestRunSuc ceededFile);(TestProjects-%(RootDir)%(Directory)bin$(Configuration)*.bkp)先将无用的文件用CreatItem集合成一个Item,然后用Delete进行删除即可。二、集成开发环境的使用本集成环境的文件结构目录如下所示:地址I已 E:ccnet456文件夹
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号