Welcome 微信登录
编程资源 图片资源库

首页 / 软件开发 / .NET编程技术 / CLR笔记:2.生成,打包,部署,管理

CLR笔记:2.生成,打包,部署,管理2011-10-26 博客园 包建强2.1 .NET Framework部署目标

非.NET程序的问题:

1.DLL hell

2.安装复杂。目录分散,注册表,快捷方式

3.安全性。悄悄下载恶意代码

2.2 将类型集成到模块中——编译器工具csc

csc /out:Program.exe /t:exe /r:Mscorlib.dll Program.cs

由于C#会自动引用Mscorlib.dll,可以省略 /r:Mscorlib.dll

C#默认生成exe(CUI), 所以/t:exe可以省略;dll(程序集 /t:library)和GUI(可视化应用程序 /t:winexe)时不可以省略

C#默认编译成Program.exe,所以/out:Program.exe可以省略

最后精简为:

csc Program.cs

如果不希望默认引用Mscorlib.dll,使用/nostdlib开关

csc /nostdlib Program.cs

注:/t可以写为/target,/r可以写为/reference

/reference:指定引用的dll,可以使用完整路径;如果是不完整的,在以下目录依次查找:

1.工作目录(要编译的cs文件所在)

2.系统目录(csc.exe所在)

3./lib开关指定的目录

4.LIB系统变量指定的目录

应答文件(Response File)

包括一系列编译器命令行开关,执行csc时会将其打开,例如MyProject.rsp中有以下文本:

/out:Program.exe

/t:exe

/r:Mscorlib.dll

那么调用如下:csc @MyProject.rsp Program.cs

这个应答文件的位置,运行csc命令时,先在当前目录(Program.cs所在)查找;后在系统目录(csc.exe 所在)查找,如果都有就以前者为准

使用/noconfig开关指定忽略rsp文件