Msbuild项目编译

DS1.背景:

我们为什么要将VS2008命令行编译.sln文件集成到右键菜单呢?

原因一:VS2008很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS2008的时候更是如此。

原因二:有时用vi工具编辑了源代码后,不想开VS集成开发环境进行编译,(当然你可以打开VS2008命令行,再切换到工程所在目录进行编译,但是手动敲命令太麻烦了)。

DS2.显示效果图:

DS3.原始注册表文件:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell]
[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\build]
@="编译(Debug)"
[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\build\command]
@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\"\""

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildRelease]
@="编译(Release)"
[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildRelease\command]
@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\" /p:Configuration=Release\""

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuild]
@="重新编译(Debug)"
[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuild\command]
@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\" /t:Rebuild\""

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuildRelease]

@="重新编译(Release)"

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuildRelease\command]
@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\" /t:Rebuild /p:Configuration=Release\""

DS4.具体代码及解释:

Windows Registry Editor Version 5.00

--这是注册表文件的注释文件头,其作用是声明这是一个注册表文件,便于注册表编辑器将文件内容导入注册表。

--如果 .reg 文件没有这句文件头,或者文件头书写有错漏,那么就无法成功导入注册表。

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell]

--HKEY_CLASSES_ROOT\.sln, 右边的默认值为: VisualStudio.Launcher.sln,表示仅集成 .sln文件。

--你可以写成 .csproj 或者.vbproj ,即可以对C#和VB的项目进行右键编译。

--在  HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell 下面增加一个子项即可添加右键菜单。

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\build]

--build 即命令名,编译(Debug)即显示在右键菜单上的命令名。command是具体的DOS命令

@="编译(Debug)"

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\build\command]

@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\"\""

--利用 cmd /K 命令,在执行了以上命令后保持命令行窗口不退出,以便查看编译结果。不然会窗口一闪就不见了。

--注册表集成右键菜单时,%1代表该文件名。

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildRelease]

@="编译(Release)"

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildRelease\command]

@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\" /p:Configuration=Release\""

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuild]

@="重新编译(Debug)"

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuild\command]

@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\" /t:Rebuild\""

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuildRelease]

@="重新编译(Release)"

[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\reBuildRelease\command]

@="cmd /K \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\" /t:Rebuild /p:Configuration=Release\""

DS5.where to find Msbuild.exe ??

.NET v2.0: 
%WinDir%\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe

.NET v3.5: 
%WinDir%\Microsoft.NET\Framework\v3.5\MSBuild.exe

.NET v4.0: 
%WinDir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

eg:C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe

DS6.下面具体分析一句代码:

cmd  /k  \"C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.5\\MSBuild.exe \"%1\"  /p:Configuration=Release\""

常用参数:

/t:Rebuild   重新编译

/t:Clean      清理生成,将删除所有中间文件和输出文件,仅保留项目和组件文件。

/p:Configuration=Release  以Release模式进行编译

/p:Configuration=Debug   以Debug模式进行编译

DS7.两种模式的区别:

Debug:通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。

Release:称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用(不能对其进行调试操作)。

注意:给用户使用的必须是Release版本。

事实上,编译目录下面有一个obj目录,里面也有一个Debug目录。

在Debug目录的下面,有一个TempPE目录和一个Refactor目录。

这个以后再说。。。

DS8.补充一个用命令行直接编译项目文件的方法:

用DOS命令对解决方案进行编译操作:

1、打开Visual Studio 2008 命令提示,具体打开方法如下:

2、帮助文档如下:

3、操作方法如下:

2015-01-03

时间: 2024-10-15 09:59:44

Msbuild项目编译的相关文章

用批处理来自动化项目编译及部署(附Demo)

阅读目录 介绍 详细 处理 结论 Demo下载 介绍 一个项目从立项开始,可能就已经根据公司的配置模板将目录,文档结构定义出来.有动态库,也有静态库,在没有专门的CMO的时候,往往组长,若干开发人员承担版本发布的工作.次工作即枯燥,又容易出错,那么怎么样才能将这样的工作略微自动化点.以下就通过很简单的很古老的批处理来略微自动化下. 详细 一:目录结构 每个公司的目录结构不一样,当略有相同,比如:管理库,需求库,设计库,代码库,引用库(包库),资源库,编译模板库,编译版本库,发布版本库等.如下图:

使用MSBuild自动编译发布你的ASP.NET应用程序

此文介绍如何使用MSBuild自动编译并发布你的ASP.NET应用程序. 比较适合每日编译. 通常我们都使用IDE(Visual Studio)编译并发布ASP.NET程序, 需要手动操作, 如果步骤繁琐会很容易出错. 同样的工作可由MSBuild自动完成, MSBuild是一个Visual Studio编译工具, 随.NET Framework提供, 一般可在 %SystemDrive% \WINDOWS\Microsoft.NET\Framework\v3.5 找到. 有关MSBuild的详

c# msbuild.exe编译代码实例

msbuild.exe编译代码实例 cmd执行语句 @echo off C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "H:\WQB\SBCERP2\trunk-new\SBC.sln" /t:rebuild /p:Configuration=Debug 解释: /t:rebuild :重新生成,/t:build 生成/t:clean 清理/p:Configuration=Debug 编译模式:debug/p:Con

安装asp.net mvc4后mvc3项目编译报错

安装asp.net mvc4之后,之前的mvc3项目编译时报这个错“The type System.Web.Mvc.ModelClientValidationRule exists in both c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll and c:\Program Files\Microso...” 重新安装mvc3也许可以解决这个问题,不过还会覆盖mvc4的配置,可以通过修改

MFC:“Debug Assertion Failed!” ——自动生成的单文档程序项目编译运行就有错误

今天照着孙鑫老师的VC++教程学习文件的操作,VS2010,单文档应用程序,项目文件命名为File,也就有了自动生成的CFileDoc.CFileView等类,一进去就编译运行(就是最初自动生成的项目),编译通过,可运行时直接弹出错误框,有点小懵,,,啥都没做就给我看这个: 图一   错误提示框 后来搜索一查,网上好多类似的错误以及解决方案,几乎都试了个遍,有: 方法(1)-重新生成解决方案,或者将项目文件目录下Debug文件夹删了,重新生成Release版: 方法(2)-可以先声明一个临时的C

Cocos2dx 3.x 新建项目编译很慢的解决方案

一.前言 最近在用Cocos2d-x(后面我简称"Co-x")开发项目,发现一个问题: Co-x 3.x版本在windows下,新建一个项目,使用VS2013编译时,会很慢很慢(尽管Co-x源项目已经编译过). 经过摸索,究其原因是:3.x版本中,新建项目时是直接将Co-x相关的源项目复制到所建项目的指定目录,即新建项目引用的是复制后的Co-x源项目,这样VS编译新建项目时,就会把复制的Co-x源项目重新编译一遍,时间必然很长(就算ssd还是要20来分钟,要知道以前2.x编译新建项目时

Asp.Net MVC安全更新MS14-059导致项目编译失败

微软最近一次安全更新MS14-059(链接:https://technet.microsoft.com/en-us/library/security/ms14-059)由于直接应用到了machine.config,更新了有关Asp.Net MVC程序集版本的引用,导致引用了GAC的ASP.Net MVC3和4的项目编译出错,错误提示为: "Could not locate the assembly "System.Web.Mvc,Version=4.0.0.0, Culture=neu

Swing项目编译成exe,并且打包成安装文件(二)

前面我们讲到了将Swing项目编译成双击可执行的文件exe,这篇我就教大家怎么把exe打包成需要在电脑安装的那种,首先需要一个工具,Inno Setup 编译器, 下载地址,我这个是汉化版的,双击打开之后是这个样子的,选择用[脚本向导]创建新的脚本文件 直接选择下一步 按照相对应的填写就好,之后下一步 基本不做什么修改,直接下一步 应用程序主执行文件就是Swing项目打包成exe的这个文件,如果文件夹里面还有其他东西,记得在下面选择添加文件夹,将整个文件夹都添加进来 ,接着一直下一步即可 点击完

Maven项目编译时报错缺少tools.jar

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project ERP: Compilation failure [ERROR] Unable to locate the Javac Compiler in: [ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar [ERR