阿不

潜水

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

尽管目前已经基本不用 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-301F-11D3-BF4B-00C04F79EFBC}") = "WebApplication133",    
           
"http://localhost/WebApplication133/WebApplication133.csproj",             
          
"{39CB37A5-F735-4684-B5DA-DD355B683090}"
  
   改为:
     Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApplication133",     
                 
"WebApplication133.csproj",      
                 
"{39CB37A5-F735-4684-B5DA-DD355B683090}"
      也就是把URL地址去掉就行了。
      
这样Web工程就可以以ClassLirary的方式打开了,但如果要正确编译,甚至调试,还必须保证,输出路径设为:bin\ 
把调试模式改为URL,单击“应用”,设置对应的启动URL就可以正常调试了。
(这里注意一点,没有点“应用”启动URL的输入框是灰色的不能输入。)

      一个小技巧,这里做一下笔记。

posted on 2006-03-17 23:31  阿不  阅读(1009)  评论(0编辑  收藏  举报