源程序最好有.csproj或.vbproj文件,没有的话,要花些时间调试
下面我以VB.NET做示例讲解一下:
从proj我们可以获取以下有用信息
Settings小节中有很多配置选项,对应一些编译器选项
<References>小节中是项目的引用,第3方类库最好用绝对路径
<Imports>小节中是要导入的一些命名空间
<Files>小节中有项目的所有文件,选取 BuildAction = "Compile"的文件
用vbc测试了一下,很容易,注意以下几项:
rootnamespace
reference
target
imports
加上bugreport可以将所有的源文件代码和bug报告输出。不错
给你一端编译示例:
vbc /r:System.dll /r:System.Data.dll /r:System.Drawing.dll /r:System.Web.dll /r:System.Xml.dll /r:bin\Microsoft.ApplicationBlocks.Data.dll /r:bin\ExportTechnologies.WebControls.RTE.dll /imports:Microsoft.VisualBasic /imports:System /imports:System.Collections /imports:System.Configuration /imports:System.Data /imports:System.Drawing /imports:System.Web /imports:System.Web.UI /imports:System.Web.UI.HtmlControls /imports:System.Web.UI.WebControls /imports:MMS /rootnamespace:MMS /t:library /out:Truly.MMS.dll /bugreport:bug.log AssemblyInfo.vb Global.asax.vb HDAdd.aspx.vb HDticketLogAdd.aspx.vb MIS.vb PageBase.vb Utils.vb
如果没有proj文件,那么可以用下面的命令获取:
dir /b *.vb > filelist.txt
csc的使用方法就靠你自己去琢磨了。这样编译出来的跟vs是有1点区别的,因为我们很多选项没有配置,但是经过测试,基本可以正常工作的。
-------------------------------------------------------------------------------------------------------
使用 C# 2.0 命令行编译器
http://msdn.microsoft.com/zh-cn/library/ms379563(vs.80).aspx#mainSection
摘要:本文分析了使用 C# 命令行编译器 csc.exe 生成应用程序的过程。同时,还将向读者介绍很多为 C# 2.0 独有的编译器选项,例如,extended/reference 标志和强名称支持。阅读完本文的内容之后,您将能够轻松地在没有向导的环境中生成单文件程序集和多文件程序集。
适用于:
Microsoft Visual C# 2.0
注 本文假定您熟悉 C# 编程语言和 .NET Framework 的结构。体验一下使用命令行工具的感觉还将证明很有帮助。
下载 CSCSample.msi 文件。
scsc.exe 带来的乐趣
几乎没有人会否认集成开发环境 (IDE)(例如,Visual Studio 2005 和 Visual C# Express 2005)所提供的能使编程工作变得相当简单的诸多功能。但是,实际上 IDE 自己通常不能提供对基础编译器的所有方面的访问。例如,Visual Studio 2005 不支持生成多文件程序集。
此外,了解在命令行编译代码的过程,对于具有以下特征的用户可能有用:
-
偏爱最简单的生成 .NET Framework 应用程序的方法。
-
希望揭开 IDE 处理源代码文件的方法的秘密。
-
希望利用 .NET 生成实用工具,例如,nant 或 msbuild。
-
没有集成开发环境,例如,Visual Studio(但实际上具有免费提供的 .NET Framework SDK)。
-
正在基于 Unix的系统(在该系统中,命令行是必须使用的工具)上使用 .NET Framework,并且希望更好地了解 Mono 和/或 Portable .NET ECMA 兼容 C# 编译器。
-
正在研究当前未集成到 Visual Studio 中的备选 .NET 编程语言。
-
只是希望扩展他们的 C# 编程语言知识。
如果您属于上面所述的这些用户,那么就忠实于自己的选择并继续读下去吧。
C# 编译器选项概览
C# 编译器 csc.exe 提供了大量用于对创建 .NET 程序集的方式进行控制的选项。站在一个较高层次来看,命令行选项属于下列八个类别之一(表 1)。
表 1. csc.exe 提供的标记的类别
C# 编译器类别 |
定义 |
---|---|
输出文件 |
用于控制所生成的程序集的格式、可选的 XML 文档文件和强名称信息的选项。 |
输入文件 |
使用户可以指定输入文件和引用的程序集的选项。 |
资源 |
用于将任何必需的资源(例如,图标和字符串表)嵌入到程序集中的选项。 |
代码生成 |
这些选项控制调试符号的生成。 |
错误和警告 |
控制编译器处理源代码错误/警告的方式。 |
语言 |
启用/禁用 C# 语言功能(例如,不安全代码)以及条件编译符号的定义。 |
杂项 |
该类别的最有趣的选项使您可以指定 csc.exe 响应文件。 |
高级 |
该类别指定一些更加深奥并且通常不太重要的编译器选项。 |
注 1.0 和 1.1 版本的 C# 编译器中存在的 /incremental 标志现在已过时。
在阅读本文的过程中,您将了解每个编译器类别中存在的核心 标志(最重要的词是核心)。对于大多数开发方案,可以安全地忽略 C# 编译器的很多高级选项。如果您需要有关本文未予讨论的 csc.exe 功能的详细信息,请尽管放心,您可以参阅 Microsoft Visual Studio 2005 文档帮助系统(只须从“Search”选项卡中搜索“csc.exe”并深入查阅)。
注 MSDN 文档也会对您也很所帮助,因为它描述了如何在 Visual Studio(如果可用)内部设置 csc.exe 的特定选项。
配置环境变量
在使用任何 .NET SDK 命令行工具(包括 C# 编译器)之前,需要配置开发计算机以识别它们的存在。最简单的方法是使用 Start | All Programs | Visual Studio 2005 | Visual Studio Tools 菜单选项,启动预配置的 Visual Studio 命令提示。这一特定的控制台能够自动初始化必要的