c#和.net 2.0实战:平台、语言与框架3

c#和.net 2.0实战:平台、语言与框架3

ID:26138816

大小:3.12 MB

页数:28页

时间:2018-11-25

c#和.net 2.0实战:平台、语言与框架3_第1页
c#和.net 2.0实战:平台、语言与框架3_第2页
c#和.net 2.0实战:平台、语言与框架3_第3页
c#和.net 2.0实战:平台、语言与框架3_第4页
c#和.net 2.0实战:平台、语言与框架3_第5页
资源描述:

《c#和.net 2.0实战:平台、语言与框架3》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章 生成、部署以及配置.NET应用程序  613第3章生成、部署以及配置.NET应用程序3.1用MSBuild生成应用程序随.NET2平台一起发布的还有一个名为msbuild.exe的新工具,该工具用于生成.NET应用程序。它接受XML文件,该文件本着makefile文件的精神,描述了生成过程中的任务序列。实际上,在项目开始的时候,微软为该工具起了XMake这样一个代码名。msbuild.exe可执行程序位于.NET的安装文件夹[Windows安装文件夹]Microsoft.NETFrameworkv2.0.50

2、727中。在写作本书时,MSBuild计划成为WindowsVista操作系统的一部分。它的作用范围将可能扩大到构造所有类型的应用程序。迄今为止,你可以用以下任何一种方法构造.NET应用程序:q使用VisualStudio的Build命令。q将VisualStudio的devenv.exe可执行文件作为命令行工具使用。q使用一个第三方工具(如开源工具NAnt),或者还可使用一个调用C#编译器csc.exe的批处理文件。MSBuild旨在统一以上这些技术。了解NAnt的开发者对此不会陌生,因为MSBuild从该工具中借鉴了

3、很多概念。MSBuild较之于NAnt的主要优势在于它被VisualStudio2005所采用。MSBuild并不依赖于VisualStudio2005,因为它本身就是.NET2平台的组成部分之一。尽管如此,VisualStudio2005在生成项目时所产生的.proj、.csproj、.vbproj等文件都是以MSBuild的XML格式撰写的。在编译期间,VisualStudio2005使用MSBuild的服务。此外,MSBuild所使用的XML格式得到了充分的支持并有文档描述。对MSBuild的支持是VisualStu

4、dio2005的一个显著进步,因为迄今为止它一直使用的是未公开的生成脚本。3.2MSBuild:目标、任务、属性、项与条件3.2.1.proj文件、目标与任务MSBuildXML文档的根元素是,该元素包含了多个元素,这些元素是名为目标(target)的生成单元。一个MSBuild项目可以包含多个目标并且msbuilder.exe能够把多个任务的执行链接起来。当你通过命令行启动了msbuilder.exe,它会以当前文件夹下的那个单独的.proj作为输入。如果有多个.proj

5、文件,你必须为msbuilder.exe指定使用其中哪个。必须指定一个单独的文件。一个MSBuild目标是一个MSBuild任务的集合。每个元素的子元素构成了一个任务的定义。一个目标所包含的任务按照它们声明的顺序被执行。MSBuild提供了大约40种类型的任务,见下表。任务类型描述第3章 生成、部署以及配置.NET应用程序  61Copy从源文件夹向目标文件夹复制一个文件MakeDir创建一个文件夹Csc调用csc.exeC#编译器Exec执行一个系统命令AL调用al.exe工具(AssemblyLinke

6、r,程序集链接器)ResGen调用resgen.exe工具(ResourcesGenerator,资源生成器)可能的任务的完整名单可以在MSDN上一篇名为MSBuildTaskReference的文章中找到。MSBuild一个有意思的方面在于它每种类型的任务都是由一个.NET类实现的。这样就可以通过提供自定义的类为MSBuild扩展新类型的任务,稍后我们会讨论这个话题。让我们回顾一下2.3节那个多模块的程序集的例子。提醒一下,为了生成这个由Foo1.exe、Foo2.netmodule与Image.jpg3个模块构成的程序

7、集,必须执行以下两个命令:此外,我们还希望在程序集构造结束的时候,这3个模块能够被放置在当前目录的bin子目录下。下面是完成同样工作的MSBuild项目Foo.proj:例3-1Foo.proj可以看到名为FooCompilation的目标由4个任务组成:q一个类型为MakeDir的任务创建了bin子目录;q一个类型为Copy的任务将Image.jpg复制到了bin子目录下;q两个类型为Csc的任务调用了csc.exe编译器。为了执行该生成项目,需要创建一个包含以下文件的文件夹:通过命令行窗口进入该文件夹(开始菜单>

8、Microsoft.NETFrameworkSDKv2.0>SDKCommandPrompt),然后运行msbuild.exe命令。每一个目标必须被命名。默认情况下,msbuild.exe仅执行第一个目标。可以使用/target(缩写/t)指定目标名单,并通过分号将它们隔开。也可以使用项目中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。