VS2008怎么用devenv.com命令行自动编译
作者:佚名 来源:绿茶手机网 发布时间:2012-12-07

vs2008怎么用devenv.com命令行自动编译 ?其实在vs2008 目录下面提供了devenv.com命令行方式,我们可以从VS安装目录..\Microsoft Visual Studio 9\Common7\IDE下面找到它,以下是几个常见用法:
用法:

devenv.com [solutionfile | projectfile |anyfile.ext] [switches]

devenv.com的第一个参数通常是一个解决方案文件或项目文件。
 

如果您希望在编辑器中自动打开文件,也可以使用任何其他文件作为第一个参数。当您输入项目文件时,IDE会在项目文件的父目录中查找与该项目文件具有相同名称的 .sln 文件。如果不存在这样的 .sln 文件,IDE 将查找引用该项目的单个 .sln 文件。如果不存在这样的单个.sln 文件,则 IDE 将创建一个具有默认 .sln 文件名的未保存的解决方案,其基名称与项目文件的基名称相同。
 

命令行生成:

devenv.comsolutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [

/projectconfig name ] ]

可用的命令行开关:

/Build 使用指定的解决方案配置生成解决方案或项目。例如“Debug”。如果可能存在多个平台,则配置名称必须用引号括起来并且包含平台名称。例如“Debug|Win32”。
 

/Clean      删除生成结果。

/Command    启动 IDE 并执行该命令。

/Deploy    生成并部署指定的生成配置。

/Edit   在此应用程序的运行实例中打开指定文件。如果没有正在运行的实例,则启动一个具有简化窗口布局的新实例。
 

/LCID  设置 IDE 中用于用户界面的默认语言。

/Log  将 IDE 活动记录到指定的文件以用于故障排除。

/NoVSIP  禁用用于 VSIP 测试的 VSIP 开发人员许可证密钥。

/Out  将生成日志追加到指定的文件中。

/Project  指定生成、清理或部署的项目。

必须和 /Build、/Rebuild、/Clean 或 /Deploy 一起使用。
 

/ProjectConfig 重写解决方案配置中指定的项目配置。例如“Debug”。如果可能存在多个平台,则配置名称必须用引号括起来并包含平台名称。例如“Debug|Win32”。必须和 /Project 一起使用。
 

/Rebuild 先清理,然后使用指定配置生成解决方案或项目。

/ResetAddin 移除与特定外接程序关联的命令和命令用户界面。

/ResetSettings 恢复 IDE 的默认设置,还可以重置为指定的 VSSettings 文件。

/ResetSkipPkgs 清除所有添加到 VSPackages 的 SkipLoading 标记。

/Run 编译并运行指定的解决方案。

/RunExit 编译并运行指定的解决方案然后关闭 IDE。

/SafeMode 以安全模式启动 IDE,加载最少数量的窗口。

/Upgrade 升级项目或解决方案以及其中的所有项目。并相应地创建这些文件的备份。有关备份过程的更多信息,请参见“Visual Studio 转换向导”上的帮助。
 

产品特定的开关:

/debugexe 打开要调试的指定可执行文件。

命令行的其余部分作为它的参数

传递到此执行文件。

 [page]

/useenv 使用 PATH、INCLUDE、LIBPATH和 LIB 环境变量,而不是使用 VC++ 生成的 IDE 路径。要从命令行附加调试器,请使用:
 

VsJITDebugger.exe -p <pid>编译的工程版本必须和VS版本对应,否则会提示该项目没有被转换。

还有一点需要注意,如果在sln里面设置了dependence,一旦Clear某个Project,会导致其他相依赖的Project也会被Clear,造成编译时间上的浪费,为了节省时间,你可以重命名sln或者删除sln,这样编译就不会考虑工程间依赖关系。

devenv 的第一个参数通常是一个解决方案文件或项目文件。如果您希望在编辑器中自动打开文件,也可以使用任何其他文件作为第一个参数。当您输入项目文件时,IDE会在项目文件的父目录中查找与该项目文件具有相同基名称的 .sln 文件。如果不存在这样的 .sln 文件,IDE 将查找引用该项目的单个 .sln 文件。如果不存在这样的单个.sln 文件,则 IDE 将创建一个具有默认 .sln 文件名且未保存的解决方案,其基名称与项目文件的基名称相同。


下面以一个批处理例子说明devenv.com的用法。现在我们要编译著名的cximage600工程。cximage600工程有下面的项目:


VS2008怎么用devenv.com命令行自动编译1


我们把demo工程设为主调用工程。然后我写一个批处理文件编译CxImgLib.sln。

[plain]

rem ************************************************

rem * Script to compile the solutions of CxImgLib *

rem * Created by: zhujincan *

rem * Created 2012.12.06 *

rem ************************************************

rem set environment variables:

set _devenv="%VS90COMNTOOLS%..\..\Common7\IDE\devenv.com"

rem set compile log

set _log="%~dp0compileResults.log"

echo [%DATE% %Time%] Start compile sequence >%_log%

echo Used compile configuration is %buildAnyCPU% >>%_log%

rem Start compile************************************************

set _solution_file="%~dp0CxImgLib.sln"

%_devenv% %_solution_file% /build "Debug|Win32" /Out %_log%

if not %errorlevel% == 0 echo %_solution_file% failed! Error: %errorlevel% >>%_log%

if %errorlevel% == 0 echo %_solution_file% compiled successful >>%_log%

rem If compile failed stop processing:

if not %errorlevel% == 0 pause

echo [%DATE% %Time%] Finished compile sequence >>%_log%

pause

rem ************************************************

rem * Script to compile the solutions of CxImgLib *

rem * Created by: zhujincan *

rem * Created 2012.12.06 *

rem ************************************************

rem set environment variables:

set _devenv="%VS90COMNTOOLS%..\..\Common7\IDE\devenv.com"

rem set compile log

set _log="%~dp0compileResults.log"

echo [%DATE% %Time%] Start compile sequence >%_log%

echo Used compile configuration is %buildAnyCPU% >>%_log%

rem Start compile************************************************

set _solution_file="%~dp0CxImgLib.sln"

%_devenv% %_solution_file% /build "Debug|Win32" /Out %_log%

if not %errorlevel% == 0 echo %_solution_file% failed! Error: %errorlevel% >>%_log%

if %errorlevel% == 0 echo %_solution_file% compiled successful >>%_log%

rem If compile failed stop processing:

if not %errorlevel% == 0 pause

echo [%DATE% %Time%] Finished compile sequence >>%_log%

pause


该批处理文件放在源码根目录下(即和解决方案文件的同一级目录下),生成日志放在源码根目录下compileResults.log中.这个批处理文件可以和svn的源码更新命令绑在一起实现从源码更新到编译,也可以放在服务器上作为每日构建的脚本。 

 

合集推荐

梦幻西游手游更多>>

绿茶梦幻西游手游下载合集专区提供梦幻西游手游、梦幻西游口袋版、梦幻西游手机版下载。我们还为大家准备了梦幻西游手游辅助、梦幻西游手游修改器等外挂下载可以帮助大家刷梦幻币、刷钱、修改、刷副本等。梦幻西游从...

H5游戏在线玩
相关阅读
共有0位网友发表了评论 网友评论
(请文明发言!)