尽管目前已经基本不用 VS2003 作为主要开发工具了,但是今天打开 SubText 却发现它的 Web 工程却是用 ClassLirary 形式的工程来管理的。也就是说不需要在 IIS 创建一个 WEB 工程虚拟目录映射才能找开 WEB 工程,这样就会给我们带来极大的方便。在 VS2005 的 Web Site 也解决了这个问题,但是却带来了其实的问题,比如没有项目文件,无法很好地管理文件的排除与包含问题。
通过 SubText 项目中的 AspNetWithoutWebProjects.txt 介绍的地址( http://pluralsight.com/wiki/default.aspx/Fritz.AspNetWithoutWebProjects ),了解到在 VS2003 中可以通过修改一个环境文件和项目文件,可以达到就可以实现用 ClassLirary 的工程管理方式来管理 WEB 工程。这里记录下与大家共享。
打开 VS2003 的安装目录,并转到 VC#\CSharpProjectItems 目录下,可以看到还有两个子目录 WebProjectItems 和 LocalProjectItems ,先打开 WebProjectItems 下的 WebProjectItems.vsdir 文件 拷贝下:
CSharpAddWebFormWiz.vsz
CSharpAddWebServiceWiz.vsz
CSharpAddWebUserControl.vszdd
CSharpAddWebDataForm.vsz
这 4 行的完整代码。
然后转到 LocalProjectItems目录 ,打开 LocalProjectItems.vsdir 文件把上面拷贝的内容粘贴进来。
这一步操作的目的是让 ClassLirary 工程的右键添加新项的菜单中有添加 WebForm , Web 引用, WebUserControl, 等这些项,默认情况下是没有这些的,只有添加 WinForm 等不是 Web 工程特有的菜单。
对环境文件的修改这样就行了。接下来就要修改
Web
工程本身的文件。打开项目工程
(.csproj)
文件,把:
ProjectType = "Web"
改为
ProjectType = "Local"
。然后删除工程目录下的
.webinfo
文件,否则工程将无法打开。
如果工程被包含在一个解决方案文件中,要让解决方案能正常打开,需要打开.sln把对WEB工程改成普通工程的引用。如:
Project("{FAE04EC0
"http://localhost/WebApplication133/WebApplication133.csproj",
"{39CB
改为:
Project("{FAE04EC0
"WebApplication133.csproj",
"{39CB
也就是把URL地址去掉就行了。
这样Web工程就可以以ClassLirary的方式打开了,但如果要正确编译,甚至调试,还必须保证,输出路径设为:bin\ ;
把调试模式改为URL,单击“应用”,设置对应的启动URL就可以正常调试了。
(这里注意一点,没有点“应用”启动URL的输入框是灰色的不能输入。)
一个小技巧,这里做一下笔记。