DIY 一套正版、免费、强大的 Visual Studio 2012 IDE
作为开发软件的程序员,应在力所能及的情况下使用正版软件。最近一直在用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 之中。
这一步是最关键一步,下面详细说明。
以我的电脑为例(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\CommonExtensions\DataDesign; \
$RootFolder$\Common7\IDE\CommonExtensions\Platform; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Architecture Tools; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Blend; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\CodeAnalysis; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\CS; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Diff; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Editor; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Editors; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\EFTools; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\ExceptionAssistant; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\External Tools\ErrLook; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Language; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\ObjectBrowser; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\ProductUpdate; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Project; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\ProjectWizards; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\ReferenceManager; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\TemplateProviders; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\TestWindow; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\VB; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\VC; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\VSLog; \
$ShellFolder$\Common7\IDE\CommonExtensions\Microsoft\Web; \
$ShellFolder$\Common7\IDE\CommonExtensions\Microsoft\Web Tooling Extensions; \
$ShellFolder$\Common7\IDE\CommonExtensions\Microsoft\WebClient\Language Service; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Windows Forms Designer Services; \
$RootFolder$\Common7\IDE\CommonExtensions\Microsoft\Windows Forms Designer UI; \
$RootFolder$\Common7\IDE\WDExpressExtensions; \
$RootFolder$\Common7\IDE\Extensions\Microsoft\VC\ClassWizard; \
$RootFolder$\Common7\IDE\devenv.vc.pkgdef;"
"UserExtensionsRootFolder" = "$AppDataLocalFolder$\Extensions"
"RegistryRoot" = "Software\Microsoft\VisualStudio\11.0"
然后,在同目录下建立一个 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"
然后,将 Microsoft Visual Studio 11.0\Common7\IDE\VWDExpress 目录复制到 Microsoft Visual Studio 11.0\Common7\IDE\Extensions 目录下。
接着,删除扩展缓存文件。我的在 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。
注:可能是加载项目模板缓存的问题,第一次启动时如果窗体假死,直接关掉它,再重新打开就好了。