加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

使用.NET命令行编译器编译项目(如ASP.NET、C#等)

发布时间:2020-03-13 13:16:01 所属栏目:Asp教程 来源:站长网
导读:很多情况你从网上下载了源程序,却苦于本机没装开发环境而不能编译查看,下面我简单说一下解决办法。

为了说明使用 csc.exe 的输入/输出选项的过程,我们将创建一个强命名的单文件程序集 (MyCodeLibrary.dll),以定义一个名为 SimpleType 的类类型。为了展示 /doc 选项的作用,我们还将生成一个 XML 文档文件。

首先,请在驱动器 C 上创建一个名为 MyCSharpCode 的新文件夹。在该文件夹中,创建一个名为 MyCodeLibrary 的子目录。使用您选择的文本编辑器(notepad.exe 就完全合乎需要)输入以下代码,并将该文件保存为刚刚创建的 C:MyCSharpCodeMyCodeLibrary 目录中的 simpleType.cs。

// simpleType.cs using System; namespace MyCodeLibrary { /// <summary> /// Simple utility type. /// </summary> public class SimpleType { /// <summary> /// Print out select environment information /// </summary> public static void DisplayEnvironment() { Console.WriteLine("Location of this program: {0}", Environment.CurrentDirectory); Console.WriteLine("Name of machine: {0}", Environment.MachineName); Console.WriteLine("OS of machine: {0}", Environment.OSVersion); Console.WriteLine("Version of .NET: {0}", Environment.Version); } } }

现在,打开命令提示,并且使用 cd(更改目录)命令导航到 simpleType.cs 文件的位置 (C:MyCSharpCodeMyCodeLibrary):

cd MyCSharpCodeMyCodeLibrary

cd C:MyCSharpCodeMyCodeLibrary

要将该源代码文件编译为名为 MyCodeLibrary.dll 的单文件程序集,请指定以下命令集:

csc /t:library /out:MyCodeLibrary.dll simpleType.cs

此时,您应当在应用程序目录中具有一个全新的 .NET 代码库,如图 2 所示。

使用.NET命令行编译器编译项目(如ASP.NET、C#等)

图 2. 新的 .NET 代码库

当在命令行编译多个 C# 文件时,可以分别列出每个文件 — 如果您希望编译包含在单个目录中的 C# 文件的子集,则这可能有所帮助。假设我们已经创建了另外一个名为 asmInfo.cs 的 C# 代码文件(保存在同一目录中),它定义了下列程序集级别属性以描述我们的代码库:

// asmInfo.cs using System; using System.Reflection; // A few assembly level attributes. [assembly:AssemblyVersion("1.0.0.0")] [assembly:AssemblyDescription("Just an example library")] [assembly:AssemblyCompany("Intertech Training")]

要只编译 simpleType.cs 和 asmInfo.cs 文件,请键入:

csc /t:library /out:MyCodeLibrary.dll simpleType.cs asmInfo.cs

正如您可能希望的那样,csc.exe 支持通配符表示法。因而,要编译单个目录中的所有文件,请仅将 *.cs 指定为输入选项:

csc /t:library /out:MyCodeLibrary.dll *.cs

使用 /recurse 指定子目录

在创建应用程序时,您肯定喜欢为您的项目创建逻辑目录结构。您可以通过将代码文件放到特定的子目录(Core、AsmInfo、MenuSystem 等等)中对它们进行组织,而不是将多达 25 个文件转储到名为 myApp 的单个目录中。尽管我们的当前示例只包含几个文件,但假设您将 AsmInfo.cs 文件放到一个名为 AsmInfo 的新的子目录(如图 3 所示)中。

使用.NET命令行编译器编译项目(如ASP.NET、C#等)

图 3. 新的 AsmInfo 子目录

要告诉 C# 编译器编译位于根目录以及 AsmInfo 子目录中的所有 C# 文件,请使用 /recurse 选项:

csc /t:library /out:MyCodeLibrary.dll /recurse:AsmInfo /doc:myDoc.xml *.cs

这里,/recurse 已经用特定子目录的名称限定。要指定多个子目录,我们可以再次使用通配符语法。如果我们要将 simpleType.cs 文件移到一个新的名为 Core 的子目录中,则我们可以用以下命令集编译所有子目录中的所有 C# 文件:

csc /t:library /out:MyCodeLibrary.dll /recurse:*.cs

在任何一种情况下,输出都是相同的。

使用 /doc 生成 XML 文档文件

SimpleType 类已经配备了各种 XML 元素。就像您很可能知道的那样,C# 编译器将使用这些带有三条斜杠的代码注释生成 XML 文档文件。要告诉 csc.exe 创建这样的文件,必须提供 /doc 选项,并且用要生成的文件的名称修饰它:

csc /t:library /out:MyCodeLibrary.dll /recurse:*.cs /doc:myDoc.xml

在应用程序目录中,您现在应当看到一个名为 myDoc.xml 的新文件。如果您打开该文件,则会发现您的类型以 XML 的形式进行了说明,如图 5 所示。

使用.NET命令行编译器编译项目(如ASP.NET、C#等)

图 5. XML 形式的类型文档

如果您希望了解 C# XML 代码注释的详细信息,则请参阅文章 XML Comments Let You Build Documentation Directly From Your Visual Studio .NET Source Files

使 /keyfile 建立强名称

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读