昨天在一個QQ群裡有朋友問,asp.net2.0 如何發布(編譯)程式,產生dll。
但是我們從ms獲得的vwd2005 express 不支援發布產生dll的。
可以使用aspnet_compiler.exe 來發布我們的項目。
昨天也從ms上下了一個 .NET Framework 2.0 Software Development Kit (SDK) Beta 2 x86
http://www.microsoft.com/downloads/details.aspx?familyid=41070791-8912-4F94-AC46-7CE0E386D5C9&displaylang=en
之後安裝後,通過開始菜單/程式/Mrcrosoft .net framwoks sdk 2.0/sdk command prompt 選擇此項目
dos的介面路徑直接是 C:\Program Files\Microsoft_Visual_Studio_8\SDK\v2.0>
很方面我們就可以使用 aspnet_compiler.exe
如果使用這個命令呢 輸入aspnet_compiler -?斷行符號
參數使用都出來了而且還是中文的,方便多了
C:\Program Files\Microsoft_Visual_Studio_8\SDK\v2.0>aspnet_compiler -?
要用來先行編譯 ASP.NET 應用程式的工具 + 生產力
著作權 (C) Microsoft Corporation。著作權所有,並保留一切權利。
用法:
aspnet_compiler [-?] [-m metabasePath | -v virtualPath [-p physicalDir]]
[[-u] [-f] [-d] targetDir] [-c] [-fixednames]
[-keyfile file | -keycontainer container [-aptca] [-delaySign]]
-? 列印此協助文本。
-m 應用程式的完整 IIS 中繼資料庫路徑。此開關不能與 -v 或 -p 開關組合。
-v 要編譯的應用程式的虛擬路徑(例如“/MyApp”)。如果指定了 -p,則使用
實體路徑定位應用程式。否則,使用 IIS
中繼資料庫,並且假定應用程式位於預設網站(“/LM/W3SVC/1/Root”下)。此
開關不能與 -m 開關組合。
-p 要編譯的應用程式的實體路徑。如果缺少 -p,則使用 IIS 中繼資料庫定位此
應用程式。此開關必須與 -v 組合。
-u 如果指定,則先行編譯的應用程式是可更新的。
-f 如果目標目錄已存在,則改寫它。現有內容會丟失。
-d 如果指定此選項,將在編譯過程中發出調試資訊。
targetDir 應用程式將編譯到的實體路徑。如果沒有指定,則就地先行編譯應用程式。
-c 如果已指定,則重建整個先行編譯應用程式。任何以前編譯過的組件都將
被重新編譯。在指定 targetDir
的情況下將始終啟用此選項。
-keyfile 強式名稱密鑰檔案的實體路徑。
-keycontainer 指定強式名稱密鑰容器。
-aptca 如果已指定,則具有強式名稱的程式集將允許部分受信任的調用方。
-delaysign 如果已指定,則該程式集在建立後未完全簽名。
-fixednames 如果已指定,則編譯的程式集將擁有固定的名稱。
-nologo 取消編譯器著作權訊息。
樣本:
以下兩個命令等效,並依賴 IIS 中繼資料庫。編譯的應用程式被部署到 c:\MyTarget:
aspnet_compiler -m /LM/W3SVC/1/Root/MyApp c:\MyTarget
aspnet_compiler -v /MyApp c:\MyTarget
以下命令就地編譯應用程式 /MyApp。這樣,向它發送 HTTP 要求時就不再需要任何編譯:
aspnet_compiler -v /MyApp
以下命令並*不*依賴 IIS 中繼資料庫,因為它顯式指定應用程式的物理來源目錄:
aspnet_compiler -v /MyApp -p c:\myapp c:\MyTarget
C:\Program Files\Microsoft_Visual_Studio_8\SDK\v2.0>