zoukankan      html  css  js  c++  java
  • Msbuild项目集成右键菜单编译

    DS1.背景:
     
    我们为什么要将VS2008命令行编译.sln文件集成到右键菜单呢?
    原因一:VS2008很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS2008的时候更是如此。
    原因二:有时用vi工具编辑了源代码后,不想开VS集成开发环境进行编译,(当然你可以打开VS2008命令行,再切换到工程所在目录进行编译,但是手动敲命令太麻烦了)。
     
    DS2.显示效果图:

     
     
    DS3.原始注册表文件:

    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell]
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluild]
    @="编译(Debug)"
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluildcommand]
    @="cmd /K "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "%1"""

    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluildRelease]
    @="编译(Release)"
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluildReleasecommand]
    @="cmd /K "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "%1" /p:Configuration=Release""

    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuild]
    @="重新编译(Debug)"
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuildcommand]
    @="cmd /K "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "%1" /t:Rebuild""

    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuildRelease] 

    @="重新编译(Release)" 

    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuildReleasecommand]
    @="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_ROOTVisualStudio.Launcher.slnShell]  
    --HKEY_CLASSES_ROOT.sln, 右边的默认值为: VisualStudio.Launcher.sln,表示仅集成 .sln文件。
    --你可以写成 .csproj 或者.vbproj ,即可以对C#和VB的项目进行右键编译。
    --在  HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell 下面增加一个子项即可添加右键菜单。
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluild]  
    --build 即命令名,编译(Debug)即显示在右键菜单上的命令名。command是具体的DOS命令
    @="编译(Debug)"  
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluildcommand]  
    @="cmd /K "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "%1"""
    --利用 cmd /K 命令,在执行了以上命令后保持命令行窗口不退出,以便查看编译结果。不然会窗口一闪就不见了。
    --注册表集成右键菜单时,%1代表该文件名。
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluildRelease]  
    @="编译(Release)"  
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShelluildReleasecommand]  
    @="cmd /K "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "%1" /p:Configuration=Release""
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuild]  
    @="重新编译(Debug)"  
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuildcommand]  
    @="cmd /K "C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe "%1" /t:Rebuild""
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuildRelease]  
    @="重新编译(Release)"  
    [HKEY_CLASSES_ROOTVisualStudio.Launcher.slnShell eBuildReleasecommand]  
    @="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.NETFrameworkv2.0.50727MSBuild.exe

    .NET v3.5: 
    %WinDir%Microsoft.NETFrameworkv3.5MSBuild.exe

    .NET v4.0: 
    %WinDir%Microsoft.NETFrameworkv4.0.30319MSBuild.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
     
     
     
     
     
     
  • 相关阅读:
    使用node 创建一个新项目
    安装node 及相关配置
    Java面试查漏补缺
    科学计算软件——Octave安装
    Wine——在Linux上运行Windows软件
    windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
    Ubuntu安装Gnome3
    ubuntu自定义分辨率
    Ubuntu添加开机自动启动程序方法
    sublime Text3及其插件的使用
  • 原文地址:https://www.cnblogs.com/selonsy/p/4199656.html
Copyright © 2011-2022 走看看