今天下载安装了WinFX和Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation),准备开始学习一下Workflow。安装完毕后发现项目模版除Workflow外全部丢失了,上网找了一通,终于找到解决办法,并对VS2005项目模版查找原理进行了一番探究。
解决的方式是:
1。找到 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates目录(如果你的vs2005安装在其他盘,前面的C就换成你安装时的盘符),将下面涉及到的所有1033目录下的 *.zip文件全部拷贝到与1033目录平级的地方,即:假如原来你的csharp windows项目模版文件在C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\CSharp\Windows\1033目录下,现在就转移到C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\CSharp\Windows目录下。其他目录以此类推。
2。在 开始-〉运行里执行 devenv /setup 命令,等待大约2-3分钟后,该程序运行完毕,再打开vs2005,既可看到“丢失”的模版有找回来了。
以前破解DevExpress控件集时,也曾想研究一下DevExpress怎样将它自己的模版安装到IDE目录下,后来项目太紧张也就把它们放到自定义模版文件夹敷衍过去了。今天勾起兴趣研究了一下,终于大体明白IDE查找模版的原理。
我们默认vs2005安装在C:\Program Files\Microsoft Visual Studio 8,VS中自带项目模版放在C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates和C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplatesCache中(用户自定义模版可在工具——》选项——》项目和解决方案 中设置)。当我们启动VS2005,点击新建项目时,IDE读取C:\Program Files\Microsoft Visual Studio 8\Common7IDE\ProjectTemplatesCache目录下cache.bin,显示所有项目模版,当我们选择完毕点击确认时,IDE才通过cache.bin中的内容找到具体的模版文件(默认为C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplatesCache中的模版文件)创建项目。
那么C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplatesCache中的文件是什么时候生成的呢?我们如何将自己的模版直接安装到IDE目录下呢?这里涉及到Devenv 命令行开关devenv /setup,这个命令行在devenv /?中并不能找到,在MSDN上的解释是:强制 Visual Studio 合并所有可用的VSPackage 中描述菜单、工具栏和命令组的资源元数据。当我们执行devenv /setup时,IDE查找C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates文件夹下的项目模版,解压到C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplatesCache中相应文件夹,最后统计所有模版生成文件cache.bin。到这里前面的问题应该是解决了,只要我们将自己的模版放到C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates中,运行devenv /setup应该就可以了。(cache.bin可能也有某种原则,导致在1033子文件夹中的模版无法找到。这里还没有仔细研究)
今天大体就了解了这么多,谁如果有兴趣可以再深入研究一下,错误的地方欢迎指正。