读者对于VS2003发布的看法与理解
创始人
2024-06-12 19:51:37
0

目前在用VS2005写asp.net程序,发布时遇到很多麻烦,觉得和VS2003发布有好多差别,以前还一直抱怨Boland的Delphi 2005难用,很喜欢VS2005呢,现在觉得VS2005也有很多不尽人意的地方。下面就拿VS2003发布出来给大家探讨下

早知道当初还选择dotnet1.1了,现在用VS2005+dotnet2.0,发布时真是多花了好多力气,且听一一道来。

首先,一开始我还以为VS2005和VS2003一样,可是无论我怎样点击生成网站却始终找不到生成的dll,后来才知道,要用发布网站才可以的。可是对于一个web应用程序进行发布时,VS2005却生成了多个由随机字符命名的dll文件,看上去就很难受,而其管理维护起来十分不方便,更让人不能接受的是在发布webservice 的时候,对于每一个webservice网站应用程序VS2005生成一个名为App_Code.dll 的文件,找不到可以修改生成文件名的地方。

无奈之中,只好上网找资料。后来了解到WebDeployment  (点击这里进入WebDeployment下载页面)这个小插件可以解决上述问题,于是就下载来看看。是e文的,用起来不是很方便,但确实可以解决问题。

有关WebDeployment的参考请查阅一下网址

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/web_deployment_projects.asp

http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx

#t#可我在使用过程中又发现许多新的问题,WebDeployment用起来十分不稳定,会莫名其妙的出现错误,同样的代码有时能通过编译有时不能,错误提示十分含糊笼统,总是提示:

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

而且这些代码在不使用WebDeployment  的时候都很正常,都能编译通过。

相信许多朋友都遇到过这种问题,实在让人迷茫阿,于是笔者自己手用命令行动执行aspnet_merge.exe      对dll进行管理合并。

得到以下信息:

Utility to merge precompiled ASP.NET assemblies.
Copyright (c) Microsoft Corporation. All rights reserved.
An error occurred when merging assemblies: 索引超出了数组界限。

IMG alt="" src="https://files.pic99.top/shayuweb/202406/092be20e3d0a4ba.gif" width=550>

怎么会有数组越界错误,让人迷茫,于是又上网查资料,有人遇到同样的问题,可是没人知道是什么问题。笔者这时又查到另外一个卡一对.net assembly 进行管理的工具 ILMerge.exe 有关ILMerge.exe 的参考请浏览以下网址

http://research.microsoft.com/%7Embarnett/ilmerge.aspx

它目前支持.net1.1和2.0,可以把多个.net assembly合并成一个,笔者在想可不可以用它对VS2005生成的dll进行合并,于是下载了ILMerge.exe试试看,他只支持命令行方式,有点麻烦,我还是按帮助试试看了,结果是让人失望的,在我对aspnet_merge.exe 无法合并的dll进行合并时,出现同样的错误An error occurred when merging assemblies: 索引超出了数组界限。极度迷茫…….,该怎么办呢?问题没有解决,不能放弃。于是笔者把自己写的程序代码全都注释掉,一点一点放开,慢慢寻找问题所在。

终于,让我找到了我的程序的“bug”(其实不能称作为我的bug,因为他在VS2005和.net2.0中都能正确执行只是进行合并时有问题)我写了一个webservice,可以通过编译同过WebDeployment生成也没为题,

指定服务说明

[WebMethod(Description ="")]

仍然没有问题

改为:

[WebMethod(Description ="sdfdfsdfsdfsdfsdfsfsf")] 即Description = 英文字符串

仍然没有问题

改为:

[WebMethod(Description ="包括汉子的字符串..SSSsds ")],即Description =包括汉子的字符串

问题出现了

当Description包含汉子时候,对于WebDeployment而言根据字符的长度不同和字符中英文字母的个数不同,有时候会出错,有时候不会出错。

看来是WebDeployment,ILMerge本身有一定的bug,笔者猜想可能是编码问题造成的,WebDeployment,ILMerge都是英文版的,也许是在计算字符串长度时由于汉子和英文字母不同,而造成的错误吧,这只是我的猜想,大家仅作参考。

经过反复试验,笔者找到了一种不是办法的办法,就是在字符串后边狂加 空格由于笔者的WebMethod Description 在web上输出,因此***多些空格不太影响效果。暂且这样解决巴。无奈啊。

希望我的一点经验能给大家带来帮助,导致WebDeployment出错的原因也许还有很多,不过在你遇到错误时,可以先检查一下你程序中的字符串,暂时把他们置为””,试试看。没准就是他引起的问题啊。

VS2003发布以后用的还可以,但是VS2005确实还有很多不尽人意的地方阿。。。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...