作为开发软件的程序员,应在力所能及的情况下使用正版软件。最近一直在用VisualStudio 2012 Express Desktop/Web 版本开发项目。VisualStudio 2012 Express 是免费的,功能基本上够用,但是还是有很多不足,如:

(1)无法安装扩展;这个很致命,比如,想安装IronPython,没办法;想安装 Mono for Android,没办法。

(2)无法同时打开Winform项目、 C++ 项目和Web项目;

(3)解决方案下不能建虚拟目录。

下面,我们来一步步克服上面问题,打造一款 正版、免费又强大的 Visual Studio 2012 IDE。本文的初始版本在有的电脑上有问题,下面是修改后的版本。

第一步:

下载,安装 Visual Studio Express for Windows Desktop 和 Visual Studio Express for Web。地址:

http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products

下载安装之后,在线注册一下,就可以免费使用了。

第二步:

下载,安装 Visual Studio 2012 Shell,包括 Visual Studio Integrated Shell 和 Visual Studio Isolated Shell ,地址: http://msdn.microsoft.com/zh-cn/library/vstudio/bb685612.aspx

这个也是免费的,你可以用这个Shell开发自己的IDE工具。这个Shell 很方便安装扩展,并且解决方案下能够建虚拟目录。

第三步:

将上面的 Visual Studio Express for Windows Desktop 和 Visual Studio Express for Web 作为插件,集成到 Visual Studio 2012 Shell 之中。

这一步是最关键一步,下面详细说明。

(1)修改 Visual Studio Shell 的配置文件

以我的电脑为例(Win7,32位)。在 Microsoft Visual Studio 11.0\Common7\IDE 目录下,有三个 exe 程序:devenv.exe 程序是 Visual Studio 2012 Shell 的可执行程序。VWDExpress.exe 是 Visual Studio Express for Web 的可执行程序,WDExpress.exe 是 Visual Studio Express for Windows Desktop  的可执行程序。这三个程序分别对应有各自的 ×.pkgdef 文件,规定了这个程序的扩展目录。devenv.exe 对应的是 devenv.pkgdef 文件。

打开 devenv.pkgdef 文件,将内容更改为:

[$Initialization$] 
"ApplicationExtensionsFolder" = "$RootFolder$\Common7\IDE\Extensions" 
"PkgDefSearchPath"       = "$ApplicationExtensionsFolder$; \ 
                            $RootFolder$\Common7\IDE\CommonExtensions; \ 
                            $RootFolder$\Common7\IDE\WDExpress; \ 
                            $RootFolder$\Common7\IDE\WDExpressExtensions; \ 
                            $RootFolder$\Common7\IDE\VWDExpress; \ 
                            $RootFolder$\Common7\IDE\VWDExpressExtensions; \ 
                            $RootFolder$\Common7\IDE\Extensions\Microsoft\VC\ClassWizard; \ 
                            $RootFolder$\Common7\IDE\devenv.vc.pkgdef;" 
"UserExtensionsRootFolder"    = "$AppDataLocalFolder$\Extensions" 
"RegistryRoot"                = "Software\Microsoft\VisualStudio\11.0"

上面这个配置文件简单解释一下。 $RootFolder$\Common7\IDE\Extensions 是 VS Shell默认加载插件的位置,一般安装的第三方插件都会安装到这个目录下。$RootFolder$\Common7\IDE\CommonExtensions 是 VS 自带的插件,如 Editor 等等。

$RootFolder$\Common7\IDE\WDExpress 和 $RootFolder$\Common7\IDE\WDExpressExtensions 是 Visual Studio 2012 for Desktop(刨除其中的VC部分) ,我们将它当作插件加载进来。

$RootFolder$\Common7\IDE\VWDExpress 和 $RootFolder$\Common7\IDE\VWDExpressExtensions 是 Visual Studio 2012 for Web ,我们将它当作插件加载进来。 
$RootFolder$\Common7\IDE\Extensions\Microsoft\VC\ClassWizard 和 $RootFolder$\Common7\IDE\devenv.vc.pkgdef 的作用是将 VC 当作插件加载进来。

但是, WDExpress 、 VWDExpress 和 VC 自身不是插件,如果不写配置文件的话,他们是加载不进来的。下面,我们来写插件文件,将它们配置成插件。

(2)将 WDExpress 配置成插件

进入 Common7\IDE\WDExpress 目录下,添加一个名为 extension.vsixmanifest 的文本文件,内容如下:

<?xml version="1.0" encoding="utf-8"?> 
<Vsix Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010"> 
  <Identifier Id="WD Express..7DB76FEF-2C49-4E20-AD04-17DDE708C56B"> 
    <Name>WD Express</Name> 
    <Author>Microsoft</Author> 
    <Version>1.0</Version> 
    <Description>WD Express Tools</Description> 
    <Locale>1033</Locale> 
    <License>ms-pl.rtf</License> 
    <SupportedProducts> 
      <VisualStudio Version="11.1"> 
        <Edition>Pro</Edition> 
        <Edition>VDExpress</Edition> 
        <Edition>IntegratedShell</Edition> 
      </VisualStudio> 
    </SupportedProducts> 
    <SystemComponent>true</SystemComponent> 
    <InstalledByMsi>true</InstalledByMsi> 
    <SupportedFrameworkRuntimeEdition MinVersion="2.0" MaxVersion="4.5" /> 
  </Identifier> 
  <References /> 
  <Content> 
    <ProjectTemplate>ProjectTemplates</ProjectTemplate> 
    <ItemTemplate>ItemTemplates</ItemTemplate> 
  </Content> 
</Vsix>

(3)将 VWDExpress 配置成插件

进入 Common7\IDE\VWDExpress 目录下,添加一个名为 extension.vsixmanifest 的文本文件,内容如下:

<?xml version="1.0" encoding="utf-8"?> 
<Vsix Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010"> 
  <Identifier Id="VWD Express..7DB76FEF-2C49-4E20-AD04-17DDE708C5DD"> 
    <Name>VWD Express</Name> 
    <Author>Microsoft</Author> 
    <Version>1.0</Version> 
    <Description>VWD Express Tools</Description> 
    <Locale>1033</Locale> 
    <License>ms-pl.rtf</License> 
    <SupportedProducts> 
      <VisualStudio Version="11.1"> 
        <Edition>Pro</Edition> 
        <Edition>VWDExpress</Edition> 
        <Edition>IntegratedShell</Edition> 
      </VisualStudio> 
    </SupportedProducts> 
    <SystemComponent>true</SystemComponent> 
    <InstalledByMsi>true</InstalledByMsi> 
    <SupportedFrameworkRuntimeEdition MinVersion="2.0" MaxVersion="4.5" /> 
  </Identifier> 
  <References /> 
  <Content> 
    <ProjectTemplate>ProjectTemplates</ProjectTemplate> 
    <ItemTemplate>ItemTemplates</ItemTemplate> 
  </Content> 
</Vsix>

(4)将 VC 配置成插件

devenv.vc.pkgdef 文件就是VC的插件配置,这个文件是不存在的。我们在 Common7\IDE 目录下,建立一个名为 devenv.vc.pkgdef 的文本文件,内容如下:

// Override the VC root for templates 
[$RootKey$\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}] 
"DesignerTemplatesDir"="$ShellFolder$\VC\DesignerTemplates_WDExpress" 
"ItemTemplatesDir"="$ShellFolder$\VC\VCProjectItems_WDExpress" 
"ProjectTemplatesDir"="$ShellFolder$\VC\VCProjects_WDExpress"

[$RootKey$\NewProjectTemplates\TemplateDirs\{F1C25864-3097-11D2-A5C5-00C04F7968B4}\/1] 
"TemplatesDir"="$ShellFolder$\VC\VCProjects_WDExpress"

[$RootKey$\Projects\{7C3490A3-8632-43C5-8A60-07DC2F450870}\AddItemTemplates\TemplateDirs\{3A3E1789-3E35-47B0-8567-D2FB407CC63D}\/1] 
"TemplatesDir"="$ShellFolder$\VC\VCProjectItems_WDExpress\PropertySheets"

[$RootKey$\Projects\{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\AddItemTemplates\TemplateDirs\{F1C25864-3097-11D2-A5C5-00C04F7968B4}\/1] 
"TemplatesDir"="$ShellFolder$\VC\VCProjectItems_WDExpress"

[$RootKey$\Projects\{8BC9CEBA-8B4A-11D0-8D11-00A0C91BC942}\AddItemTemplates\TemplateDirs\{F1C25864-3097-11D2-A5C5-00C04F7968B4}\/3] 
"TemplatesDir"="$ShellFolder$\VC\VCAddClass_WDExpress"

[$RootKey$\Projects\{7D6034C3-AFB8-05CB-2A75-DAA65E89BE83}\AddItemTemplates\TemplateDirs\{F1C25864-3097-11D2-A5C5-00C04F7968B4}\/1] 
"TemplatesDir"="$ShellFolder$\VC\VCProjectItems_WDExpress"

[$RootKey$\Projects\{A2FE74E1-B743-11d0-AE1A-00A0C90FFFC3}\AddItemTemplates\TemplateDirs\{F1C25864-3097-11D2-A5C5-00C04F7968B4}\/1] 
"TemplatesDir"="$ShellFolder$\VC\VCNewItems_WDExpress"

(5)让Visual Studio Shell 重新加载插件

接着,删除插件缓存文件。我的在 C:\Users\Administrator\AppData\Local\Microsoft\VisualStudio\11.0\Extensions 目录中,不同的系统可能在不同的位置。删除这个目录下的所有文件。

然后,通过控制台程序,进入到 Microsoft Visual Studio 11.0\Common7\IDE 目录下,执行下面命令:

.\devenv.exe /setup

====

这样就得到了一个集成C#,VB,C++,Web开发的,可正常安装扩展的,支持建立虚拟目录的正版免费 Visual Studio IDE。整个过程就是做了这么一件事情——设置配置文件,将Express for Desktop/Web以及VC配置成Visual Studio的插件,其它地方未作修改。

注:可能是加载项目模板缓存的问题,第一次启动时如果窗体假死,直接关掉它,再重新打开就好了。

====

说几句其他的话:

(1)有人怀疑这样做的意义,认为VS 各种版本的注册码网上多的事,这样做多此一举。但好歹,这样实在对方授权范围内,而直接下载用注册码的是在对方授权范围外;

(2)即使微软纵容 D 版满天飞,但是嗟来之食,总归无味;

(3)通过上面操作,可以对Visual Studio 的插件结构有所了解,进而定制对自己最合适的IDE;

(4)黑客精神第一条:这世上充满著等着被解决的迷人问题。上面解决问题的过程中进行了很多大胆的假设、猜想和验证,然后一步一步的得到结果,这种过程也是很迷人的。

本文转自xiaotie博客园博客,原文链接:http://www.cnblogs.com/xiaotie/archive/2013/02/22/2922204.html,如需转载请自行联系原作者

DIY 一套正版、免费、强大的 Visual Studio 2012 IDE相关推荐

  1. 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)

    前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...

  2. 【转】visual studio 2012进行C语言开发[图文]

    原文网址:http://blog.csdn.net/chengyafei0104/article/details/9826025 现在大家计算机大概都脱离XP了,so,之前蛮多可以用的编译器,可能放在 ...

  3. [Tesseract]Tesseract 在 Visual Studio 2012 中的配置及调用

    一.Tesseract简介 Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本,目前已支持 ...

  4. Visual Studio 2012 和.NET Framework 4.5 快速开始的5分钟视频

    观看 60 到 90 分钟的截屏视频是很困难的.如果你观看完所有的这些视频,它将花费你不到一小时的时间,而你将对 Web 开发和 Visual Studio 2012工具中的新增功能有一个很好的实际想 ...

  5. 在Visual Studio 2012中使用VMSDK开发领域特定语言(二)

    本文为<在Visual Studio 2012中使用VMSDK开发领域特定语言>专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计.定制.调试.发布以 ...

  6. Visual Studio 2012

    Visual Studio 2012(VS2012)官方简体中文专业版下载(含激活密钥) 对于开发者而言,一款优秀智能的开发工具能够提升应用开发的效率,正因为如此,Visual Studio作为主流的 ...

  7. vs2017 c语言 安装教程,Visual Studio 2017 IDE安装使用图文教程

    本文为大家分享了Visual Studio 2017 IDE的安装与最基本使用,供大家参考,具体内容如下 首先,进入VisualStudio的官网下载最新版本的VSIDE(目前是VS2017):VS2 ...

  8. Visual Studio 2012 Ultimate RTM 体验(附下载地址和KEY)

    在用了RC版之后,就一直想尽快的等到RTM的到来,8月1号在Somasegar的博客中得知,将于8月15号对MSDN订阅用户开放RTM版的下载.这让我有点小兴奋. 在今天也就是Seattle time ...

  9. 微软的研发思路发生改变了 Visual Studio 2012 Update 1抢先看

    随着微软上周正式发布Visual Studio 2012,微软公司随即宣布了他们的下一版本.Update 1的CTP(社区技术预览)版预计本月底可用,而Update 1的最终版应该2012年底可用.微 ...

最新文章

  1. 第1个实验:用汇编语言点亮一盏LED
  2. python中for循环和while循环的区别_python中while循环和for循环的定义和详细的使用方法...
  3. 东南亚再造天猫 Lazada品牌商城LazMall举办第二届品牌未来论坛
  4. windows上搭建NFS服务器
  5. Spring Boot: SimpleCacheConfiguration
  6. P4213 【模板】杜教筛(杜教筛)题解
  7. 切换不了摄像头 高拍仪_高拍仪常见问题解答
  8. 2022年计算机二级Access数据库程序设计复习题及答案
  9. linux rm 文件找回_Linux下用rm删除的文件的恢复方法
  10. python里hist_python matplotlib模块: hist(直方图)
  11. html5视频事件参数详细
  12. 记一次Max模型导入到GIS平台歪了,尺寸不对过程分析
  13. 如何设计好一条推送通知
  14. 二手电商赛道龙头崛起,玩家们的较量依然是“长期战争”?
  15. Robotic TMS(一):TMS(经颅磁刺激)介绍
  16. php imagettftext,绝对详解PHP 的imageTtfText()函数
  17. 多变量微积分01-09
  18. 液压千斤顶的构造及构成
  19. 2021年上海市安全员C证考试总结及上海市安全员C证复审考试
  20. Android应用程序开发以及背后的设计思想深度剖析(4)

热门文章

  1. static关键字和内存使用
  2. 'or'='or'经典漏洞原理分析
  3. 【OpenCV】图像/视频相似度测量PSNR( Peak signal-to-noise ratio) and SSIM,视频/图片转换
  4. rpath和runpath的区别
  5. php fsockopen解决办法
  6. Xdebug的安装-(无错可执行版)
  7. BigPipe:高性能的“流水线技术”网页
  8. ASP.Net ViewState的实现
  9. C语言extern关键字定义外部变量--Redis源码extern使用
  10. 提高C++性能的编程技术笔记:跟踪实例+测试代码