當前位置:開發者網絡 >> 技術教程 >> .NET教程 >> .NET Framework >> 內容
精彩推薦
分類最新教程
分類熱點教程
    
將.aspx文件和圖片編譯進dll
作者:未知
日期:2005-04-12
人氣:
投稿:(轉貼)
來源:未知
字體:
收藏:加入瀏覽器收藏
以下正文:
 
以前曾在CSDN論壇看到有人問如何將.aspx頁面也編譯進dll,當時做了解答。後來覺得也許還會有人要用,所以最近就把文章整理一下。
大家可以去看看做好的dll
http://www.bestaspx.net/down/allindll.zip
先簡要說一下方法:
一、取得.aspx頁面類的源代碼
在C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files目錄下可看到你的站點和虛擬目錄名,點進去就能找到你的頁面類,但注意這個頁面類的名字跟你原來的名字沒多大聯繫,你也可以通過陷阱直接在錯誤頁中找到:
源文件: c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\root\6e5a7fb1\54c3fdeb\ehrvxfn5.0.cs    行: 90
(在aspx頁面任意位置添加即可設置陷阱,取得編譯源文件)
二、編譯

通過上面得到源文件,註釋掉依賴項:如
//dependencies.Add("W:\\wwwroot\\dlltest\\ex2.aspx");
然後編譯

方法一

打開VS,新建一個WEB項目,將這些頁面類包含進來並註釋掉頁面依賴項,將圖片的編譯類型設置為嵌入即可。

方法二
沒有VS的可以用csc/vbc編譯器完成編譯,關於如何用編譯器編譯項目可以參照:http://www.bestaspx.net/Articles/Show.aspx?ArticleID=21

當然圖片也是可以打包進去的,這樣所有的東東都打進dll了
下面要簡單說一下如何在命令行將圖片編進dll
用sdk 中自帶的C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\resxgen
resxgen.exe /i:logo.gif /o:test_res.resx /n:logo
得到資源文件test_res.resx,就可以在命令行引用資源編譯了。
不能得到resxgen的可以到這裡下載:http://www.bestaspx.net/down/ResXGen.zip
源碼:http://www.bestaspx.net/down/ResXGen_Src.zip

那麼項目中如何使用資源文件呢,諸位請看:
Assembly myAssem = Assembly.GetExecutingAssembly();
ResourceManager rm = new ResourceManager( "名字空間.test_res", myAssem );
System.Drawing.Image objGraphics = ( System.Drawing.Image )rm.GetObject("logo");
objGraphics.Save( Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif );
objGraphics.Dispose();
三、建立aspx到dll的映射

在Asp.Net應用程序配置文件web.config的system.web節的httpHandlers節添加aspx到dll的映射項,語法如下:
<add verb="*" path="aspx文件名" type="類名,dll文件" />
四、測試
通過以上3步,就已完成了所有的工作,下面就測試一下,打開IE,輸入
http://localhost/虛擬目錄名/aspx文件名查看效果。
因為是很久以前的試驗了,現在是憑記憶寫的,所以比較亂,如果有問題可以聯繫我。
相關文章: