最近這段時間寫個系統,一些可以記錄下來的東西整理(3)

2010-06-10

這個系統剩下來大部分就是邏輯的部份了,不過仍有少部分的東西還是能拿來分享一下。

11. ASP.NET網站專案使用類似ASP.NET WEB應用程式專案編譯與管理:這個專案我是用ASP.NET網站專案來開啟的,並且放在InetPub\wwwroot下面,這個是我的習慣。

開發到一定的階段以後,都會用發行網站,把要放在Server上的程式發行到某個地方,再把它弄到Server上。

可是不管怎麼調,產生出來的bin目錄下的dll就是看起來亂七八糟。


隨便開一個.aspx的檔案,相關的資訊都已經被編譯器改成這樣奇怪的資訊了。

這是由先行編譯工具產生的資料標記檔,不應該加以刪除!

原來都不選的話就做Static Building。如果勾了讓這個先行編譯的站台成為可更新,每個aspx的內容都回來了(好做Dynamic Building),但是還是有麻煩的東西(請注意看inherits的地方)。


這是什麼問題呢?如果我只是要改某個網頁的部份,或是CodeBehind的程式碼,在Server上除了bin目錄要替換之外,連原來aspx都要換(因為inherits會變)。加勾使用固定命名和單一頁面的組件是好多了,但是每個DLL還是後面跟一堆亂碼,每個網頁獨立的DLL,如果網頁一多真的嚇死人了(光複製就很久),這樣不是辦法,後來在網路上找到這個

安裝完以後,會在介面裡多了一個選項,點選以後在建置的地方會多個Add Web Deployment Project..,加了這個專案就可以用類似於ASP.NET WEB應用程式的發行方法。

點選完會有個對話框,選擇要發行的地方。

接下來就可以看到專案有多個專案檔,按右鍵有一些設定可以選。

選擇屬性頁,把Merge all outputs to a single assembly那些設定選一選。

這樣就會只剩一個DLL產出,做出來也會自動改aspx程式裡的inherits內容,以後改程式只要改DLL與那隻aspx就行了,不用整個目錄重新覆蓋。

除了剛剛的選項以外,還有其他選項可以用,有需要可以自行玩看看。 

不過有潔癖的我,看到.compiled實在很不高興(笑),雖然剛剛已經有選項移掉那些.compiled檔了,但是有用到Web Reference的還是會在。

在剛剛的選項裡都沒看到可以調的,就只能直接改專案檔了。對專案檔按右鍵,選Open Project File可以編輯專案檔。首先在ItemGroup加入DeleteAfterBuild的檔案特徵,然後在下面的Target中AfterBuild裡加入Delete的資訊。

其他還有很多選項可以調整,也是可以自行試看看。這樣一來就會在發行的時候把.compiled全部拿掉了(如果剛剛在Merge的時候不選移掉.compiled,這時候也會全部刪除)。


Blog comments powered by Disqus