国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
? 預編譯ASP.NET 把*.aspx.cs文件封裝成dll文件 |BOBO-BOSCO...

預編譯ASP.NET 把*.aspx.cs文件封裝成dll文件,可以使用.net framework中的aspnet_compiler工具,使用方法如下。
比如我們現(xiàn)在編譯的應用程序,虛擬目錄是aspnet,實際物理路徑是E:aspnet,我們編譯后的目標路徑是E:www,那么我們只要執(zhí)行如下命令就可以了:

1            
aspnet_compiler -v /Aspnet -p c:aspnet c:www

執(zhí)行完成后,我們發(fā)現(xiàn)E盤下生成了www的目錄,里邊的子目錄App_Code和所有.cs文件都不見了,還有master頁及其代碼.cs文件也不見了。多了一個bin目錄(里邊是些.compiled和dll文件)和一個PrecompiledApp.config文件。其實這時候.aspx文件也被編譯了,只是它作為一個標記文件還存在,實際上沒有任何實質(zhì)性的內(nèi)容(我們發(fā)現(xiàn)這時候每個aspx文件的內(nèi)容都是“這是預編譯工具生成的標記文件,不應被刪除!”,其實刪了也無所謂)。
aspnet_compiler是個很不錯的工具,用來預編譯ASP.NET應用程序。打開Visual Studio 2005命令提示就可以執(zhí)行了。詳細的可以aspner_compiler -?看看幫助。

aspner_compiler 地址:C:WINDOWSMicrosoft.NETFrameworkv2.0.50727

下面是一個我在實際使用過程中的例子:

首先新建一個網(wǎng)站,建一個名為IMG.ASPX的頁面來生成驗證碼,而我想封裝這個頁面。

使用上述的命令后,加入E:www文件夾下會有一個dll文件,我這名為“App_Web_krtwag-s.dll”,然后就可以在其他項目中添加引用,然后建立一個無后臺的空頁面,將頁面頭部的Inherits屬性更改為”IMG,App_Web_krtwag-s” 之后運行頁面就會得到和封裝前IMG.aspx頁面運行相同的效果。

早于 ASP.NET 2.0 版的 ASP.NET 版本中沒有 ASP.NET 編譯工具。

復制

1            2            3            4            5            6            7            
aspnet_compiler  [-?]            [-m metabasePath | -v virtualPath [-p physicalPath]]            [[-u] [-f] [-d] [-fixednames] targetDir]            [-c]            [-errorstack]            [-nologo]            [[-keyfile file | -keycontainer container ] [-aptca] [-delaysign]]

選項
——————————————————————————–

選項
說明

-m metabasePath
指定要編譯的應用程序的完整 IIS 元數(shù)據(jù)庫路徑。 IIS 元數(shù)據(jù)庫是用于配置 IIS 的分層信息存儲區(qū)。 例如,默認 IIS 網(wǎng)站的元數(shù)據(jù)庫路徑是 LM/W3SVC/1/ROOT。

此選項不能與 -v 選項或 -p 選項一起使用。

-v virtualPath
指定要編譯的應用程序的虛擬路徑。

如果還指定了 -p,則使用伴隨的 physicalPath 參數(shù)的值來定位要編譯的應用程序。 否則,將使用 IIS 元數(shù)據(jù)庫,并且此工具假定源文件位于默認網(wǎng)站(在 LM/W3SVC/1/ROOT 元數(shù)據(jù)庫節(jié)點中指定)中。

此選項不能與 -m 選項一起使用。

-p physicalPath
指定包含要編譯的應用程序的根目錄的完整網(wǎng)絡路徑或完整本地磁盤路徑。 如果未指定 -p,則使用 IIS 元數(shù)據(jù)庫來查找目錄。

此選項必須與 -v 選項一起使用,不能與 -m 選項一起使用。

-u
指定 Aspnet_compiler.exe 應創(chuàng)建一個預編譯的應用程序,該應用程序允許對內(nèi)容(例如 .aspx 頁)進行后續(xù)更新。

如果省略該選項,生成的應用程序?qū)H包含編譯的文件,而無法在部署服務器上進行更新。 只能通過更改源標記文件并重新編譯來更新應用程序。

必須包括參數(shù) targetDir。

使用此選項時,不會編譯 .aspx 文件中的代碼塊(也就是位于 script 元素中或 <% 和 %>標記之間的代碼)。 因此,如果這些代碼塊中存在編譯錯誤,則只能在運行時顯示錯誤,因為只有這樣才能完全編譯 .aspx 文件。 將此選項用于依賴于 .aspx 文件中的代碼塊的站點通常是不安全的。

-f
指定該工具應該覆蓋 targetDir 目錄及其子目錄中的現(xiàn)有文件。

-d
重寫應用程序源配置文件中定義的設置,強制在編譯的應用程序中包括調(diào)試信息。 否則,將不會發(fā)出調(diào)試輸出。

不能將 -d 選項用于就地編譯;就地編譯使用調(diào)試選項的配置設置。

targetDir
將包含編譯的應用程序的根目錄的網(wǎng)絡路徑或本地磁盤路徑。 如果未包括 targetDir 參數(shù),則就地編譯應用程序。

-c
指定應完全重新生成要編譯的應用程序。 已經(jīng)編譯的組件將重新進行編譯。 如果省略此選項,該工具將僅生成應用程序中自上次執(zhí)行編譯以來被修改的那些部分。

-errorstack
指定該工具應在未能編譯應用程序時包括堆棧跟蹤信息。

-keyfile file
指定應該將 AssemblyKeyFileAttribute(指示包含用于生成強名稱的公鑰/私鑰對的文件名)應用于編譯好的程序集。

此選項必須與 -aptca 選項一起使用。 如果代碼文件中已經(jīng)將該特性應用于程序集,Aspnet_compiler.exe 將引發(fā)一個異常。

-keycontainer container
指定應該將 AssemblyKeyNameAttribute(指示用于生成強名稱的公鑰/私鑰對的容器名)應用于編譯好的程序集。

此選項必須與 -aptca 選項一起使用。 如果代碼文件中已經(jīng)將該特性應用于程序集,Aspnet_compiler.exe 將引發(fā)一個異常。

-aptca
指定應該將 AllowPartiallyTrustedCallersAttribute(允許部分受信任的調(diào)用方訪問程序集)應用于 Aspnet_compiler.exe 生成的具有強名稱的程序集。

此選項必須與 -keyfile 或 -keycontainer 選項一起使用。 如果代碼文件中已經(jīng)將該特性應用于程序集,Aspnet_compiler.exe 將引發(fā)一個異常。

-delaysign
指定應該將 AssemblyDelaySignAttribute(指示應該只使用公鑰標記對程序集進行簽名,而不使用公鑰/私鑰對)應用于生成的程序集。

此選項必須與 -keyfile 或 -keycontainer 選項一起使用。 如果代碼文件中已經(jīng)將該特性應用于程序集,Aspnet_compiler.exe 將引發(fā)一個異常。

使用 -delaysign 選項時,Aspnet_compilier.exe 生成的代碼在完成代碼簽名之前即可運行。 必須確保該代碼在完成簽名之前不易受到惡意用戶的攻擊。

-fixednames
指定應該為應用程序中的每一頁生成一個程序集。 每個程序集的名稱使用原始頁的虛擬路徑,除非此名稱超過操作系統(tǒng)的文件名限制。如果超過限制,將生成一個哈希值,并將其用于程序集名稱。

不能將 -fixednames 選項用于就地編譯;就地編譯使用編譯批處理模式的配置設置。

-nologo
取消顯示版權(quán)信息。

-?
顯示該工具的命令語法和選項。

備注
——————————————————————————–

有兩個版本的 ASP.NET 編譯工具:

.NET Framework 2.0 中附帶的版本。 可以使用此版本編譯針對 .NET Framework 2.0、.NET Framework 3.0 或 .NET Framework 3.5 的網(wǎng)站。 這些站點必須部署在應用程序池中,該應用程序池與 .NET Framework 的目標版本關聯(lián)。

.NET Framework 4 中附帶的版本。 可以使用此版本編譯針對 .NET Framework 4 及更高版本的網(wǎng)站。 此版本的工具可以創(chuàng)建僅適用于 .NET Framework 4 CLR 的程序集,即使 Web.config 文件缺少 targetFramework 特性。

如果打算將應用程序部署到與 .NET Framework 4 版 相關聯(lián)的應用程序池,則可以使用此版本來編譯 Web.config 文件指示其面向早期版本之一的應用程序。

有關如何開發(fā)、編譯和部署特定于 .NET Framework 版本的網(wǎng)站的更多信息,請參見針對 ASP.NET Web 項目的 .NET Framework 多目標功能 和 ASP.NET 并行執(zhí)行概述。 有關 ASP.NET 編譯工具如何確定網(wǎng)站的目標 .NET Framework 版本的信息,請參見 BuildManager..::..TargetFramework 屬性。

可以通過以下兩種常用方式來使用 ASP.NET 編譯工具:就地編譯和為部署進行的編譯,后者需要指定目標輸出目錄。 下面的幾節(jié)將介紹這些方案。

就地編譯應用程序
ASP.NET 編譯工具可以就地編譯應用程序,也就是說,它模仿對應用程序發(fā)出多個請求的行為,從而導致進行常規(guī)編譯。 預編譯站點的用戶將不會遇到因第一次請求而編譯頁面帶來的延遲。

請注意,如果使用的是模擬帳戶,則該帳戶和登錄用戶帳戶都必須具有對目標的寫訪問權(quán)限,預編譯才能成功。

就地預編譯站點時,請注意下列事項:

站點將保留它的文件和目錄結(jié)構(gòu)。

服務器上必須具有供此站點使用的所有編程語言的編譯器。

如果任何文件編譯失敗,整個站點的編譯將失敗。

還可以在向應用程序添加新的源文件之后就地重新編譯應用程序。 除非包括 -c 選項,否則該工具僅編譯新文件和更改過的文件。

說明
編譯包含嵌套應用程序的應用程序時,不會編譯嵌套應用程序。 必須單獨編譯嵌套應用程序。

說明
當您編譯包含母版頁的 Web 應用程序時,如果將該應用程序編譯為可更新的站點,則編譯可能會失敗并且會發(fā)生命名沖突。 如果母版頁的名稱與從該母版頁派生的內(nèi)容頁的命名空間名稱相匹配,則可能發(fā)生該沖突。 (繼承關系是由 @ Page 指令的 Inherits 特性建立的。) 若要解決此問題,可以更改母版頁的類名或者更改命名空間名稱,或者可以將該應用程序編譯為不可更新。

說明
如果使用工具的 .NET Framework 4 版本來就地預編譯網(wǎng)站,并且該站點面向 .net Framework 的早期版本,同時與面向 .NET Framework 2.0 CLR 的應用程序池相關聯(lián),則對 Web 應用程序的首次請求將導致動態(tài)編譯,就如同尚未對該站點進行預編譯。 這是因為命令行編譯器編譯到 .NET Framework 2.0 CLR 無法識別的 .NET Framework 4 臨時文件夾中。

1            2            3            4            5            6            7            8            9            10            11            12            13            14            15            16            17            18            19            20            21            22            23            24            25            26            27            28            29            30            31            32            33            34            35            36            37            38            39            40            41            42            43            44            45            46            47            48            49            50            51            52            53            54            55            56            57            58            59            60            61            62            63            64            65            66            67            68            69            70            71            72            73            74            75            76            77            78            79            80            81            82            83            84            85            86            87            88            89            90            91            92            93            94            95            96            97            98            99            100            101            102            103            
為進行部署編譯應用程序            通過指定 targetDir 參數(shù)來編譯應用程序以進行部署(編譯到某個目標位置)。 targetDir 可以是 Web 應用程序的最終位置;也可以進一步部署編譯好的應用程序。                         使用 -u 選項將以下面的方式編譯應用程序:可以對編譯好的應用程序中的某些文件做出更改,而無需重新編譯該應用程序。 Aspnet_compiler.exe 區(qū)分靜態(tài)和動態(tài)文件類型之間的不同,并在創(chuàng)建生成的應用程序時,以不同的方式對它們進行處理。                         靜態(tài)文件類型是指那些沒有關聯(lián)的編譯器或生成提供程序的文件類型,例如具有 .css、.gif、.htm、.html、.jpg、.js 等擴展名的文件。 這些文件只是復制到目標位置,并且在保留的目錄結(jié)構(gòu)中保持它們的相對位置。                         動態(tài)文件類型是指那些具有關聯(lián)的編譯器或生成提供程序的文件類型,包括具有 ASP.NET 特定文件擴展名(如 .asax、.ascx、.ashx、.aspx、.browser、.master 等等)的文件。 ASP.NET 編譯工具從這些文件生成程序集。 如果省略 -u 選項,該工具還會創(chuàng)建具有文件擴展名 .COMPILED 的文件,這些文件將原始源文件映射到它們的程序集。 為確保保留應用程序源的目錄結(jié)構(gòu),該工具在目標應用程序的相應位置中生成占位符文件。                         必須使用 -u 選項,以指示可以修改編譯好的應用程序的內(nèi)容。 否則,將忽略后續(xù)修改或者導致運行時錯誤。                         下表描述了在包括 -u 選項的情況下,ASP.NET 編譯工具是如何處理不同的文件類型的。                                      文件類型            編譯器操作                         .ascx、.aspx、.master            這些文件將被拆分為標記和源代碼,其中包括代碼隱藏文件。 源代碼編譯到程序集中,其名稱派生于哈希算法,且程序集放置在 Bin 目錄中。 任何內(nèi)聯(lián)代碼(即包含在 <script runat="server"> 元素中的代碼)都包括在標記中,不進行編譯。 將創(chuàng)建與源文件同名的新文件來包含標記,新文件位于相應的輸出目錄中。                         .ashx、.asmx            這些文件不進行編譯,而是原樣移動到輸出目錄中。 如果希望編譯處理程序代碼,請將這些代碼放入 App_Code 目錄的源代碼文件中。                         .cs、.vb、.jsl、.cpp                         (不包括先前列出的文件類型的代碼隱藏文件)            這些文件會進行編譯,并作為資源包含在引用它們的程序集中。 源文件不復制到輸出目錄中。 如果不引用代碼文件,則這些文件不會進行編譯。                         自定義文件類型            這些文件不進行編譯。 這些文件復制到相應的輸出目錄中。                         App_Code 子目錄中的源代碼文件            這些文件編譯到程序集中,且放置在 Bin 目錄中。                         說明            App_Code 目錄中的靜態(tài)文件類型不復制到輸出目錄中。            App_GlobalResources 子目錄中的 .resx.resource 文件            這些文件編譯到程序集中,且放置在 Bin 目錄中。 不會在主輸出目錄中創(chuàng)建 App_GlobalResources 子目錄,且不會將源目錄中的 .resx.resources 文件復制到輸出目錄中。                         說明            App_GlobalResources 子目錄中的資源文件先編譯到程序集中,然后編譯 App_Code 子目錄中的代碼。不支持在編譯之后修改資源文件。            App_LocalResources 子目錄中的 .resx.resource 文件            這些文件不進行編譯,它們復制到相應的輸出目錄中。                         App_Themes 子目錄中的 .skin 文件            .skin 文件和靜態(tài)主題文件不進行編譯,它們復制到相應的輸出目錄中。                         .browser                         Web.config                         靜態(tài)文件類型                         Bin 目錄中已存在的程序集            這些文件原樣復制到輸出目錄中。                                      下表描述了在省略 -u 選項的情況下,ASP.NET 編譯工具是如何處理不同的文件類型的。                         說明            不會提供阻止您修改已編譯應用程序的源代碼的警告。                                                   文件類型            編譯器操作                         .aspx、.asmx、.ashx、.master            這些文件被拆分為標記和源代碼,其中包括代碼隱藏文件和包含在 <script runat="server"> 元素中的任何代碼。 源代碼編譯到程序集中,其名稱派生于哈希算法。 生成的程序集放置在 Bin 目錄中。 任何內(nèi)聯(lián)代碼(即包含在 <% 和 %> 括號之間的代碼)包括在標記中,不進行編譯。 編譯器將創(chuàng)建新文件,以包括與源文件同名的標記。 這些生成的文件放置在 Bin 目錄中。 編譯器還會創(chuàng)建與源文件同名的文件,但新創(chuàng)建的文件具有擴展名 .COMPILED 且包含映射信息。 .COMPILED 文件放置在與源文件的原始位置相對應的輸出目錄中。                         .ascx            這些文件被拆分為標記和源代碼。 源代碼編譯到程序集中,且放置在 Bin 目錄中,其名稱派生于哈希算法。 不生成標記文件。                         .cs、.vb、.jsl、.cpp                         (不包括先前列出的文件類型的代碼隱藏文件)            從 .ascx、.ashx.aspx 文件生成的程序集所引用的源代碼編譯到程序集中,且放置在 Bin 目錄中。 不復制源文件。                         自定義文件類型            這些文件像動態(tài)文件一樣進行編譯。 編譯器可以將映射文件放置在輸出目錄中,具體取決于它們所基于的文件類型。                         App_Code 子目錄中的文件            該子目錄中的源代碼文件編譯到程序集中,且放置在 Bin 目錄中。                         說明            App_Code 目錄中的靜態(tài)文件類型不復制到輸出目錄中。            App_GlobalResources 子目錄中的文件            這些文件編譯到程序集中,且放置在 Bin 目錄中。 不會在主輸出目錄下創(chuàng)建 App_GlobalResources 子目錄。 如果配置文件指定了 appliesTo="All",則 .resx.resources 文件復制到輸出目錄中。 如果這些文件被 BuildProvider 引用,則不會被復制。                         App_LocalResources 子目錄中的 .resx.resource 文件            這些文件編譯到程序集中,具有唯一的名稱,且放置在 Bin 目錄中。 不會將 .resx.resource 文件復制到輸出目錄中。                         App_Themes 子目錄中的 .skin 文件            主題文件編譯到程序集中,且放置在 Bin 目錄中。 為 .skin 文件創(chuàng)建存根 (stub) 文件,并將它們放置在相應的輸出目錄中。 靜態(tài)文件(如 .css)復制到輸出目錄中。                         .browser                         Web.config                         靜態(tài)文件類型                         Bin 目錄中已存在的程序集            這些文件原樣復制到輸出目錄中。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Asp.net夜話之一:asp.net介紹
巧用ASP.NET預編譯Web應用程序規(guī)避調(diào)用延遲
ASP.NET的網(wǎng)頁代碼模型及生命周期
VS2005將支持的兩種WEB編程模型的比較
VS2008 Web Application和Web Site的區(qū)別[轉(zhuǎn)] - 無名 - ...
命令行編譯器vbc.exe和csc.exe的使用 - Spring - 博客園
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服