晨鸟科技

 找回密码
 注册
搜索
查看: 8898|回复: 0
打印 上一主题 下一主题

VS2008中Web项目的App_Code目录问题

[复制链接]
跳转到指定楼层
楼主
发表于 2010-8-7 15:34:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引用地址:http://hi.baidu.com/yutengxw/blo ... 4037788ad4b2e8.html' [! m: V1 Q* `! f/ Q! N
; j4 A$ a. o$ b' T
! j, e7 z. I; L( Z7 V% ^
    用了一段时间的VS2008,感觉还不错,至少从VS2005过渡比较平滑,比较容易使人接受。可能是主观上的原因,竟然感觉VS2008整体运行速度更快。4 S# R  y/ a( ~, N1 O7 m* }! f# |
( _, y8 f$ F% c9 X' g! z
    在VS2005中可在Web项目中直接添加App_Code目录,反而在VS2008中找不到这个命令,令人迷惑。目前只能手动添加App_Code目录,然后再项目的解决方案窗口中显示所有目录和文件(App_Code目录竟然不能自动包含进项目),最后选择App_Code目录并右击,在弹出的菜单中选择“包括在项目中”命令,这时App_Code目录前面的复选框图标被勾选。& d" H5 k; k2 c7 y/ [3 D% n

( V+ \2 S% r: a/ l; j, T) X    不知道为什么微软要这么做,其他的如App_Browsers目录都可以很方便地添加,难道App_Code目录的地位还不如App_Browsers目录吗?当项目中有了App_Code目录后,在其中放置几个自定义的类文件,如封装了数据库操作的类文件,在ASPX的隐藏文件中无法访问。反而将这些类文件放到Web项目的根目录就可以被访问了,真的迷惑。
  `$ s' E, W; f9 X) h3 n5 }4 c; v: p9 {; N' M& {6 I. x
   MSDN上说VS2008的Web应用程序项目是和VS2003的Web模板相似的,以便于升级,是这个原因造成的么?
& Y4 P6 J4 R" h, ^& f+ C+ |4 I9 e/ \) m3 y# u
4 v6 `' B& n8 g* Q
   原来真的是这个原因,VS2008的Web应用程序项目回归了VS2003的模式,不能直接在网站项目里建立App_Code目录,建立了也没什么用,直接将含有公共类的代码文件放到项目根目录即可。这个模式需要注意的是,每次对*.cs代码文件修改,需要编译整个网站才可以看到效果,当然,如果只是修改了*.aspx里面的代码,即可不需手动编译,马上看到效果。 当然,在VS2008的菜单中,选择文件|新建|网站命令,即可直接创建VS2005中ASP.NET网站模板。
! K% u4 k$ {2 Q  r( v- ?) f3 U. j4 E! N0 u7 @$ M  |$ g, c5 ~0 Y

4 k; c1 f0 z$ U) m5 p: F* ~8 ^$ f   最近突然解决了这个问题,即使创建Web应用程序项目同样可以正常使用App_Code,令人费解,不过*.cs类文件的“生成操作”属性值必须为“编译”,如果为“内容”的话,这个类将无法有效在项目中共享。因为每次生成整个项目,需要编译这个类为dll,否则这个*.cs文件仅仅是1个文本文件而已。
8 F5 ~& r9 v( y/ u3 b( p9 S0 ^% ?4 \% ^2 u/ z- b6 C1 d4 }
) [8 O7 }: X- ^/ D: Y
在Web应用程序中不能通过右键项目-〉”添加“-〉”添加ASP.NET文件夹“方式添加 。因为Web应用程序中App_Code就不存在 。 9 R+ B2 s6 B- {- o
不过可以通过手动的方式创建,添加一个文件夹命名为App_Code就可以了。这样子创建的和在网站中创建的App_Code的在外观上一样的。
6 ?4 }7 q) {- l0 B+ p5 Z先不要高兴,没有这么简单的。
% q' ^* a- s& p0 V+ d1 E
* T0 ?" ^+ y9 i你在App_Code创建类时,会发现没有智能提示。在页面后台引用时,会抱错,说不存在。
  j% k4 P; |1 P% g/ G解决的办法就是选中你的类文件,在属性中”高级“中的”生成操作“默认”内容“要改为编译就可以了。
; X) w0 I4 B9 r# z0 G+ x8 m到这就可以了。
: J$ y8 R9 ?" ~. a' a9 c- R7 s
' x/ J* f6 X  d3 g& _也可以为Web应用程序项目中添加"App_LocalResources",在这个文件夹下添加类也是可以的,就不需要添加App_Code文件夹了。 0 e, s' Q4 S  p2 f- V# I2 I2 ?% k& \  ^
你还可以随便建个文件夹,或者根本就不用文件夹直接添加了类,只要修改了类高级属性的”生成操作改为"编译“就可以
% L, M) e, J5 L# m* R8 d
6 |" Q# g2 h2 ?+ h) D感想:终于找到问题的解决方案了,用VS2008至今,发现了好些不爽的地方,现在想想还是应该多怀疑怀疑微软啊,有些时候会想,可能是自己程序的问题,纠结了半天,发现原来是编译器的这些“特殊”的地方,折煞我也~~~  P7 H5 K4 ^1 M! k5 m
等改天有空了,要多去研究研究核心点的东西,还是要多靠靠自己啊~~~8 b& r$ x; e# P1 i& ~, W& C

: z) ?* B" Q" n3 V0 @* W) E
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|晨鸟科技 ( 沪ICP备09012675号 )

GMT+8, 2025-8-13 20:39 , Processed in 6.067103 second(s), 8 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表