您好,登錄后才能下訂單哦!
這篇文章主要介紹“VS2003和VS2005的區別是什么”,在日常操作中,相信很多人在VS2003和VS2005的區別是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”VS2003和VS2005的區別是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
目前在用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
可我在使用過程中又發現許多新的問題,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://cache.yisu.com/upload/information/20210607/332/4413.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的區別是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。