C#命令行编辑器csc.exe

csc.exe是.NET Framework SDK中的一个工具,当然用VS舒服多了...
不怕麻烦或者小硬盘的可以用用看,下面是些基本编辑,编译,调试操作(很不详细,详细请看MSDN :) ):
1.配置C#命令行编辑器:
我的电脑 - 属性 - 高级 - 环境变量 - 系统变量列表对话框 - 双击Path变量 - 
在当前路径值的末尾加入(路径变量里各值用分号区隔): C:\Windows\Microsoft.NET\Framework\v2.0.50727 (注意,路径和版本号会因为你的安装和下载的不同而不同,自己到安装目录下看看)

如果配置成功,在命令窗口中输入: csc /? 将显示C#编译器支持的选项列表.

2.配置其他.NET命令行工具:
将附加路径变量加入系统变量列表框: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin

如果配置成功,在命令窗口中输入:gacutil /? 查看GAC工具gacutil.exe的各个选项.

3.使用csc.exe和记事本构建C#应用程序:
- 使用记事本编辑源代码,并保存为.cs格式,如TestApp.cs,存储路径C:\CscExample\
//TestApp.cs 
using System;
class TestApp
{
   public static void Main()
   {
    Console.WriteLine("Testing!");
   }
}
- 打开cmd,转到源文件保存的目录
- 输入命令: csc /target:exe TestApp.cs 将TestApp.cs编译成名为TestApp.exe的console应用程序

C#编译器的输出选项(详细查阅相关手册或MSDN):
选项    作用
------------------------------------------------------------------------------------------------------------------
/out    该选项用于指定被构建出的程序集的名字。默认条件下,程序集的名字或者与最初输入的*.cs文件名字相同(生成
    *.dll文件的情况下),或者与包含程序的Main()方法的那个类型的名字相同(生成*.exe文件的情况下)
------------------------------------------------------------------------------------------------------------------
/target:exe   本选项构建一个可执行的控制台应用程序。这是默认的文件输出类型,并且在创建该应用程序类型时可被忽略。
------------------------------------------------------------------------------------------------------------------
/target:library 本选项构建一个单一文件*.dll程序集。
------------------------------------------------------------------------------------------------------------------
/target:module 本选项构建一个模块(module)。所谓模块是指组成多文件程序集的元素。
------------------------------------------------------------------------------------------------------------------
/target:winexe 本选项构建一个可执行的windows应用程序,尽管使用/target:exe也能创建窗体应用程序,但本选项创建的程序
    运行时不会有控制窗口出现在桌面背景上。
------------------------------------------------------------------------------------------------------------------

4.引用外部程序集:
修改TestApp.cs,显示一个Windows窗体消息框:
//TestApp.cs 
using System;
using System.Windows.Forms;

class TestApp
{
   public static void Main()
   {
    Console.WriteLine("Testing!");
    MessageBox.Show("Hello!");
   }
}
在命令行中,必须通知csc.exe,哪个程序集包含了“所用的“命名空间。因此,必须使用/reference标志指定System.Windows.Forms.dll

csc /reference:System.Windows.Forms.dll TestApp.cs

5.使用csc.exe编译多个源文件:
- 显式的列出各个导入文件来编译C#文件: csc /r:System.Windows.Forms.dll TestApp.cs HelloMsg.cs
- 使用通配符(*)通知csc.exe: csc /r:System.Windows.Forms.dll *.cs
//TestApp.cs
using System;

class TestApp
{
   public static void Main()
   {
    Console.WriteLine("Testing!");
    HelloMessage h = new HelloMessage();
    h.Speak();
   }
}

//HelloMsg.cs
using System;
using System.Windows.Forms;

class HelloMessage
{
   public void Speak()
   {
    MessageBox.Show("Hello!");
   }
}

6.引用多个外部程序集:
- 使用分号列出各个程序集: csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs

7.使用csc.exe响应文件(respose file):
- C#响应文件包含了在当前构建的编译期间要用到的所有指令,通常约定,响应文件的扩展名为*.rsp
- 响应文件中注释使用“#”字符标识
- 在编译指令中响应文件前加@符号: csc @TestApp.rsp
- /reference标志具有累加性,而其他标志(如/out)将用后面的命令覆盖前面的命令
- 可以指定多个响应文件作为输入(例如csc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp)
- 也可混合使用响应文件和标志(例如csc /out:TestApp.exe @TestApp.rsp)

# 建立4中TestApp.exe的响应文件 TestApp.rsp
#
# 外部程序集引用
/r:System.Windows.Forms.dll
#
# 用于编译的输出和文件
/target:exe /out:TestApp.exe *.cs

8.默认的响应文件csc.rsp:
- C#编译器有一个相关联的默认响应文件csc.rsp, 该响应文件与csc.exe在同一目录.
- 当用csc.exe构建C#程序时,该文件将自动被引用(即使提供了自定义*.rsp文件时)
- 要取消自动读取csc.rsp,可以指定 /noconfig 选项
################################################################################
命令行调试器(cordbg.exe):

- 使用cordbg /? 查看调试器提供的标志选项

部分有用的cordbg.exe命令行标志:
标志(全称/缩写) 作用
----------------------------------------------------
b[reak]   设定或显示当前断点
del[ete]   去除一个或多个断点
ex[it]    退出调试器
g[o]    继续调试当前进程直至发现下一个断点
o[ut]    退出当前函数
p[rint]    打印所有加载的变量(局部,实参等)
si    进入下一行
so    越过下一行
----------------------------------------------------
在命令行进行调试:
- 给应用程序生成调式数据: csc @TestApp.rsp /debug , 将生成一个名为TestApp.pdb的关联文件
- 将欲调试的.NET程序集指定为命令行实参,进入调试模式(*.pdb文件将被自动加载: cordbg.exe TestApp.exe 
- 使用cordbg.exe命令行标志进行调试

时间: 2024-10-09 16:15:21

C#命令行编辑器csc.exe的相关文章

sed命令行编辑器 【原创】

sed命令行编辑器 sed是非交互式的编辑器,它按行处理对象文件,但不修改处理文件本身,而是逐行读入文件内容并在临时缓存区保存副本并对其进行处理.处理完成每一行就将该行目标内容打印到屏幕,并将该缓存区内容删除,然后读入下一行进行处理.另外需要注意的是,和grep不同,sed不论是否知道指定的模式,它的退出状态都是0(Linux中通常代表真).只有存在语法错误时,sed的退出状态才不是0. 用单引号,双引号没有用 默认修改原文件, -n 静默显示 -i 修改源文件 -e 脚本 -f 指定文件,里面

PHP命令行执行程序php.exe使用及常用参数

PHP命令行执行程序php.exe参数说明 -f <file>:以命令行方式运行指定的PHP文件,只要指定具体的PHP文件(带绝对路径),php.exe就可以执行PHP文件,所以这个参数单个使用其实有没有都无所谓,他有点类似于在游览器方式下显示PHP执行的结果,区别在于由于是以命令行方式运行,它是以HTML源码的形式输出,如果执行有错误,也会列出出错信息. 使用方法 c:\php\php -f <file> 或 c:\php\php <file> -F <file

让 windows 下的命令行程序 cmd.exe 用起来更顺手

在 Windows 下使用 Larave 框架做开发,从 Composer 到 artisan 总是避免不了和 cmd.exe 打交道,系统默认的命令行界面却是不怎么好看,且每行显示的字符数是做了限制.伟大的 cmd.exe ,就是这么任性! 一些情况下,我们需要让每行显示更多的字符,从而避免频繁的换行导致界面出现出现一堆乱糟糟的字符串.当然,你或许也已经看烦了黑底白字的 cmd.exe 界面. 那么,如何改善这种现状呢?其实很简单, cmd.exe 具备一些基本的设置功能,只是不常用而已.如下

WinRAR命令行版本 rar.exe使用详解

RAR 命令行语法~~~~~~~~~~~~~~ 语法 RAR.exe <命令>  [ -<开关> ]  <压缩文件>  [ <@列表文件...> ]       [ <文件...> ]  [ <解压路径\> ] 常用命令 a       添加文件到压缩文件中. 例子: 1) 从当前目录添加所有的 *.hlp 文件到 help.rar 压缩文件: rar a help *.hlp 2) 如果目录包含文件掩码或以反斜线结尾,将会应用普通的

用csc命令行手动编译cs文件

一般初学c#时,用记事本写代码,然后用命令行执行csc命令行可以编译cs文件.方法有两种 1:配置环境,一劳永逸 一般来说在C:\Windows\Microsoft.NET\Framework\v4.0.30319; 右键点击"计算机"--"属性"--"高级系统设置"--"环境变量"--"系统变量",找到变量Path      将Path中加上路径:C:/WINDOWS/Microsoft.NET/Fram

DB2——命令窗口和命令行处理器

DB2命令窗口和命令行处理器实际上都是CMD命令窗口生成的,具体区别如下 菜单与可执行文件的对应关系 D:\Program Files\IBM\SQLLIB\BIN\ DB2 命令窗口 - Administrator <----> db2cwadmin.bat DB2 命令窗口 <----> DB2CW.BAT DB2 命令行处理器 <----> DB2CMD.exe 参数为:DB2SETCP.BAT DB2.EXE DB2 命令行处理器加强版 <---->

Bash命令行编辑

1.Readline库和命令行编辑 bash shell提供了两个内置编辑器:emacs和vi,利用它们可以以交互模式对命令行列表进行编辑,这项特性是通过Readline库的软件包实现的.当使用命令行编辑功能时,无论是vi还是emacs模式,都是readline的函数决定哪一个键对应哪一项功能.例如,使用emacs模式,则Ctrl-P允许在历史列表中向上滚动. 2.设置命令行编辑器 内置emacs编辑器是默认的内置编辑器.#set -o vi //设置vi为命令行编辑器 #set -o emac

关于命令行参数

MFC命令行参数获取 int  nNum= 0; LPWSTR*  lp=CommandLineToArgvW(GetCommandLineW(), &nNum); ASSERT(0); for (int i = 0;i<nNum;i++) { AfxMessageBox(lp[i]); } 当用aa.bat调用aa.exe或者在命令提示符下输入"aa.exe -999"的时候,aa.exe收到的第1个命令行参数是exe的路径,第2个是-999 当用CreateProce

QT中QProcess调用命令行的痛苦经历

阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了2天仍然没找到原因,使用另外一种办法解决了. 回到顶部 创建压缩包的方法 在windows平台创建压缩包,可以直接使用rar.exe,该程序在安装winrar之后,在其安装目录下就可以找到.该程序是winrar对应的命令