將.aspx檔案和圖片編譯進dll
來源:互聯網
上載者:User
先簡要說一下方法:
一、取得.aspx頁面類的原始碼
在C:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Files目錄下可看到你的網站和虛擬目錄名,點進去就能找到你的頁面類,但注意這個頁面類的名字跟你原來的名字沒多大聯絡,你也可以通過陷阱直接在錯誤頁中找到:
源檔案: c:WINDOWSMicrosoft.NETFrameworkv1.1.4322Temporary ASP.NET Filesoot6e5a7fb154c3fdebehrvxfn5.0.cs 行: 90
(在aspx頁面任意位置添加即可設定陷阱,取得編譯源檔案)
二、編譯
通過上面得到源檔案,注釋掉依賴項:如
//dependencies.Add("W:wwwrootdlltestex2.aspx");
然後編譯
方法一
開啟VS,建立一個WEB項目,將這些頁面類包含進來並注釋掉頁面依賴項,將圖片的編譯類型設定為嵌入即可。
方法二
沒有VS的可以用csc/vbc編譯器完成編譯,關於如何用編譯器編譯項目可以參照:http://www.bestaspx.net/Articles/Show.aspx?ArticleID=21
當然圖片也是可以打包進去的,這樣所有的東東都打進dll了
下面要簡單說一下如何在命令列將圖片編進dll
用sdk 中內建的C:Program FilesMicrosoft Visual Studio .NETFrameworkSDKSamplesTutorialsesourcesandlocalizationesxgen
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檔案名稱查看效果。
因為是很久以前的實驗了,現在是憑記憶寫的,所以比較亂,如果有問題可以聯絡我。