當前位置:首頁 » 編程軟體 » web工程編譯

web工程編譯

發布時間: 2025-01-17 04:21:27

❶ VS2005 debug編譯和msbuild編譯 有什麼區別

用aspnet_compiler發布網站在asp.net 2.0模型中,vs2005已經完全脫離了編譯而成為了一個徹底的ide.算是一個不小的改動。其中更是取消了有關Web Application的概念,使得習慣了vs2003的人剛開始的時候會有一些摸不著頭腦。下面簡單說一下我在使用過程中自己總結的,算是一點經驗。

新建web工程並且位置是文件系統的時候,vs2005隻是幫你建好了一個sln文件,這個東西只是指引msbuild 如何進行編譯的,過程是:ide 調用 msbuild ,msbuild解析sln文件,msbuild調用aspnet_compiler.exe進行網站的編譯。所以aspnet_compiler.exe只是負責進行網站的編譯的。

預編譯的概念在 .netframework 1.1 裡面就存在了,vs2003中的預編譯指的是將頁面對應的cs/vb文件與resx文件編譯後統一集成到一個dll中放到bin目錄下,將aspx文件直接拷貝過去。這樣做會留下隱患,因為aspx文件就直接暴露在最後的發行包中,如果完全是codeb-behind模型還好,只能改改界面,如果採用了頁面上的來生成頁面,源代碼就暴露了。針對這些問題,vs2005採用了一種新的模式。
請參看ASP.NET 編譯工具 (Aspnet_compiler.exe) 這篇文章了解對各種文件的處理方式。

IDE發布:
vs2005中選擇 生成-〉發布網站,在對話框中的操作將映射到aspnet_compiler.exe的參數中,可更新的發布對應 -u,其他選項類似,請參考上面的文章了解。
注意:發布時將忽略web.config中的debug參數,統一生成無調試信息的文件。

手工編譯:
簡單說來,如果是無更新發布模式編譯,appcode下面的class編譯成dll放在bin下,頁面內容清空位置不變作佔位用,同時頁面被編譯成一個隨機名稱的dll,增加一個同名.compiled文件到bin目錄下,內容大概如下:

<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000" assembly="App_Web_hmrycg3w" type="ASP.forum_adminlist_aspx">
<filedeps>
<filedep name="/Controls/footer.ascx" />
<filedep name="/Controls/header.ascx" />
<filedep name="/Forum/AdminList.aspx" />
<filedep name="/Forum/AdminList.aspx.cs" />
<filedep name="/Forum/menu.ascx" />
<filedep name="/Forum/menu.ascx.cs" />
</filedeps>
</preserve>
裡面只是列出了頁面上的customcontrol,這里已經完成了和masterfile的映射。這樣最大限度的保護了頁面的敏感信息,發布過的網站中只能看見一堆文件名了。可更新的發布模式與vs2003類似,頁面就直接拷貝過來不予編譯了。

講了一堆原理,下面說一下aspnet_compiler.exe的調用方法,這是我使用的例子

我的開發目錄是這樣的

Project/
library/
devroot/
pubroot/
proj.sln
使用的命令如下:

aspnet_compiler -v / -p .\devroot -f .\pubroot
分析:

-v / 指明了iis的虛擬目錄
-p .\devroot 表示代碼實際位置
.\pubroot 指明了要發布的位置
-f 表示強制改寫目標位置
你還可以用-u來進行傳統意義上的預編譯,-d來插入編譯符號。

總的來說,aspnet_compile結合msbuild,提供了一個很好的自動化編譯環境,值得研究研究:)

❷ 在用eclipse集成的ant編譯web工程的時候,在編譯到類文件的時候,就會terminated,但是看不到原因

樓上的,WEB工程 和EXE 有毛關系啊?

樓主,你是ant是在那執行的,應該在控制參有輸出啊,
如果是eclipse的話,會出一個藍色的鍵接,點擊的話,可以到build.xml文件中運行出錯的地方。

❸ Eclipse無法自動編譯出class文件

有時候用Eclipse或者MyEclipse的時候 發現不能自動編譯 web工程下面缺少class文件!

第一個可能是你的自動編譯沒打開 project >build automatically 第二個要注意你的工程項目上有沒有打小紅叉知瞎 項目報錯時 eclipse是不自動編譯的 你可以檢查一下是否有些類出錯 或是檢查一下 構建路徑 是否完整 特別是從換機子調試程序時 有些導入jar包的路徑不對

通常我們遇到的是第二個 就是有的包在別人機器上是有的 但是到你的機器上相同路徑是沒有的 刪去和那個包有關系的 或者添加新的包路徑

eclipse出現不編譯工程的現象 怎麼刷新classes目錄下也是空的

具體都操作了 打開project >build automatically 試後不行 還是不編譯

打開project ——> build automatically 另外 clean一下就可能會編譯了 結果還不行 (一般先運行project ——>clean… 然後再陪陪執行build automatically)

eclipse默認是選自動編譯 即使取消自動編譯 手動build工程 也不能編譯

出現這種情況一般有以下幾種原因 如果項目里引了某個不用的jar包 而那個包又被你刪了 就會出現不報錯但怎麼也編譯不出來class文件的情況 可以把所有包都刪除 然後一個一個的再引入(需要的) 不要一下子把所有包都引入來 沒用的可能會引起不良後果

想刪掉某個class文件重新生成 刪除class文件後 但classes目錄下的文件夾被其它程序打開 比如Total Commander 此時編譯也不會通過 在problems下可能會提示 con t delete classes …… 關掉其它程序重新編譯即可

還有種情況是remove掉 JRE System Library 重新導入即可編譯 但是什麼原因導致的還不清楚

項目引用了其他的項目 而被你引用的項目引用蘆猛蠢了某個不用的jar包之類

lishixin/Article/program/Java/ky/201311/28954

熱點內容
如何帳戶密碼 發布:2025-01-17 07:56:11 瀏覽:612
伺服器內網ip地址安全 發布:2025-01-17 07:33:18 瀏覽:186
華為新演算法 發布:2025-01-17 07:31:43 瀏覽:55
希沃如何存儲 發布:2025-01-17 07:31:00 瀏覽:552
演算法研讀 發布:2025-01-17 07:19:37 瀏覽:279
我的世界橙子生存之旅伺服器ip 發布:2025-01-17 07:19:27 瀏覽:618
用戶名密碼錯誤導致認證失敗是什麼意思 發布:2025-01-17 06:58:24 瀏覽:328
安卓空調遙控器在哪裡 發布:2025-01-17 06:43:54 瀏覽:195
安卓版什麼做視頻軟體好用 發布:2025-01-17 06:43:14 瀏覽:336
神超電腦配置哪個好 發布:2025-01-17 06:35:50 瀏覽:574