| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> C#教程 >> 文章正文  
 vs2005安装了sp1后发布问题解决办法
 

vs2005安装了sp1后发布问题解决办法

http://www.domcn.org  文章来源:互联网  点击数:

  关键字:vs2005安装了sp1后发布问题解决办法

      本文主要解决ASP.NET 2.0网站生成一个程序集。在使用WebDeploymentProject后出现的错误的解决办法。特别是生成时报索引超出了数据界限的错误。我也找了网上很多的资料,但最终还是没有解决,后来自己试了很久才试出来。欢迎大家交流指导。很多人以为这个是没有安装SP1的原因,其实并不是,不信你们自己可以试一下。虽然安装SP1是需要比较久的时间,但还是安装一下比较好。不然有一些问题确实很烦人。

近来使用VS2005做项目,VS2005中发布网站时默认发布很多乱七八糟的程序集,这给升级网站时造成很大麻烦。去网上找了一下可以使用WebDeploymentProject的插件进行单个程序集的发布
下载地址http://download.microsoft.com/download/c/c/b/ccb4877f-55f7-4478-8f16-e41886607a0e/WebDeploymentSetup.msi
详细使用帮助请查看:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/web_deployment_projects.asp

安装完毕以后,测试一下真的很不错。关连的程序集的更新也可以随时更新,这可比vs2003强多了。vs2003有改一个引用的程序集就要更新所有的,不会就会说版本不对。
但用到正式的项目的时候却出现了问题。特别是升级上来的项目就可能存在下列问题。

碰到错误首先要把错误的详细信息输出来看看
操作方法:
VS 2005的工具菜单-选项-项目和解决方案-生成并运行,设置“MSBuild 项目生成输出详细信息”,选择“详细”。然后再生成Web Deployment Projects项目,查看“输出”对话框内的信息,就可以查看到详细的导致无法编译的问题。

错误一:报错误:“aspnet_merge.exe已退出,代码为1”
有两种情况,一种是 An error occurred when merging assemblies: 索引超出了数组界限。
    C:\Program Files\MSBuild\Microsoft\WebDeployment\v8.0\Microsoft.WebDeployment.targets(574,9): error MSB6006: “aspnet_merge.exe”已退出,代码为 1。
到网上查了好久,有说是自定义属性的描述中有中文的缘故,比如[WebMethod(Description=测试方法)]这样子,可是我写一个测试的根本跟这个就没有什么关系。查了好久久还是未果,只好自己动手删除文件来测试了。
解决过程:
几乎把所有的文件都删除了,还是不行,后来才发现原来是因为AssemblyInfo.cs文件中有中文的问题。把所有的中文去掉即可。

解决办法:
    普通的Web项目
    把AssemblyInfo.cs文件中所有的中文字都删除掉。注释可以不删除,然后再编译即可
    包括WebService的服务页的项目
    对于包括有webservice的页面则要检查Description是否有超过15个汉字的说明,如果超过就改短一点。这样就可以了。我还试了一下中英文组合的情况,非常奇怪的是,我用14个汉字加上两个英文可以,加上三个英文也可以,加上四个就不行了。后来我更狠一点。用一百多个英文字加两三个汉字也可以,到现在还没有搞明白是怎么回事,不过有一点可以确定的是,中文字不要超过15个,否则就会报“索引超出了数组界限”的错误。


还有一种错误是:Duplicate type _Default found in assembly  
解决办法:
看字面意思就明白原因了,就是一个程序集里发现了两个类名一样的类,这样肯定是不行的,但编译的时候又会过,因为放在不同的目录,VS2005就可以编译过了,真不明白vs2005是为什么要这么设计,因为vs2005在新建页面的时候没有把命名空间加上去,所以都是同一个命名空间下所以才会这样,VS 2005的WEB项目默认的把命名空间给去掉了,只能手动增加一个命名空间,在cs文件代码中加入namespace的语句块,同时也在修改aspx文件的<@page>的Inherits中写入对应的[namespace].[类名];

其实这个问题类似于vs2003中的发布问题。如果项目中有两个文件名一样的情况也会报错,比如有两个help.aspx文件分别在不同的目录,或者a.gif文件在不同的目录也会报错。


vs2005安装了sp1后发布问题解决办法
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.