VS2005相關----不能添加新項

系統安裝的Visual Studio 2005 英文版。今天安裝了SQL Server 2005 中文版的客戶端以後,因爲他們使用同樣的資源文件,VS2005也變成了中文版。但是今天在使用VS2005時的添加->添加新項(Add-> New Item)時,竟然很多模板找不到了。連基本的Class,Interface,Form等模板都沒有了,這樣當然不行了,所以停下工作了,研究一下究竟是怎麼回事!


以前知道,添加新項的模板都是保存在X:\Program Files\Microsoft Visual Studio 8\Common7\IDE\的ItemTemplates和ItemTemplatesCache文件夾裏面,不同是ItemTemplates裏面存儲的是Zip格式的壓縮文件,ItemTemplatesCache裏面存儲的是解壓縮以後的文件。看了一會,發現裏面的模板文件(比如Class.zip,Form.zip,Interface.zip等文件和文件夾)都還在),那麼應該是配置文件不對了,到底是哪個配置文件呢?


仔細找找,看到ItemTemplatesCache目錄下有個cache.bin的隱藏文件是比較新的,難道這個文件被更改了,到可以正常使用此功能的同事的機器上,拷貝了這個文件,覆蓋後,原來丟失的模板,回來了!

但是,仔細一看,由於使用了他人機器的cache.bin文件,現在顯示的新增項目的模板裏面是別人的模板,如果真實的模板不存在,新建的時候就會出錯,而且,我原來一些自己的模板也都沒有了。看來得自己生成cache.bin文件。

MSDN上找到了:

devenv.exe /InstallVSTemplates

註冊位於 <VisualStudioInstallDir>\Common7\IDE\ProjectTemplates 或 <VisualStudioInstallDir>\Common7\IDE\ItemTemplates 中的項目或項模板,這樣就可以通過“新建項目”和“添加新項”對話框訪問它們。

好,運行之,半分鐘後。重新運行Vs2005,新增,問題依然存在,不能新增class.cs form.cs interface.cs等模板。難道微軟的敘述有錯嗎?

再仔細查看ItemTemplatesCache和ItemTemplates兩個目錄,結構是一樣的。只是ItemTemplatesCache將ItemTemplates中.zip文件的解壓縮版本。難道是英文版和中文版的錯誤。查看ItemTemplates文件下的CSharp,Jsharp,VisualBasic等文件夾,果然發現下面都有個1033文件夾,1033英文版的Local ID,那麼我的安裝SQL Server2005後被翻譯成中文版的VS2005也就會找中文版的2052目錄了。既然如此,將ItemTemplates下的各個文件夾下,凡是有1033目錄的,按Ctrl+拖動,複製一份,然後將“復件 1033”改名爲“2052”。(實驗發現,將1033目錄下的文件拷貝到其上級目錄,也可以達到目的)。複製了各個文件下的1033目錄爲2052後,重新運行devenv.exe /InstallVSTemplates登錄後,問題完全解決。

(文後有對1033和2052的註解)

b900872346fc7849ac34de63.jpg

====================================================================


好了,總結一下:

問題描述:VS2005不能正確的使用添加新項功能,裏面的很多模板不見了!

解決方法:拷找到X:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ ItemTemplates目錄下一般有這幾個文件夾(根據您自己的自定義安裝會有所不同),然後複製1033目錄爲2052目錄,在命令行下運行devenv.exe /InstallVSTemplates,這是,系統會刪除掉ItemTemplatesCache目錄,然後根據ItemTemplates的結構重新構造ItemTemplatesCache文件夾及其文件。



下圖是被錯誤的更改的添加選項,很多模板沒有了!

4609a28f75764de3f11f366c.jpg


下面修復完成的。終於找到了原來的模板

38c717e9db25f832b90e2d6e.jpg


其實,相對於ItemTemplates和ItemTemplatesCache,X:\Program Files\Microsoft Visual Studio 8\Common7\IDE還有個ProjectTemplates以及ProjectTemplatesCache,存放的是項目模板,有時候當新建的項目模板找不到,或者想添加自定義的模板的時候,也可以用類似的方法來解決,只不過,這個時候運行的命令是:

devenv /setup

強制 Visual Studio 從所有可用的 VSPackages 合併用於描述菜單、工具欄和命令組的資源元數據。


------------------------------------------------------

附:對1033和2052的解釋

1033和2052等叫做 LCID(Locale ID,區域性標識符),其中1033 表示英語(美國),2052表示簡體中文,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章