VS2008Express版本环境的Solution批量编译

最近做一个传统老项目,因为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/

时间: 2024-12-19 19:14:46

VS2008Express版本环境的Solution批量编译的相关文章

android中导入低版本project可能会遇到的编译问题(转自: [email protected])

使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题. (1)Unable to resolve target 'android-5' 因为本机中现在使用的是2.2的SDK,API的版本是8:而导入的工程使用的是2.0开发的,其API版本是5. 需要将default.properties中的target=android-5改为target=android-8就好了. 但要注意,也要同步将AndroidManifest.xml中的<uses-sdk android:mi

使用.bat 文件,批量编译项目文件。

使用.bat 文件,批量编译项目文件. 2008-6-1来源:www.aspcool.com 作者:PCJIM 点击:次 使用.bat 文件,批量编译由VS.NET生成的一个或多个解决方案中的各项目文件.将该批处理文件与Microsoft Visual SourceSafe结合起来使用,可以提高整个项目源代码的编译速度. 主要通过Devenv 命令行开关,Devenv 允许您设置集成开发环境 (IDE) 的各个选项,以及从命令行生成.调试和部署项目.使用这些开关从脚本或 .bat 文件运行 ID

windows环境下使用apxs编译添加apache模块

windows环境下使用apxs编译添加apache模块 简介说明:本文使用mod_limitipconn模块为例. 环境: windows7 x86系统 apache 2.4.18 目标: 在windows环境下,利用mod_limitipconn0.24源码.apxs为apache2.4.18添加mod_limitipconn模块. 分析: limitipconn模块最新版已经支持apache2.4了.但是没有编译好的对应版本.因此需要自己动手编译模块.在windows下要实现这个目标,需要

LNAMP服务器环境搭建(手动编译安装)

LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144.36:8001/tools/lnamp.zip 二.确认环境 #确认CentOS YUM安装使用正常 yum clean all yum makecache #确认c gc gc-c++安装正常 yum install -y gc gcc gcc-c++ #确认安装环境需要的软件 yum insta

FFmpeg示例程序合集-批量编译脚本

此前做了一系列有关FFmpeg的示例程序,组成了<最简单的FFmpeg示例程序合集>,其中包含了如下项目:simplest ffmpeg player:                  最简单的基于FFmpeg的视频播放器simplest ffmpeg audio player:       最简单的基于FFmpeg的音频播放器simplest ffmpeg pic encoder:        最简单的基于FFmpeg的图像编码器simplest ffmpeg video encoder

iOS系统提供开发环境下命令行编译工具:xcodebuild

iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单来说,Workspace就是一个容器,在该容器中可以存放多个你创建的Xcode Project, 以及其他的项目中需要使用到的文件. 使用Workspace的好处有: 1),扩展项目的可视域,即可以在多个项目之间跳转,重构,一个项目可以使用另一个项目的输出.Workspace会负责各个Project

Win7环境下使用CMake编译OpenGL_Tutorials的一些注意事项

最近在通过网站Tutorials for openGL 3.3+ 来学习计算机图形学.这里的教材很人性化,更重要的是它让我们抛开旧式openGL去学习.而旧式openGL似乎也一直为人们所诟病(推荐阅读:http://blog.monkeypotion.net/reading/gameprogreading/opengl-versus-directx-the-war-is-over) 网站已经给我们写好了很多现成的代码,只需要我们用CMake去批量编译,之后就可以运行了.关于如何用CMake进行

windows下用ADT进行AndroidNDK开发的详细教程(从环境搭建 配置到编译全过程)

这几天在学习android NDK的开发,那么首先让我们来看看android NDK开发的本质是什么. NDK(Native Development Kit),即本地开发工具,简单地说,就是在开发android应用程序的时候,在java类中调用native函数,而native函数的接口也是在java类中定义的,但是native函数最终由本地的C/C++代码实现.简单地说,就是在java中调用C/C++函数.至于为什么要用NDK,我总结了一下,大致有以下几方面原因: 1.提升程序运行效率:众所周知

【转】Android 4.3源码的下载和编译环境的安装及编译

原文网址:http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html  告诉windows用户一个不好的消息,windows环境下没法编译android源码.用cygwin?不行,因为cygwin模拟的环境太简单,编译android源码需要好多工具,比如gnupg flex bison gperf libsdl-dev libesd0-dev …有的环境还需要wine.单纯的cygwin肯定是不能满足需要的.那么windows环境