命令行编译器vbc.exe和csc.exe的使用
将quote.vb编译成quote.dll文件,使用的命令是:vbc.exe,我用的机器上装的是win server 2003 .命令所在的路径为:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 。在DOS命令符下进入上面的目录,将quote.vb复制到当前目录中,再用命令vbc /t:library quote.vb,ok,完成编译,再将生成的quote.dll剪切到bin目录中(说明:/bin目录必须是你的应用程序根目录的直接子目录。在默认情况下是\wwwroot\bin\,但是,如果你的应用程序被包含在一个虚拟目录中,那么必须在虚拟目录的根目录中创建/bin目录),例如我建了一个虚拟目录aspx,我将showquote.aspx存在/aspx/3/showquote.aspx,那么我就要将quote.dll放在/aspx/bin/quote.dll,我在对照《ASP.NET技术内幕》时出了些麻烦,因为书中library前多了个空格,且vbc.exe的目录也不同。
附:
quote.vb
Namespace myComponents
Public Class Quote
Dim myRand As New Random
Public Function ShowQuote() As String
Select myRand.Next( 3 )
Case 0
Return "Look before you leap"
Case 1
Return "Necessity is the mother of invention"
Case 2
Return "Life is full of risks"
End Select
End Function
End Class
End Namespace
showquote.aspx
<Script Runat="Server">
Sub Page_Load
Dim myQuote As New Quote
lblOutput.Text = myQuote.ShowQuote()
End Sub
</Script>
<html>
<head><title>ShowQuote.aspx</title></head>
<body>
And the quote is
<br>
<asp:Label
id="lblOutput"
Runat="Server" />
</body>
</html>
附注:
作为从 Visual Studio .NET 中编译 Visual Basic .NET 程序的另一种方法,可从命令行编译以产生可执行 (.exe) 文件或动态链接库 (.dll) 文件。
Visual Basic .NET 命令行编译器支持控制输入文件和输出文件、程序集以及调试和预处理器选项的完整选项集。每个选项有两种可用的可互换形式:-option 和 /option。本文档仅显示 /option 形式。
下表列出了一些可以根据自己的需要进行修改的示例命令行。
要实现的操作 | 请使用 |
---|---|
编译 File.vb 并创建 File.exe | vbc /reference:Microsoft.VisualBasic.dll File.vb |
编译 File.vb 并创建 File.dll | vbc /target:library File.vb |
编译 File.vb 并创建 My.exe | vbc /out:My.exe File.vb |
打开优化并定义 DEBUG 符号,编译当前目录中的所有 Visual Basic 文件,生成 File2.exe | vbc /define:DEBUG=1 /optimize /out:File2.exe *.vb |
编译当前目录中的所有 Visual Basic 文件,生成 File2.dll 的调试版本并且不显示徽标或警告 | vbc /target:library /out:File2.dll /warn:0 /nologo /debug *.vb |
将当前目录中的所有 Visual Basic 文件编译为 Something.dll | vbc /target:library /out:Something.dll *.vb |
在从命令行进行编译时,必须通过 /reference 编译器选项显式引用 Microsoft Visual Basic 运行时库。
请参见
Visual Basic .NET 命令行编译器可作为从 Visual Studio .NET 集成开发环境 (IDE) 中编译程序的另一种方法。以下是按功能类别排序的 Visual Basic 命令行编译器选项列表。
编译器输出
选项 | 目的 |
---|---|
/nologo | 不显示编译器版权标志信息。 |
/utf8output | 使用 UTF-8 编码显示编译器输出。 |
/verbose | 输出编译过程中的其他信息。 |
优化
选项 | 目的 |
---|---|
/optimize | 启用/禁用优化。 |
输出文件
选项 | 目的 |
---|---|
/netcf | 将编译器设置为面向 .NET Framework 精简版。 |
/out | 指定输出文件。 |
/target | 使用下列四个选项之一指定输出文件的格式:/target:exe、/target:library、/target:module 或 /target:winexe。 |
.NET 程序集
选项 | 目的 |
---|---|
/addmodule | 使编译器将指定文件中的所有类型信息对当前正在编译的项目可用。 |
/delaysign | 指定程序集是完全签名的还是部分签名的。 |
/imports | 由指定的程序集导入命名空间。 |
/keycontainer | 指定密钥对的密钥容器名称以给予程序集强名称。 |
/keyfile | 指定包含密钥或密钥对的文件以给予程序集强名称。 |
/libpath | 通过 /reference 选项指定所引用程序集的位置。 |
/reference | 从程序集导入元数据。 |
调试/错误检查
选项 | 目的 |
---|---|
/bugreport | 创建一个文件,该文件包含有助于报告错误的信息。 |
/debug | 产生调试信息。 |
/nowarn | 取消编译器生成警告的能力。 |
/quiet | 防止编译器针对与语法相关的错误和警告显示代码。 |
/removeintchecks | 禁用整数溢出检查。 |
/warnaserror | 将警告提升为错误。 |
帮助
语言
选项 | 目的 |
---|---|
/optionexplicit | 要求显式声明变量。 |
/optionstrict | 强制执行严格的类型语义。 |
/optioncompare | 确定字符串比较是采用二进制格式还是使用区域设置规范文本语义。 |
预处理器
选项 | 目的 |
---|---|
/define | 定义用于条件编译的符号。 |
资源
选项 | 目的 |
---|---|
/linkresource | 创建到托管资源的链接。 |
/resource | 将托管资源嵌入程序集。 |
/win32icon | 将 .ico 文件插入到输出文件中。 |
/win32resource | 将 Win32 资源插入到输出文件中。 |
杂项
选项 | 目的 |
---|---|
@(指定响应文件) | 指定响应文件。 |
/baseaddress | 指定 DLL 的基址。 |
/main | 指定包含启动时要使用的 Sub Main 过程的类。 |
/recurse | 在子目录中搜索要编译的源文件。 |
/rootnamespace | 为所有类型声明指定一个命名空间。 |
/sdkpath | 指定 mscorlib.dll 和 microsoft.visualbasic.dll 的位置。 |
请参见
按字母顺序列出的 Visual Basic 编译器选项 | “<项目名> 属性页”对话框
vbc:MSDN相关
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vblr7/html/valrfvbcompileroptionslistedbycategory.asp
使用 C# 2.0 命令行编译器
posted on 2005-03-25 16:25 Eric Zhang 阅读(5251) 评论(0) 编辑 收藏 举报