VS2010命令行编译C#和VC项目
2015-12-25 11:37
417 查看
原文链接:http://blog.sina.com.cn/s/blog_45eaa01a0101ew24.html
S2010命令行编译C#和VC项目
根据需要动态创建数据库字段后,需要动态创建或者调整页面,那就需要编译这些页面和后台文件。因此使用命令行编译将会非常方便,对于C#只需要安装相应版本的Framework即可。这些内容来自网络,并加以整理。
一 vs2010命令行编译C#项目
1. C#环境变量设置步骤:
在桌面右击[我的电脑]--属性--高级--环境变量, 在下面的系统变量栏点击“新建” 变量名输入“csc”变量值输入:“C:\Windows\Microsoft.NET\Framework\v4.0.30319”(也许你的机器上.netframework的版本会有所不同,因而后面的文件夹名称v4.0.30319会有不同)然后在系统变量列表框中双击“Path”在变量名文本框的最后面加入“;%csc%;”(注意是双引号内的内容,前后要有分号)其实,有一种更简洁的方法,那就是直接编辑系统变量列表框中双击“Path”,在后面加上“;C:\Windows\Microsoft.NET\Framework\v4.0.30319;”设置完环境变量,在cmd命令中输入csc.exe,测试是否成功。
2. 设置VS2010环境变量
2.1 include:
D:\Program files\Microsoft Visual Studio10.0\VC\include;C:\Program Files\MicrosoftSDKs\Windows\v7.0A\Include
2.2 lib:
D:\Program files\Microsoft Visual Studio10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
2.3 path:
D:\Program files\Microsoft Visual Studio10.0\VC\bin;D:\Program files\Microsoft Visual Studio10.0\Common7\Tools;D:\Program files\Microsoft Visual Studio10.0\Common7\IDE
3. 可加入DirectX的环境变量
VC\Bin\下没有“msobj100.dll,mspdb100.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件,解决的方法:直接从Common7\IDE\下复制这四个文件到VC\Bin\下即可解决
4. csc.exe编译器常用命令:
命令:csc File.cs ,功能:编译 File.cs以产生File.exe,另一种写法:csc/out:MyFile.exe File.cs,可以自定义编译生成的执行文件名称
命令:csc/target:library File.cs ,功能:编译 File.cs 以产生File.dll,另一种写法:csc/target:library /out:MyFile.dll File.cs,可以自定义编译生成的库文件名称
命令:csc/define:DEBUG /optimize /out:File2.exe *.cs ,功能:通过使用优化和定义DEBUG 符号,编译当前目录中所有的 C# 文件,输出为 File2.exe
命令:csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs,功能:编译当前目录中所有的 C# 文件,以产生File2.dll 的调试版本,不显示任何徽标和警告
命令:csc /target:library /out:Something.xyz *.cs ,功能:将当前目录中所有的 C#文件编译为Something.xyz(一个DLL)
5. 命令行语法规则
当解释操作系统命令行上给出的参数时,C# 编译器代码使用下面的规则:
参数用空白分隔,空白可以是一个空格或制表符。
^ 字符 (^) 未被识别为转义符或者分隔符。该字符在被传递给程序中的 argv 数组前,完全由操作系统的命令行分析器进行处理。
无论其中有无空白,包含在双引号 ( "string") 中的字符串均被解释为单个参数。带引号的字符串可以嵌入在参数内。
前面有反斜杠的双引号 (\") 被解释为原义双引号字符 (")。
反斜杠按其原义解释,除非它们紧位于双引号之前。
如果偶数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,并且双引号被解释为字符串分隔符。
如果奇数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,双引号由其余的反斜杠“转义”,使原义双引号 (") 被放置在 argv 数组中。
6. csc.exe编译器命令详解:
编译器位置:C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
- 编译器选项- - 输出文件 -
/out:<文件> 输出文件名(默认值:包含主类的文件或第一个文件的基名称)
/target:exe 生成控制台可执行文件(默认) (缩写: /t:exe)
/target:winexe 生成Windows可执行文件 (缩写: /t:winexe)
/target:library 生成库 (缩写: /t:library)
/target:module 生成能添加到其他程序集的模块 (缩写: /t:module)
/define:<符号列表> 定义条件编译符号 (缩写: /d)
/doc:<文件> 要生成的XML文档文件
/recurse:<通配符> 根据通配符规范,包括当前目录和子目录下的所有文件
/reference:<文件列表> 从指定的程序集文件引用元数据 (缩写: /r)
/addmodule:<文件列表> 将指定的模块链接到此程序集中
- 资源文件 -
/win32res:<文件> 指定Win32资源文件(.res)
/win32icon:<文件> 使用该图标输出
/resource:<资源信息> 嵌入指定的资源 (缩写: /res)
/linkresource:<资源信息> 将指定的资源链接到此程序集中 (缩写: /linkres)
- 代码调试 -
/debug[+|-] 发出调试信息
/debug:{full|pdbonly} 指定调试类型(“full”是默认类型,可以将调试程序附加到正在运行的程序)
/optimize[+|-] 启用优化 (缩写: /o)
/incremental[+|-] 启用增量编译 (缩写: /incr)
- 错误和警告 -
/warnaserror[+|-] 将警告视为错误
/warn: 设置警告等级(0-4) (缩写: /w)
/nowarn:<警告列表> 禁用特定的警告消息
- 语言 -
/checked[+|-] 生成溢出检查
/unsafe[+|-] 允许“不安全”代码
- 杂项 -
@<文件> 读取响应文件以获得更多选项
/help 显示此用法信息 (缩写: /?)
/nologo 取消编译器版权信息
/noconfig 不要自动包含CSC.RSP文件
- 高级 -
/baseaddress:<地址> 要生成的库的基址
/bugreport:<文件> 创建一个“错误报告”文件
/codepage: 指定打开源文件时要使用的代码页
/utf8output UTF-8编码的输出编译器消息
/main:<类型> 指定包含入口点的类型(忽略所有其他可能的入口点) (缩写: /m)
/fullpaths 编译器生成完全限定路径
/filealign: 指定用于输出文件节的对齐方式
/nostdlib[+|-] 不引用标准库(mscorlib.dll)
/lib:<文件列表> 指定要在其中搜索引用的附加目录
二 vs2010 命令行编译C/C++程序
电脑上装了 VS2010 (其他版本亦可)在 Microsoft Visual Studio 10.0\VC\bin 中可以找到cl.exe
1配置环境变量:要根据实际的安装盘符来修改,这里以 C:为例
1.1 设置 Path 为:
%安装路径%\Microsoft Visual Studio 10.0\VC\bin;
%安装路径%\Microsoft Visual Studio 10.0\Common7\IDE;
1.2 设置 lib 为:
%安装路径%\Microsoft Visual Studio 10.0\VC\lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib(此项为固定路径)
1.3 设置 include 为:
%安装路径%\Microsoft Visual Studio 10.0\VC\include
2 命令行编译命令 cl
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]
>cl main.c
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 16.00.30319.01 版
版权所有(C) Microsoft Corporation。保留所有权利。
main.c
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rightsreserved.
/out:main.exe
main.obj
>
目录下生成 main.exe 和 main.obj 两个文件
3执行 >main
Hello World!
>
4此外,还可以直接用 Visual Studio 命令提示(2010) 直接进行编译,不需要配置。
VisualStudio 命令提示(2010) 路径 :
开始 -- 所有程序-- Microsoft Visual Studio 2010 -- Visual Studio Tools -- VisualStudio 命令提示(2010)
三 VS2010 VC批处理编译生成可执行程序 .
每次编译生成都需要执行以下2步骤:
1、设置VS2010 VC编译环境
需要从命令行,进入C:\ProgramFiles\Microsoft Visual Studio10.0\VC\Bin目录,运行vcvars32.bat批处理文件。具体执行如下:
cdC:\Program Files\Microsoft Visual Studio 10.0\VC\bin
vcvars32
2、执行批处理文件
只有完成第一步后,再接着执行批处理文件才能有效,而且命令行的当前路径必须是C:\Program Files\MicrosoftVisual Studio 10.0\VC\bin。不知何故,可能是微软做了什么设置。批处理文件如下:
echo off
setICV_SCRIPT=D:\iCentroView\iCV-Support5.3\Script
echo ---------编译和打包视频模块前后台程序----------
echo build time: �te% >>%ICV_SCRIPT%\Rebuilder.log
echo----------------准备编译环境----------------
echo请手动拷贝iCV需要的include头文件和library库到iCentroView\iCV-Support5.3\路径下
path=%path%;%MSDevDir%;..\Executable;
setICV_CS=D:\iCentroView\iCV-Support5.3\Source\VideoSource
echo 准备编译环境结束
echo-------------------开始编译---------------------
echo------------------编译VideoAuth----------------
devenv%ICV_CS%\videoservice\Source\multimedia\video\VideoAuth\VideoAuth.vcxproj/ReBuild "Release" /out%ICV_SCRIPT%\output.txt
type %ICV_SCRIPT%\output.txt >>%ICV_SCRIPT%\Rebuilder.log
echo------------------编译VideoService----------------
devenv%ICV_CS%\videoservice\Source\multimedia\video\VideoService\VideoService.vcxproj/ReBuild "Release" /out%ICV_SCRIPT%\output.txt
type %ICV_SCRIPT%\output.txt >>%ICV_SCRIPT%\Rebuilder.log
echo-----------------删除生成的多余文件(.exp/.lib/.ilk)----------------
del ..\Executable\*.lib
del ..\Executable\*.ilk
del ..\Executable\*.exp
echo-----------------------全部编译结束---------------
pause #暂停
S2010命令行编译C#和VC项目
根据需要动态创建数据库字段后,需要动态创建或者调整页面,那就需要编译这些页面和后台文件。因此使用命令行编译将会非常方便,对于C#只需要安装相应版本的Framework即可。这些内容来自网络,并加以整理。
一 vs2010命令行编译C#项目
1. C#环境变量设置步骤:
在桌面右击[我的电脑]--属性--高级--环境变量, 在下面的系统变量栏点击“新建” 变量名输入“csc”变量值输入:“C:\Windows\Microsoft.NET\Framework\v4.0.30319”(也许你的机器上.netframework的版本会有所不同,因而后面的文件夹名称v4.0.30319会有不同)然后在系统变量列表框中双击“Path”在变量名文本框的最后面加入“;%csc%;”(注意是双引号内的内容,前后要有分号)其实,有一种更简洁的方法,那就是直接编辑系统变量列表框中双击“Path”,在后面加上“;C:\Windows\Microsoft.NET\Framework\v4.0.30319;”设置完环境变量,在cmd命令中输入csc.exe,测试是否成功。
2. 设置VS2010环境变量
2.1 include:
D:\Program files\Microsoft Visual Studio10.0\VC\include;C:\Program Files\MicrosoftSDKs\Windows\v7.0A\Include
2.2 lib:
D:\Program files\Microsoft Visual Studio10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
2.3 path:
D:\Program files\Microsoft Visual Studio10.0\VC\bin;D:\Program files\Microsoft Visual Studio10.0\Common7\Tools;D:\Program files\Microsoft Visual Studio10.0\Common7\IDE
3. 可加入DirectX的环境变量
VC\Bin\下没有“msobj100.dll,mspdb100.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件,解决的方法:直接从Common7\IDE\下复制这四个文件到VC\Bin\下即可解决
4. csc.exe编译器常用命令:
命令:csc File.cs ,功能:编译 File.cs以产生File.exe,另一种写法:csc/out:MyFile.exe File.cs,可以自定义编译生成的执行文件名称
命令:csc/target:library File.cs ,功能:编译 File.cs 以产生File.dll,另一种写法:csc/target:library /out:MyFile.dll File.cs,可以自定义编译生成的库文件名称
命令:csc/define:DEBUG /optimize /out:File2.exe *.cs ,功能:通过使用优化和定义DEBUG 符号,编译当前目录中所有的 C# 文件,输出为 File2.exe
命令:csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs,功能:编译当前目录中所有的 C# 文件,以产生File2.dll 的调试版本,不显示任何徽标和警告
命令:csc /target:library /out:Something.xyz *.cs ,功能:将当前目录中所有的 C#文件编译为Something.xyz(一个DLL)
5. 命令行语法规则
当解释操作系统命令行上给出的参数时,C# 编译器代码使用下面的规则:
参数用空白分隔,空白可以是一个空格或制表符。
^ 字符 (^) 未被识别为转义符或者分隔符。该字符在被传递给程序中的 argv 数组前,完全由操作系统的命令行分析器进行处理。
无论其中有无空白,包含在双引号 ( "string") 中的字符串均被解释为单个参数。带引号的字符串可以嵌入在参数内。
前面有反斜杠的双引号 (\") 被解释为原义双引号字符 (")。
反斜杠按其原义解释,除非它们紧位于双引号之前。
如果偶数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,并且双引号被解释为字符串分隔符。
如果奇数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,双引号由其余的反斜杠“转义”,使原义双引号 (") 被放置在 argv 数组中。
6. csc.exe编译器命令详解:
编译器位置:C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
- 编译器选项- - 输出文件 -
/out:<文件> 输出文件名(默认值:包含主类的文件或第一个文件的基名称)
/target:exe 生成控制台可执行文件(默认) (缩写: /t:exe)
/target:winexe 生成Windows可执行文件 (缩写: /t:winexe)
/target:library 生成库 (缩写: /t:library)
/target:module 生成能添加到其他程序集的模块 (缩写: /t:module)
/define:<符号列表> 定义条件编译符号 (缩写: /d)
/doc:<文件> 要生成的XML文档文件
/recurse:<通配符> 根据通配符规范,包括当前目录和子目录下的所有文件
/reference:<文件列表> 从指定的程序集文件引用元数据 (缩写: /r)
/addmodule:<文件列表> 将指定的模块链接到此程序集中
- 资源文件 -
/win32res:<文件> 指定Win32资源文件(.res)
/win32icon:<文件> 使用该图标输出
/resource:<资源信息> 嵌入指定的资源 (缩写: /res)
/linkresource:<资源信息> 将指定的资源链接到此程序集中 (缩写: /linkres)
- 代码调试 -
/debug[+|-] 发出调试信息
/debug:{full|pdbonly} 指定调试类型(“full”是默认类型,可以将调试程序附加到正在运行的程序)
/optimize[+|-] 启用优化 (缩写: /o)
/incremental[+|-] 启用增量编译 (缩写: /incr)
- 错误和警告 -
/warnaserror[+|-] 将警告视为错误
/warn: 设置警告等级(0-4) (缩写: /w)
/nowarn:<警告列表> 禁用特定的警告消息
- 语言 -
/checked[+|-] 生成溢出检查
/unsafe[+|-] 允许“不安全”代码
- 杂项 -
@<文件> 读取响应文件以获得更多选项
/help 显示此用法信息 (缩写: /?)
/nologo 取消编译器版权信息
/noconfig 不要自动包含CSC.RSP文件
- 高级 -
/baseaddress:<地址> 要生成的库的基址
/bugreport:<文件> 创建一个“错误报告”文件
/codepage: 指定打开源文件时要使用的代码页
/utf8output UTF-8编码的输出编译器消息
/main:<类型> 指定包含入口点的类型(忽略所有其他可能的入口点) (缩写: /m)
/fullpaths 编译器生成完全限定路径
/filealign: 指定用于输出文件节的对齐方式
/nostdlib[+|-] 不引用标准库(mscorlib.dll)
/lib:<文件列表> 指定要在其中搜索引用的附加目录
二 vs2010 命令行编译C/C++程序
电脑上装了 VS2010 (其他版本亦可)在 Microsoft Visual Studio 10.0\VC\bin 中可以找到cl.exe
1配置环境变量:要根据实际的安装盘符来修改,这里以 C:为例
1.1 设置 Path 为:
%安装路径%\Microsoft Visual Studio 10.0\VC\bin;
%安装路径%\Microsoft Visual Studio 10.0\Common7\IDE;
1.2 设置 lib 为:
%安装路径%\Microsoft Visual Studio 10.0\VC\lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib(此项为固定路径)
1.3 设置 include 为:
%安装路径%\Microsoft Visual Studio 10.0\VC\include
2 命令行编译命令 cl
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]
>cl main.c
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 16.00.30319.01 版
版权所有(C) Microsoft Corporation。保留所有权利。
main.c
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rightsreserved.
/out:main.exe
main.obj
>
目录下生成 main.exe 和 main.obj 两个文件
3执行 >main
Hello World!
>
4此外,还可以直接用 Visual Studio 命令提示(2010) 直接进行编译,不需要配置。
VisualStudio 命令提示(2010) 路径 :
开始 -- 所有程序-- Microsoft Visual Studio 2010 -- Visual Studio Tools -- VisualStudio 命令提示(2010)
三 VS2010 VC批处理编译生成可执行程序 .
每次编译生成都需要执行以下2步骤:
1、设置VS2010 VC编译环境
需要从命令行,进入C:\ProgramFiles\Microsoft Visual Studio10.0\VC\Bin目录,运行vcvars32.bat批处理文件。具体执行如下:
cdC:\Program Files\Microsoft Visual Studio 10.0\VC\bin
vcvars32
2、执行批处理文件
只有完成第一步后,再接着执行批处理文件才能有效,而且命令行的当前路径必须是C:\Program Files\MicrosoftVisual Studio 10.0\VC\bin。不知何故,可能是微软做了什么设置。批处理文件如下:
echo off
setICV_SCRIPT=D:\iCentroView\iCV-Support5.3\Script
echo ---------编译和打包视频模块前后台程序----------
echo build time: �te% >>%ICV_SCRIPT%\Rebuilder.log
echo----------------准备编译环境----------------
echo请手动拷贝iCV需要的include头文件和library库到iCentroView\iCV-Support5.3\路径下
path=%path%;%MSDevDir%;..\Executable;
setICV_CS=D:\iCentroView\iCV-Support5.3\Source\VideoSource
echo 准备编译环境结束
echo-------------------开始编译---------------------
echo------------------编译VideoAuth----------------
devenv%ICV_CS%\videoservice\Source\multimedia\video\VideoAuth\VideoAuth.vcxproj/ReBuild "Release" /out%ICV_SCRIPT%\output.txt
type %ICV_SCRIPT%\output.txt >>%ICV_SCRIPT%\Rebuilder.log
echo------------------编译VideoService----------------
devenv%ICV_CS%\videoservice\Source\multimedia\video\VideoService\VideoService.vcxproj/ReBuild "Release" /out%ICV_SCRIPT%\output.txt
type %ICV_SCRIPT%\output.txt >>%ICV_SCRIPT%\Rebuilder.log
echo-----------------删除生成的多余文件(.exp/.lib/.ilk)----------------
del ..\Executable\*.lib
del ..\Executable\*.ilk
del ..\Executable\*.exp
echo-----------------------全部编译结束---------------
pause #暂停
相关文章推荐
- c#开发activex注册问题
- 如何在图上写字,或者画画。
- C#基础精华06(Linq To XML,读取xml文件,写入xml)
- C#基础精华06(Linq To XML,读取xml文件,写入xml)
- C#:WinForm之Command
- 对dijkstra算法的自我理解,c#例子
- C#中的线程二(BeginInvoke和Invoke)
- C#中相对路径转换为绝对路径的方法
- .NET/C# 各版本变化及衍生知识点 C# 6.0
- C#基础--面向过程计算器
- 在C#中 webbrowser的使用心得
- C#中变量的使用以及命名方法
- C# ListView用法详解 很完整
- C#学习笔记 对象序列化
- C# Windows Service中执行死循环轮询
- CLR via C#深解笔记二 - 类型设计
- C#:DataSet和DataTable区别
- C#序列化匿名对象为XML
- C#开源框架(整理)
- c#之线性表