VS2010命令行编译C#和VC项目

4 篇文章 0 订阅

原文链接: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 #暂停


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值