码迷,mamicode.com
首页 > 其他好文 > 详细

VS2008Express版本环境的Solution批量编译

时间:2017-08-25 18:13:39      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:test   ram   res   简单的   简单   rtti   create   通过   情况   

最近做一个传统老项目,因为Solution太多,考虑做一个代码编译batch工具,起初一看,应该是很简单的问题。

用MSBUILD 做编译顺其自然, 兴致勃勃的将Batch处理文件全部写好,突然放到环境中执行,发现编译出问题。

 而后,对Solution中的Project进行单独编译,仍然报错。考虑编译顺序的情况下,仍旧。后来调查相关继续文档

, 发现是因为MSBUILD时,会将管理引用的所有DLL等相关参照全部进行连接编译。 

 而正好,老系统有一个直接从外部拷贝过来的DLL,编译不会通过。

 

继续查找解决方案, 可用devenv.exe作编译工具。 然而本机装的是VS2008Express版本,根本没有该EXE

文件。得知,VS2008EXpress版本情况下,用vbexpress.EXE执行文件。随后就是到微软官方网站查询对应的

使用方法。  原理是通过CreateSolutionLists.bat生成对象Solution的List文本文件。

然后 用foreachTest.bat 来做循环执行处理,完成多个Solution的批处理。

 

 以下是后来做出的bat文件

--- CreateSolutionLists.bat  START----------

set solutionList=C:\NACCS_6svn\SolutionList.Txt
cd C:\NACCS_6svn\newsys\Projects
if exist %solutionList% (
   echo Solution list file is existied, please input any key to contiune!
   pause
   forfiles /m *.sln /s >%solutionList%
   echo please check the content of the solutionList file, delete the ‘"‘ in the file.
   pause

 --- CreateSolutionLists.bat  END----------

 

 

 ------ foreachTest.bat START -----------------

 @echo build start  %date% !!!

 

@echo off
set startTime=%date%
set vbexpresscmd="C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\vbexpress"
set inpath=C:\NACCS_6svn\newsys\Projects
set solutionList=C:\NACCS_6svn\SolutionList.Txt
set filetime=%time:~0,2%%time:~3,2%%time:~6,2%
set logPath=C:\NACCS_6svn\log
for /f "tokens=*" %%a in (%solutionList%) do (
  echo %vbexpresscmd% %inpath%\%%a /build Debug /out %logPath%\%%a_%filetime%.log
  call %vbexpresscmd% %inpath%\%%a /build Debug /out %logPath%\%%a_%filetime%.log
  if exist %logPath%\%%a_%filetime%.log (
     echo error happened!      
     Pause
     )
)
@echo build end finished!!!
@echo start at: %startTime%; Finished at: %date%.
pause

  ------ foreachTest.bat  END-----------------

 

关联连接

https://msdn.microsoft.com/ja-jp/library/s2h6xst1.aspx 

https://blogs.msdn.microsoft.com/msbuild/2005/11/19/msbuild-in-visual-studio-part-12-compiling-inside-visual-studio/ 

 

VS2008Express版本环境的Solution批量编译

标签:test   ram   res   简单的   简单   rtti   create   通过   情况   

原文地址:http://www.cnblogs.com/tomclock/p/7426992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!