java根據模板生成html,為ASP.NET 2.0網站生成唯一程序集

 2023-10-21 阅读 26 评论 0

摘要:在Visual Studio 2003下開發網站的都知道ASP.NET 1.1網站生成后都是一個唯一命名的程序集(項目名稱.DLL),但是這種情況在Visual Studio 2005的網站開發中不見了。Visual Studio 2005給我們提供了“發布網站”這樣方便的功能,不用在像以前一樣COPY

Visual Studio 2003下開發網站的都知道ASP.NET 1.1網站生成后都是一個唯一命名的程序集(項目名稱.DLL),但是這種情況在Visual Studio 2005的網站開發中不見了。Visual Studio 2005給我們提供了“發布網站”這樣方便的功能,不用在像以前一樣COPY的部署,但是采用其“發布網站”的功能,會在站點的BIN目錄中產生App_Code.compiledApp_Code.dllApp_Web_xxxxxx.dll,項目名稱.dll等等這樣的程序集,如果不采用預編譯的方式那么產生的文件會更加的多,因為很多都是隨機命名也沒有什么規律可言;這樣會給那些想COPY更新的人帶來不便,因為原來的文件不能被覆蓋,需要先刪除再COPY;有很多時候可能就是更新了后臺代碼,直接生成項目或是WEB的程序集,像以前一樣直接覆蓋DLL的方式也很簡單。

也許很多人不會考慮BIN下存放的東西,只要站點能運行就好了,那么這樣的人讀到這里也就沒有必要再看此文章,要知道時間是寶貴的,浪費在自己不關心的事情上很不值得的。

上面羅嗦了一堆,下面筆者將介紹采用Microsoft Web Deployment ProjectsVisual Studio 2005中生成唯一程序集的方法。

關于Microsoft Web Deployment Projects工具可以從微軟站點獲得詳盡的資料,我也沒什么好說的了微軟寫的很清楚了,呵呵。java根據模板生成html,

下載地址:

http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/default.aspx

詳細使用:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/web_deployment_projects.asp

<?XML:NAMESPACE PREFIX = O />

?

安裝后在“生成”和WEB項目的上下文菜單看到“Add Web Deployment Project…”,好了添加一個Web Deployment Project項目,起一個名稱,這個名稱就是將來編譯后生成的程序集名稱,默認的名稱“當前項目名稱_deploy

<?XML:NAMESPACE PREFIX = V />

雙擊Web Deployment Project的項目出現屬性頁面

Compilation中的Output Folder設置項目輸出路徑

Output Assemblies中的四大選項:

n??????? Merge all outputs to a single assembly-所有輸出都編譯成一個程序集(參數:程序集名稱)

n??????? Treat as library component (remove the App_Code.compiled file)App_Code視為類庫(刪除App_Code.compiled文件)

n??????? Merge each individual folder output to its own assemblyWEB項目中單獨的目錄會編譯到一個程序集中(參數:程序集前綴)

n??????? Merge all pages and control outputs to a single assembly-所有頁面控件編譯到一個程序集中(參數:程序集名稱)

n??????? Create a separate assembly for each page and control output-為每一個頁面和控件創建程序集

Signing使用key文件建立強命名空間的程序集

Deployment

n??????? Enable Web.config file section replacement-用不同的config文件替換Web.config中的節點

n??????? Create an IIS virtual directory for the output folder-創建IIS虛擬目錄(參數:虛擬目錄名稱)

n??????? Remove the App_Data folder from output location-刪除輸出目錄中的App_Data目錄

好了通過簡單的設置,就可以生成一個看上去非常“干凈利落”的bin目錄,每個程序集都很明顯,對部分升級工作很有幫助。

2006-6

實際上在我們的一個實際ASP.NET 2.0的解決方案中來應用這種方式出現了問題,下面我就講一下我的解決過程希望對大家有所幫助。

我們的解決方案包括22個項目(主要是類庫),其中的一個WEB項目是負責用戶UI的,傳統的生成或是發布網站的方式沒有任何問題,當使用Web Deployment Projects工具生成唯一程序集時出現了錯誤信息“Aspnet_merge.exe Exited with Code <?XML:NAMESPACE PREFIX = ST1 />1Aspnet_merge.exe 退出,錯誤代碼1),這樣的信息根本無法讓我們辦斷到底是哪里出了問題。好,下面依次打開VS 2005的工具-選項-項目和解決方案-生成并運行,設置“MSBuild 項目生成輸出詳細信息”,選擇“詳細”。再次生成Web Deployment Projects項目,注意“輸出”框內的信息現在變得非常豐富了,最后導致無法編譯的問題終于出來了“An error occurred when merging assemblies: ILMerge.Merge: ERROR!!: Duplicate type ‘_Default’ found in assembly 'App_Web_k5hhsnh0'”,它的意思是說在程序集中發現了相同的類型_Default,經過我檢查確實在我們的WEB項目中存在了兩個_Default類(在不同的目錄中),這樣的問題通過一般的生成完成和發布網站肯定都是檢測不出來的,運行也是正常的。ASP.NET支持的開發語言有哪些。VS 2005WEB項目默認的把命名空間給去掉了,可以手動增加一個命名空間,cs代碼中加入namespace的語句塊,另外別忘了在aspx文件的<@page>Inherits中寫入對應的[namespace].[類名];經過這樣的操作再次編譯成一個程序集就沒有問題了(備注:這個項目前后一共發現了5對類名稱一致的情況,加上命名空間或是改名稱就可以解決了)。

上面就是結合我的項目實際解決的問題,暫時還沒有發現別的錯誤出來。使用有問題的朋友也多多交流。

?

轉載于:https://www.cnblogs.com/footleg/archive/2008/04/08/1142270.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/155975.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息