遇到 asp.net 2.0 web site 站点发布问题(二)

来源:互联网 发布:淘宝店铺收购 编辑:程序博客网 时间:2024/06/16 18:20

问题重现

1.创建一个web site

2.夹添加一个Test.aspx,默认下,Test.aspx.cs中的类名为Test

3.在App_Code里添加Test.cs

编译网站,输出:

验证完成
========== 生成: 1 成功或最新,0 失败,0 被跳过 ==========

但错误列表列出一个警告:说两个Test类名有冲突.

3.发布网站.输出:

正在预编译网站

正在生成目录“/Test/App_Code/”。
正在生成目录“/Test/”。
预编译完成
------ 发布已启动: 项目: D:/.../Test/, 配置: Debug .NET ------
========== 生成: 1 成功或最新,0 失败,0 被跳过 ==========
========== 发布: 1 个成功,0 个失败,0 个跳过 ==========

4.打开IIS新建站点,主目录并指向刚才发布网站所在的目录,浏览Test.aspx

编译错误

说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0433: 类型“Test”同时存在于“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/2c9ccf89/41852ec5/assembly/dl3/1ae83181/0026b251_00bcc701/App_Web_kcpoyyg4.DLL”和“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/2c9ccf89/41852ec5/assembly/dl3/ca0bbcb1/00cc4f4f_00bcc701/App_Code.DLL”中

解决方法

跟上一篇文章"遇到 asp.net 2.0 web site 站点发布问题(一)"中解决方法原理一样,修改类名字.

疑问:

为什么VS2005不把上面出现的错误在编译网站时直接列为错误呢,而只是列为警告,在网站发布以后又把报为错误...汗下M$,不知这是不是VS2005的BUG吗?

vs2005 中的web site 发布后,在站点的Bin目录下,出现了App_code.dll等很多个dll,如站点下有多个文件夹,并下都有aspx,这时Bin目录会更有多个dll,并且文件名是随机生成的.

用web deployment project小工具把站点生成只有一个dll,其下载地址google搜索,用法MSDN上也有详细描述.

接着上面第4点

.选择站点,右键,添加web deployment project,指定DLL名字为Web_Deploy

.生成Web_Deploy,错误列表列出

错误 1 “aspnet_merge.exe”已退出,代码为 1。  

造成这个错误原因,也是上面所说的类名冲突.解决方法也是修改相应类名.

 

总结:

1.在开发程序时,注意类名的规范.命名空间_项目名_文件夹名_类名

2.组织好程序逻辑,避免警告,同时不要把VS2005列出的警告视而不见.


原创粉丝点击