所有使用通用語言執行環境的元件版本控制都是在元件層級完成。 元件的特定版本和相依元件的版本會記錄在元件的指令清單中。 運行時的預設版本原則是,應用程式只會使用其建置和測試的版本來執行,除非在組態檔中有明確版本原則來覆寫(此組態檔包括應用程式組態檔、發行者原則檔,以及電腦系統管理員的組態檔)。
執行階段會執行數個步驟以解析組件綁定要求:
檢查原始元件參考,以判斷要系結的元件版本。
檢查所有適用的組態檔以套用版本原則。
確定正確的元件,從原始元件參考及組態檔中指定的任何重新導向來判斷,並確定要系結到呼叫元件的版本。
使用 運行時間如何找出元件中所述的探查規則,檢查全域程式集緩存、組態檔中指定的程式代碼基底,然後檢查應用程式的目錄和子目錄。
下圖顯示下列步驟:
如需設定應用程式的詳細資訊,請參閱 設定應用程式。 如需系結原則的詳細資訊,請參閱 運行時間如何尋找元件。
版本資訊
每個元件都有兩種不同的表示版本資訊的方式:
元件的版本號碼,連同元件名稱和文化特性資訊,是元件身分識別的一部分。 此數值被執行時用來強制執行版本政策,並在執行時的型別解析過程中扮演關鍵角色。
資訊版本,這是一個字串,代表僅供參考之用的其他版本資訊。
組件版本號碼
每個元件都有版本號碼作為其身分識別的一部分。 因此,執行階段會將不同版本號碼的兩個元件視作完全不同的元件。 此版本號碼將以分為四部分的字串格式呈現:
< 主要版本>。<次要版本>。<組建編號>。<校訂>
例如,1.5.1254.0 版會指出 1 做為主要版本、5 做為次要版本、1254 做為組建編號,0 表示修訂編號。
版本號碼會與其他身分識別資訊一起儲存在元件指令清單中,包括元件名稱和公鑰,以及與應用程式連線之其他元件的關聯性和身分識別資訊。
建置元件時,開發工具會記錄元件指令清單中所參考之每個元件的相依性資訊。 運行時間會使用這些版本號碼,搭配系統管理員、應用程式或發行者所設定的組態資訊來載入參考元件的適當版本。
執行階段會區分一般和強名稱組件,以便進行版本控制。 版本檢查僅在具強名稱的元件中進行。
如需指定版本系結原則的詳細資訊,請參閱 設定應用程式。 如需運行時間如何使用版本資訊來尋找特定元件的資訊,請參閱 運行時間如何找出元件。
元件資訊版本
資訊版本是一串字串,僅用於資訊目的將額外版本資訊附加於組件上;這些資訊在執行時不會被使用。 以文字為基礎的資訊版本會對應至產品的行銷文獻、包裝或產品名稱,並不會在執行時期內使用。 例如,資訊版本可以是「Common Language Runtime 1.0 版」或「NET Control SP 2」。 Microsoft Windows 中檔案屬性對話方塊的 [版本] 索引標籤上,此資訊會出現在專案「產品版本」中。
備註
雖然您可以指定任何文字,但如果字串不是元件版本號碼所使用的格式,或是該字串為該格式,但包含通配符,則會在編譯時顯示警告訊息。 這個警告是無害的。
參考版本是使用自定義屬性 System.Reflection.AssemblyInformationalVersionAttribute來表示。 如需資訊版本屬性的詳細資訊,請參閱 設定元件屬性。
另請參閱
- 執行階段如何尋找元件
- 設定應用程式
- 設定元件屬性
- .NET 中的 組件