ASP.NET的WEB项目不能添加WEB用户控件的解决
采用企业级模板构建多层项目时,向解决方案添加的WEB项目不能添加WEB用户控件,即使添加菜单中存在添加WEB用户控件选项,添加后也变成窗体了.引起这个错误原因主要是项目的策略文件造成的.项目的默认策略文件一般放在:C:\Program Files\Microsoft Visual Studio .NET 2003\EnterpriseFrameworks\Policy目录下,文件名为DAP.tdl,使用了该默认的策略文件后,就不能向WEB项目增加用户控件了,这个策略文件及其复杂,如果对策略文件结构不是十分了解,你很难在短时间修改它以适合你项目的要求.
解决方案:
打开你的项目文件*.csproj,移到最底端,看到如下所示代码:
</Files>
<StartupServices>
<Service ID = "{CF845C55-C321-4742-B673-E6212D061ED9}" />
</StartupServices>
<UserProperties
TDLFILE = ""
TDLELEMENTTYPE = "WebUI"
/>
</CSHARP>
</VisualStudioProject>
<StartupServices>
<Service ID = "{CF845C55-C321-4742-B673-E6212D061ED9}" />
</StartupServices>
<UserProperties
TDLFILE = ""
TDLELEMENTTYPE = "WebUI"
/>
</CSHARP>
</VisualStudioProject>
注意我的TDLFILE项的设置是等于空的,而默认的是等于DAP.tdl文件.设置为空后,这个项目就不受策略文件的约束了.可以简单的实现项目添加文件类型的要求.
当然,最好还是通过修改策略文件来达到自己的目的,这样做没有了策略文件管理,可能无法屏蔽开发人员向项目中添加一些不该有的文件.