.net不能对单个文件进行编译和调试吗??????????

wjqwjq 2004-02-12 12:58:36
///
...全文
73 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
marvelstack 2004-03-21
  • 打赏
  • 举报
回复
详细的操作说明


Visual C# .NET 编译器选项

- 输出文件 -
/out:<file> 输出文件名(默认值: 包含主类的文件或第一个文件的基名称)
/target:exe 生成控制台可执行文件(默认) (缩写: /t:exe)
/target:winexe 生成 Windows 可执行文件 (缩写: /t:winexe)
/target:library 生成库 (缩写: /t:library)
/target:module 生成能添加到其他程序集的模块 (缩写: /t:module)
/define:<symbol list> 定义条件编译符号 (缩写: /d)
/doc:<file> 要生成的 XML 文档文件

- 输入文件 -
/recurse:<wildcard> 根据通配符规范,包括当前目录和子目录下的所有文件
/reference:<file list> 从指定的程序集文件引用元数据 (缩写: /r)
/addmodule:<file list> 将指定的模块链接到此程序集中

- 资源 -
/win32res:<file> 指定 Win32 资源文件(.res)
/win32icon:<file> 使用该图标输出
/resource:<resinfo> 嵌入指定的资源 (缩写: /res)
/linkresource:<resinfo> 将指定的资源链接到此程序集中 (缩写: /linkres)

- 代码生成 -
/debug[+|-] 发出调试信息
/debug:{full|pdbonly} 指定调试类型(“full”是默认类型,可以将调试程序附加到正在运行的程序)
/optimize[+|-] 启用优化 (缩写: /o)
/incremental[+|-] 启用增量编译 (缩写: /incr)

- 错误和警告 -
/warnaserror[+|-] 将警告视为错误
/warn:<n> 设置警告等级(0-4) (缩写: /w)
/nowarn:<warning list> 禁用特定的警告消息

- 语言 -
/checked[+|-] 生成溢出检查
/unsafe[+|-] 允许“不安全”代码

- 杂项 -
@<file> 有关更多选项,请阅读响应文件
/help 显示此用法信息 (缩写: /?)
/nologo 取消编译器版权信息
/noconfig 不要自动包含 CSC.RSP 文件

- 高级 -
/baseaddress:<address> 要生成的库的基址
/bugreport:<file> 创建一个“错误报告”文件
/codepage:<n> 指定打开源文件时要使用的代码页
/utf8output 以 UTF-8 编码格式输出编译器消息
/main:<type> 指定包含入口点的类型(忽略所有其他可能的入口点) (缩写: /m)
/fullpaths 编译器生成完全限定路径
/filealign:<n> 指定用于输出文件节的对齐方式
/nostdlib[+|-] 不引用标准库(mscorlib.dll)
/lib:<file list> 指定要在其中搜索引用的附加目录


通过在命令行上键入 C# 编译器可执行文件的名称 (csc.exe),可以在命令行调用 C# 编译器。
如果希望从计算机上的任何子目录调用 csc.exe,可能需要调整路径。


运行 VCVARS32.BAT
vcvars32.bat 设置适当的环境变量以启用命令行编译。
运行 VCVARS32.BAT
在命令提示处,更改为安装的 \bin 子目录。
通过键入 VCVARS32,运行 VCVARS32.bat。
警告 VCVARS32.bat 因计算机的不同而变化。
不要用其他计算机上的 VCVARS32.bat 替换丢失或损坏的 VCVARS32.bat 文件。
重新运行安装程序以替换丢失的文件。

如果 Visual Studio 当前版本安装在已经拥有 Visual Studio 早期版本的计算机上,则不应在同一命令窗口中运行来自不同版本的 vcvars32.bat。
C# 编译器和 C++ 编译器输出之间的差异
作为调用 C# 编译器的结果,没有创建任何对象 (.obj) 文件;直接创建输出文件。因此,C# 编译器不需要链接器。
命令行语法规则
当解释操作系统命令行上给出的参数时,C# 编译器代码使用下面的规则:
参数用空白分隔,空白可以是一个空格或制表符。
^ 字符 (^) 未被识别为转义符或者分隔符。该字符在被传递给程序中的 argv 数组前,完全由操作系统的命令行分析器进行处理。
无论其中有无空白,包含在双引号 ("string") 中的字符串均被解释为单个参数。带引号的字符串可以嵌入在参数内。
前面有反斜杠的双引号 (\") 被解释为原义双引号字符 (")。
反斜杠按其原义解释,除非它们紧位于双引号之前。
如果偶数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,并且双引号被解释为字符串分隔符。
如果奇数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,双引号由其余的反斜杠“转义”,使原义双引号 (") 被放置在 argv 数组中。

命令行示例
编译 File.cs 以产生 File.exe:
csc File.cs
编译 File.cs 以产生 File.dll:
csc /target:library File.cs
编译 File.cs 并创建 My.exe:
csc /out:My.exe File.cs
通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件。输出为 File2.exe:
csc /define:DEBUG /optimize /out:File2.exe *.cs
编译当前目录中所有的 C# 文件,以产生 File2.dll 的调试版本。不显示任何徽标和警告:
csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
将当前目录中所有的 C# 文件编译为 Something.xyz(一个 DLL):
csc /target:library /out:Something.xyz *.cs

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧