在我们的网络应用里,我们需要生成新的Project Items模板,而且拥有新的扩展名(譬如".joy")。但我们希望由此产生的新文件(譬如"a.joy") 跟通常生成的"a.aspx"文件的行为一样,即,有设计视图,可以往上面拖控件,HTML视图支持Intellisense,等等。
我们参照了Chris Sells网站上Michael Weinhardt的文章,经过少许改动后,能够在VS.NET IDE里成功生成新的文件(a.joy)以及相应的code behind文件(a.joy.vb)。然后参照下面2个连接里的提示,
http://weblogs.asp.net/ralfw/archive/2004/11/05/252865.aspx
http://dotnetjunkies.com/WebLog/darrell.norton/archive/2004/04/21/11837.aspx (这个连接中的最后一个答复者遇到了跟我们一样的问题)
我们对注册表里下列的几个Key添加了对应的条目,
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/7.1/Editors
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/7.1/Editors
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/7.1/Languages
理论上讲,在编辑a.joy时,我们应该得到HTML编辑器,但我们得到的却是XML编辑器。
我们估计是注册表里的问题,所以我们试着改动注册表,几乎找遍了所有跟".aspx"有关的条目,都为".joy"添加了相应的条目,但我们得到的却总是XML编辑器。
感觉这不应该是个很难的问题,因为改动扩展名是很正常的事,譬如微软中国网站用的是“.mspx”。实际上,要运行的话,只要改动IIS里的应用影射,以及在machine.config或web.config里添加相应的httpHandler即可。