Hello Mono


** 3 **


Hello 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 CIL 2C 的 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

 1<assembly_path> [-check_refs] [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 
 2
 3安装配件到全局程序缓存中 
 4
 5<assembly_path> 配件所在路径  ,  配件钥包含配件清单  (manifast) 
 6
 7例如  : -i myDll.dll 
 8
 9-il <assembly_list_file> [-check_refs] [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 
10
11安装多个配件到全局程序缓存中 
12
13<assembly_list_file> 一个文件,包含要增加的配件列表 
14
15例如:  -il assembly_list.txt 
16
17assembly_list.txt  的内容: 
18
19assembly1.dll 
20
21assembly2.dll 
22
23-u <assembly_display_name> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 
24
25从全局程序缓存中卸载指定配件 
26
27<assembly_display_name> 配件名称或者配件的部分名称,如果是部分名称,所有符合这个名称的配件都会被卸载 
28
29例如  -u myDll,Version=  1.2.1  .0 
30
31-ul <assembly_list_file> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 
32
33从全局程序缓存中卸载配件 
34
35<assembly_list_file> 包含配件列表的文件名 
36
37例如  : -ul assembly_list.txt 
38
39assembly_list.txt  的内容 
40
41assembly1,Version=  1.0.0  .0,Culture=en,PublicKeyToken=0123456789abcdef 
42
43assembly2,Version=  2.0.0  .0,Culture=en,PublicKeyToken=0123456789abcdef 
44
45-us <assembly_path> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] 
46
47从全局程序缓存中卸载配件 
48
49<assembly path=""> 配件所在路径 
50
51Example: -us myDll.dll 
52
53-l [assembly_name] [-root ROOTDIR] [-gacdir GACDIR] 
54
55列出全局程序缓存中所有的配件 
56
57如果指定  <assembly_name> 参数,将只显示符合参数的配件 
58
59-? 
60
61显示帮助信息 
62
63参数如下: 
64
65-package <name>
66
67用来在  prefix/lib/mono  目录下增加一个名为  NAME  的目录  ,  然后增加一个从  NAME/assembly_name  到全局程序缓存中的配件的一个链接 
68
69-gacdir <gacdir>
70
71指定全局程序缓存的目录,如果不是标准的全局程序缓存目录,将使用  MONO_GAC_PATH  环境变量来引用配件。 
72
73-root <rootdir>
74
75用来集成  automake  工具 
76
77-check_refs 
78
79检查将要导入的配件不被任何未强命名的配件引用 
80
81-f 
82
83Mono gacut  不考虑兼容性,  gacutil</rootdir></gacdir></name></assembly_name></assembly></assembly_path></assembly_list_file></assembly_list_file></assembly_display_name></assembly_display_name></assembly_list_file></assembly_list_file></assembly_path></assembly_path>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus