3Hello Mono本章内容 ü Mono命令ü Hello Monoü Mono的开发工具ü Mono中文问题 3.1 Mono命令正确安装Mono之后,就可以使用mono的C#编译器mcs编译cs文件了。Mono一般有以下的工具:mono:mono 的JIT编译器,运行mono程序mcs:c#编译器gmcs:符合C#2.0规范的编译器,正在实现中mbas:basic编译器MonoDevelop:Mono IDE开发工具monodoc:帮助文件查看工具mint:Mono解释器(Interpreter),以解释的形式运行mono程序ilasm:Mono汇编程序monodis:Mono反汇编器al:程序集链接器cert2spc:发行者证书测试工具certmgr:证书管理器工具管理证书、证书信任列表和证书吊销列表 chktrust:证书验证工具检查用 Authenticode 证书签名的文件的有效性cilc:Mono CIL2C的binding产生器,可以为配件产生c的接口disco:Web 服务发现工具gacutil:全局程序集缓存工具可以查看和操作全局程序集缓存genxs:Mono XML序列化产生器makecert:证书创建工具monograph:显示配件的调用关系和类型层次结构monop:Mono 类大纲查看器monoresgen:Mono资源产生器resgen:IL资源产生工具secutil:从程序集提取 X.509 证书的强名称信息或公钥setreg:设置注册表工具使您得以更改公钥密码的注册表设置signcode:文件签名工具使用sn:强名称工具有助于使用强名称对程序集进行签名soapsuds:编译使用Remote与 XML Web services 通信的客户端应用程序sqlsharp:sql命令行交互式工具wsdl:Web 服务描述语言工具xsd:XML 架构定义工具 最常用的是mcs、mono和gacutil。mcs的语法 mcs [参数] 源文件参数可以使用-option或者/option的方式。 参数: --about 显示c#编译器的信息 -checked[+][-]指定溢出数据类型边界的整数算法是否将在运行时导致异常。 -codepage:ID指定编译中的所有源代码文件所使用的代码页 -clscheck[+][-] 禁止编译器依附关系检查 -define:S1[;S2] 定义一个或多个符号,可以简写为/d -debug[+][-] 产生调试信息 -delaysign[+][-] 仅仅将公钥插入到配件中,并不进行签名 -doc:File 产生XML文档,利用ndoc工具可以产生类似MSDN的文档 -g 产生调试信息 -keycontainer:NAME 指定用来强命名(strongname)配件的密钥对 -keyfile:FILE 指定用来强命名的密钥文件 -lib:PATH1,PATH2 增加配件链接的路径 -main:class 指定入口点(entry point),也就是缺省可执行的那个类 -noconfig[+][-] 不使用默认的参考编译,和微软的csc的/noconfig对应 -nostdlib[+][-] 不导入标准库 -nowarn:W1[,W2] 显示一个或者多个警告信息 -out:FNAME 指定输出文件名 -pkg:P1[;P2] 引用包P1…P2 --expect-error X 期望抛出X异常 -resurce:SPEC搜索指定目录中要编译的源文件 -reference:ASS 编译时引用ASS配件 -target:KIND 编译输出类型,可以是exe、winexe、liberary和module -unsafe[+][-] 编译使用 unsafe 关键字的代码 -warnaserror[+][-] 将警告作为错误对待 -warn:LEVEL 警告等级,最高是4,缺省是2 -help2 获得更多帮助信息 -linkresource:FILE[,ID] 链接一个资源文件 -resource:FILE[,ID] 嵌入一个资源文件 -win32res:FILE 链接一个win32资源文件 -win32icon:FILE 指定图标 @FILE指定响应文件,文件列出了编译器选项或要编译的源代码文件的文件 mono的语法 mono [参数] 配件 参数如下: --compile METHOD 只编译配件中指定的方法 --ncompile N 编译此方法的次数,缺省是1 --regression 运行纠正测试 --print vtable 输出所有用到的类的vtable --trace[=EXPR] 允许跟踪 --compile-all 编译配件中所有的方法 --breakonex 在异常上插入一个断点 --break METHOD 在方法的入口上插入一个断点 --debug 允许调试 --stats 输出JIT操作的统计信息 --statfile FILE 设置统计文件 --aot 将配件编译成本地程序 --profile[=profiler] 指定profiler --graph[=TYPE] METHOD 画一图形(cfg、dtree、code、ssa、optcode) --config FILE 指定Mono的配置文件 --verbose显示更详细消息 --help 帮助信息 --version 显示版本信息 --optimize=OPT 性能优化 gacutil的用法 gacutil [命令] [参数] 命令如下:-i [-check_refs] [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 安装配件到全局程序缓存中 配件所在路径,配件钥包含配件清单(manifast) 例如: -i myDll.dll -il [-check_refs] [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 安装多个配件到全局程序缓存中 一个文件,包含要增加的配件列表 例如:-il assembly_list.txt assembly_list.txt 的内容: assembly1.dll assembly2.dll -u [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 从全局程序缓存中卸载指定配件 配件名称或者配件的部分名称,如果是部分名称,所有符合这个名称的配件都会被卸载 例如 -u myDll,Version=1.2.1.0 -ul [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 从全局程序缓存 猜你喜欢