命令行编译器vbc.exe和csc.exe的使用

简介: Titlevbc:MSDN相关 http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vblr7/html/valrfvbcompileroptionslistedbycategory.asp csc:MSDN相关 使用 C# 2.0 命令行编译器 将quote.vb编译成quote.dll文件,使用的命令是:vbc.exe,我用的机器上装的是win server 2003 .命令所在的路径为:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 。

Titlevbc:MSDN相关
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vblr7/html/valrfvbcompileroptionslistedbycategory.asp
csc:MSDN相关
使用 C# 2.0 命令行编译器
将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 

img_a6339ee3e57d1d52bc7d02b338e15a60.gif Imports  System
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif
Namespace myComponents Namespace myComponents
img_33d02437d135341f0800e3d415312ae8.gif
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif
Public Class QuoteClass Quote
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.gif
Dim myRand As New Random
img_33d02437d135341f0800e3d415312ae8.gif
img_2887d91d0594ef8793c1db92b8a1d545.gifimg_7a2b9a960ee9a98bfd25d306d55009f8.gif
Public Function ShowQuote()Function ShowQuote() As String
img_33d02437d135341f0800e3d415312ae8.gif
Select myRand.Next3 )
img_33d02437d135341f0800e3d415312ae8.gif
Case 0
img_33d02437d135341f0800e3d415312ae8.gif
Return "Look before you leap"
img_33d02437d135341f0800e3d415312ae8.gif
Case 1
img_33d02437d135341f0800e3d415312ae8.gif
Return "Necessity is the mother of invention"
img_33d02437d135341f0800e3d415312ae8.gif
Case 2
img_33d02437d135341f0800e3d415312ae8.gif
Return "Life is full of risks"
img_33d02437d135341f0800e3d415312ae8.gif
End Select
img_105a1e124122b2abcee4ea8e9f5108f3.gif
End Function

img_33d02437d135341f0800e3d415312ae8.gif
img_105a1e124122b2abcee4ea8e9f5108f3.gif
End Class

img_33d02437d135341f0800e3d415312ae8.gif
img_05dd8d549cff04457a6366b0a7c9352a.gif
End Namespace

img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif

showquote.aspx

img_405b18b4b6584ae338e0f6ecaf736533.gif img_1c53668bcee393edac0d7b3b3daff1ae.gif <% img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif @ Import Namespace="myComponents"  %>
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_405b18b4b6584ae338e0f6ecaf736533.gifimg_1c53668bcee393edac0d7b3b3daff1ae.gif
< Script  Runat ="Server" > img_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.gifSub Page_Load
img_33d02437d135341f0800e3d415312ae8.gifDim myQuote As New Quote
img_33d02437d135341f0800e3d415312ae8.gif
img_33d02437d135341f0800e3d415312ae8.giflblOutput.Text 
= myQuote.ShowQuote()
img_33d02437d135341f0800e3d415312ae8.gifEnd Sub
img_05dd8d549cff04457a6366b0a7c9352a.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
</ Script >
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
< html >
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
< head >< title > ShowQuote.aspx </ title ></ head >
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
< body >
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gifAnd the quote isimg_a76e9bb6ed00cf1c9c9f4ee2f04b558b.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
< br >
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
< asp:Label
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
id ="lblOutput"
img_a6339ee3e57d1d52bc7d02b338e15a60.gifRunat
="Server"   />
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
</ body >
img_a6339ee3e57d1d52bc7d02b338e15a60.gif
</ html >
img_a6339ee3e57d1d52bc7d02b338e15a60.gif


附注:

Visual Basic 语言概念  

示例编译命令行

作为从 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 编译器选项 | 条件编译概述

 

Visual Basic 编译器选项  

按类别列出的 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 将警告提升为错误。

帮助

选项 目的
/? 显示编译器选项。此命令等同于指定 /help 选项。未进行编译。
/help 显示编译器选项。此命令等同于指定 /? 选项。未进行编译。

语言

选项 目的
/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 命令行编译器

目录
相关文章
|
7月前
|
C++
Window 命令行查看 EXE或者DLL的依赖库
Window 命令行查看 EXE或者DLL的依赖库
297 0
|
Java
vcredist_x64.exe/vcredist_x86.exe的用处
vcredist_x64.exe/vcredist_x86.exe的用处
148 0
vcredist_x64.exe/vcredist_x86.exe的用处
|
JavaScript 前端开发
VBS转化为exe可执行文件
VBS转化为exe可执行文件
927 0
VBS转化为exe可执行文件
|
C++ Python
如何在MFC中启动其它的(.exe)可执行文件
ShellExecute(NULL,   "open",   "http://www.sina.com.cn",   NULL,   NULL,   SW_SHOWNORMAL);      // ShellExecute(NULL,   "open",   "C:\\Documents and Settings\\Administrator\\桌面\\xq1\\TestChess0.
1445 0