首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

Effective C# 第 4 章:建立二進位組件,實現獨立部署與版本控制

     編輯:關於C#

組件:.NET 應用程式的基本部署單位

.NET 應用程式由多個二進位組件組成,各組件可獨立更新、發行。鬆散耦合意味著減少組件間複雜依賴,輕鬆替換小塊組件。本章探討如何建立易用、易部署、易更新的組件。

CLR 組件載入機制:延遲載入與強名稱

  • CLR 不在啟動時載入所有參考組件,而是於首次存取型別/成員時載入。
  • 強名稱組件:名稱、版本、文化特性、公開金鑰四要素。防止惡意替換,支援設定檔版本重導向。
  • 弱名稱組件:僅記錄名稱,無版本保護。

載入順序:強名稱先搜尋 GAC → 代碼基底 → 應用程式目錄/子目錄/私有路徑。弱名稱僅搜尋應用程式目錄結構。

AssemblyInfo.cs:組件中繼資料的核心

VS.NET 專案預設包含 AssemblyInfo.cs,三大區塊:

  1. 資訊屬性:標題、描述、公司、產品、版權、商標、文化特性(本地化組件必填,遵循 RFC1766)。
  2. 版本號:[assembly: AssemblyVersion("1.0.*")] 四部分(主版本.次版本.建置編號.修訂編號),星號自動產生建置/修訂號(基於時間)。發布時務必記錄版本號。
  3. 強名稱資訊:延遲簽署、金鑰檔、金鑰名稱。建議所有組件簽署強名稱(ASP.NET 除外),啟用版本控制與防篡改。

版本相容與設定檔重導向

  • 公開/受保護介面在 IL 層級必須相容:不可刪除方法、修改參數/回傳型別。
  • 應用程式設定檔(app.config)、發布者原則(GAC)、machine.config 三層級設定版本重導向:
<dependentAssembly>
  <assemblyIdentity name="MyAssembly" publicKeyToken="..." culture="neutral" />
  <bindingRedirect oldVersion="1.0.1444.20531" newVersion="1.1.1455.20221" />
</dependentAssembly>

安裝新版組件後更新對應設定檔,應用程式無需重編譯即可使用新版。

獨立更新的前置作業

首次安裝時即應包含支援升級的中繼資料(強名稱、完整版本號、公開金鑰)。善用組件版本控制,讓應用程式演進更平滑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved