剖析Visual Studio2003開(kāi)發(fā)種種錯(cuò)誤
希望本文描述的Visual Studio2003開(kāi)發(fā)程序能給大家?guī)?lái)幫助,導(dǎo)致Visual Studio2003開(kāi)發(fā)出錯(cuò)的原因也許還有很多,不過(guò)在你遇到錯(cuò)誤時(shí),可以先檢查一下你程序中的字符串,暫時(shí)把他們置為””,試試看。沒(méi)準(zhǔn)就是它引起的問(wèn)題啊。
我有一個(gè)網(wǎng)站,原先是用Visual Studio 2003開(kāi)發(fā)的,現(xiàn)在把它移植到2005中,我發(fā)現(xiàn)選擇生成之后沒(méi)有發(fā)現(xiàn)生成dll文件,這是怎么回事?另外,生成選項(xiàng)里面也沒(méi)有release選項(xiàng),只有debug。望各位大蝦指點(diǎn)一下,多謝! #t#
我選擇“生成”——〉“生成網(wǎng)站”,一切都正常,網(wǎng)站在本地也可以訪問(wèn)。把它傳到遠(yuǎn)程服務(wù)器上之后,由于缺少程序編譯的dll文件,網(wǎng)站不能訪問(wèn)。我也感覺(jué)很奇怪,為什么Bin目錄下沒(méi)有編譯之后的dll文件呢?Top
生成網(wǎng)站的網(wǎng)站的時(shí)候提示你選擇個(gè)文件夾,上傳那個(gè)里面的Top
我選擇“發(fā)布網(wǎng)站”之后看到Bin目錄中多了幾個(gè)dll文件,我把其中的dll文件復(fù)制到遠(yuǎn)程服務(wù)器上,不過(guò)網(wǎng)站訪問(wèn)的時(shí)候仍然提示沒(méi)有找到.cs文件?不知道怎么回事?Top
我想問(wèn)一下,我在Visual Studio2003開(kāi)發(fā)的程序怎么發(fā)布啊,請(qǐng)教一下我吧Top
找到原因了,微軟真的很變態(tài),VS2005中站點(diǎn)不再像VS2003那樣在生成的時(shí)候自動(dòng)把cs文件編譯成一個(gè)dll文件了,而是需要選擇“發(fā)布站點(diǎn)”來(lái)編譯程序,而且編譯之后的程序也不是一個(gè)dll文件了,變成一大堆動(dòng)態(tài)取名的dll文件。最變態(tài)的是每次編譯都需要重新上傳整個(gè)aspx頁(yè)面文件,不知道是基于什么考慮。
看字面意思就明白原因了,就是一個(gè)程序集里發(fā)現(xiàn)了兩個(gè)類名一樣的類,這樣肯定是不行的,但編譯的時(shí)候又會(huì)過(guò),因?yàn)榉旁诓煌哪夸洠琕S2005就可以編譯過(guò)了,真不明白VS2005是為什么要這么設(shè)計(jì),因?yàn)閂S2005在新建頁(yè)面的時(shí)候沒(méi)有把命名空間加上去,所以都是同一個(gè)命名空間下所以才會(huì)這樣,VS 2005的WEB項(xiàng)目默認(rèn)的把命名空間給去掉了,只能手動(dòng)增加一個(gè)命名空間,在cs文件代碼中加入namespace的語(yǔ)句塊,同時(shí)也在修改aspx文件的<@page>的Inherits中寫(xiě)入對(duì)應(yīng)的[namespace].[類名];
其實(shí)這個(gè)問(wèn)題類似于Visual Studio2003開(kāi)發(fā)程序中的發(fā)布問(wèn)題。如果項(xiàng)目中有兩個(gè)文件名一樣的情況也會(huì)報(bào)錯(cuò),比如有兩個(gè)help.aspx文件分別在不同的目錄,或者a.gif文件在不同的目錄也會(huì)報(bào)錯(cuò)。
難怪我也找不DLL,不過(guò)我覺(jué)得變成一大堆動(dòng)態(tài)取名的dll文件更好。