一 使用devenv来build单个project

 
devenv是VisualStudio的可执行程序,一般安装在“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE”下。用来在命令行或GUI方式运行VisualStudio。其中devenv.com是命令行程序,devenv.exe是GUI的程序。默认地当你调用devenv的时候其实是启动devenv.com,除非你显示地调用devenv.exe才会启动GUI的VisualStudio。

使用devenv来build一个.sln的实例:
devenv d:\Build\MyProject\Src\MyProject.sln /Build "Release|Win32"

 
使用devenv来build一个.sln中的某个的实例:
devenv.exe d:\Build\MyProject\Src\NyProject.sln /build "Release|Win32" /Project MyProject1 
注意:通常地.sln中的多个Projects间有依赖关系,所以虽然你只是build一个.sln中的某个Project,但是还是需要指定Project所在.sln,然后通过/Project来指定Project的名字。
 
 

如果只是单个的Project,没有引用其他的projects,这个时候可以不指定.sln,直接build Project,如下实例:

devenv d:\Build\MyProject\Src\MyProject.vcxproj /Build "Release|Win32"

注意此时实际上devenv做如下事:

此时devenv将在此project文件的父目录中查找与Project相同名字的.sln;
如果没有找到的话,然后查找其他的引用了此Project的.sln;
如果还是没有找到的话会创建临时的不保存的与Project同名的.sln。
 

二 devenv的更多帮助

可以使用devenv /?来查看详细的帮助。
.sln或project的路径有空格时,需要对路径加"";
多个/开关间使用空格隔开;
devenv不支持通配符或正则表达式语法;

三 MSBuild

如果你的机器上没有装有VisualStudio,那么可以使用MSBuild来build .sln或project。MSBuild可以通过安装.NETFramework来安装,一般的安装路径为C:\Windows\Microsoft.NET\Framework。其实devenv执行build时候,后台也是调用MSBuild来build的。

可以使用msbuild /?来查看详细的帮助;

简单实例如下:

MSBuild MyApp.sln /t:Rebuild /p:Configuration=Release
MSBuild MyApp.csproj /t:Clean
                     /p:Configuration=Debug;/p:Platform=x86;TargetFrameworkVersion=v3.5

同样注意,如果project引用了其他的projects的时候,最好build整个.sln。

 
 
本文参考:http://www.cnblogs.com/itech/archive/2011/12/22/2297587.html

使用devenv/MSBuild在命令行编译sln或csproj的更多相关文章

  1. 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数

    在为开源项目 easiwin/MSTestEnhancer 进行持续集成编译时,需要在编译命令中传入较多的参数.这对于新接手此项目的人来说,成本还是高了一点儿.本文将介绍 MSBuild 响应文件 ( ...

  2. win10 uwp 使用 msbuild 命令行编译 UWP 程序

    原文:win10 uwp 使用 msbuild 命令行编译 UWP 程序 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http:// ...

  3. 基于命令行编译打包phonegap for android应用 分类: Android Phonegap 2015-05-10 10:33 73人阅读 评论(0) 收藏

    也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,E ...

  4. 用命令行编译java并生成可执行的jar包

    用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: ...

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

    iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...

  6. namke 命令行编译

    简介 大家已经习惯于微软提供的功能强大的IDE,已经很少考虑手动编连项目了,所谓技多不压身,有空的时候还是随我一块了解一下命令行编译. C/C++/VC++程序员或有Unix/Linux编程经验应该很 ...

  7. xcode命令行编译时:codesign命令,抛出“User interaction is not allowed.”异常 的处理

    之前正常运行的hudson iOS编译服务器slave节点,忽然出现编译失败.发现原因有2个: 第一个原因是编译机上用来签名的用户帐号过期,第二个原因是操作系统和xCode升级造成的. 对于第一个,重 ...

  8. 命令行编译运行Java

    首先要安装JDK,然后设置环境变量Path,添加C:\Program Files (x86)\Java\jdk1.8.0_66\bin 然后建立一个名为j.java的文件,里面加入如下代码: publ ...

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

    VS2010命令行编译C#和VC项目 VS2010命令行编译C#和VC项目 根据需要动态创建数据库字段后,需要动态创建或者调整页面,那就需要编译这些页面和后台文件.因此使用命令行编译将会非常方便,对于 ...

随机推荐

  1. C#编程(三十五)----------foreach和yield

    枚举 在foreach语句中使用枚举,可以迭代集合中的元素,且无需知道集合中的元素个数. 数组或集合实现带GetEumerator()方法的IEumerable接口.GetEumerator()方法返 ...

  2. C 格式化显示时间(time.h)

    转自:http://www.cnblogs.com/xudong-bupt/p/3550157.html C/C++程序中需要程序显示当前时间,可以使用标准函数strftime. 函数原型:size_ ...

  3. localhost与127.0.0.1及本机ip的区别

    很多人会接触到这个ip地址127.0.0.1.也许你会问127.0.0.1是什么地址?其实127.0.0.1是一个回送地址,指本地机,一般用来测试使用.大家常用来ping 127.0.0.1来看本地i ...

  4. Swift - UITableView状态切换效果

    Swift - UITableView状态切换效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // TableViewTapAn ...

  5. 《MySQL Workbench数据建模与开发》

    <MySQL Workbench数据建模与开发> 基本信息 原书名:MySQL Workbench:Data Modeling & Development 原出版社: McGraw ...

  6. VS Code搭建.NetCore开发环境(一)

    一.使用命令创建并运行.Net Core程序 1.dotnet new  xxx:创建指定类型的项目console,mvc,webapi 等 2.dotnet restore :加载依赖项 dotne ...

  7. .condarc(conda 配置文件)、换国内源

    原文地址 https://blog.csdn.net/lanchunhui/article/details/71379555 Configuration — Conda documentation . ...

  8. Anaconda需要添加的环境变量

    F:\Anaconda3 F:\Anaconda3\Scripts F:\Anaconda3\Library\bin

  9. [转]使用HackCube-Special分析胎压传感器信号

    胎压无线传感器安全检测 我们团队之前也有用USRP和GNUradio对其他的胎压设备进行的安全检测,我不使用这套环境的原因是软件无线电的设备和笔记本已经算体积不小的一套设备,通常测试环境都在户外,在这 ...

  10. Libnids(Library Network Intrusion Detection System) .

    Libnids(Library Network Intrusion Detection System)是一个网络入侵检测开发的专业编程接口.它实现了基于网络的入侵检测系统的基本框架,并提供了一些基本的 ...