Share via


套用與版本相關的屬性

如果您使用 .NET Framework 1.1 (含) 以後版本,您可以將設計階段屬性 (Attribute) 套用至 Managed 原始程式碼,以適當地啟動註冊在 Windows 登錄中的型別。 本主題描述何時套用 ComCompatibleVersionAttributeTypeLibVersionAttribute 屬性。

產生的 GUID 與固定 GUID 的比較

型別程式庫匯出工具 (Tlbexp.exe) 和使用 /tlb 選項的組件註冊工具 (Regasm.exe),會依據匯出供 COM 使用的組件版本號碼產生類別識別項 (CLSID)。 每一個匯出的新版本組件將包含該組件版本的唯一 CLSID。 當叫用 CoCreateInstance 方法時,COM 應用程式會使用 CLSID 辨識類別。

當新組件版本與之前的版本不相容時,此行為很有用處。 例如,如果從新組件中移除一個或一個以上的型別,舊版和新版就會不相容。

注意事項注意事項

與 CLSID 不同的是,程式設計識別項 (ProgID) 不會隨著每個新組件版本而變更。當您產生不相容的新組件時,應該套用 ProgIdAttribute 屬性來手動變更 ProgID。

然而,許多的組件與較早版本相容,而它們的開發人員卻期望應用程式使用較新的版本。 藉由保留跨多組件版本的相同 CLSID (使用固定 GUID),現有 COM 應用程式可以使用新組件版本的型別,而不需使用舊組件提供的型別,也不需重新編譯。

ComCompatibleVersionAttribute 屬性強制目前組件版本的所有 CLSID 必須與較早版本的 CLSID 相同。 如需套用此屬性的詳細資訊,請參閱 ComCompatibleVersionAttribute 參考文件。

型別程式庫版本

型別程式庫版本號碼包含用來產生型別程式庫的主要和次要組件號碼。 相反地,組件版本號碼則有四個部分。 兩個完全不同的組件版本 (1.0.0.0 和 1.2.500.0) 會自動地產生不同的型別程式庫版本 (1.0 和 1.2);然而,當較接近的增加版本 (1.2.0.0 和 1.2.500.0) 匯出給 COM 使用時,兩者都會產生相同的型別程式庫版本 (1.2)。

TypeLibraryVersionAttribute 屬性讓您可以在 Managed 原始程式碼中明確地指定型別程式庫版本號碼。 如需使用此屬性的詳細資訊,請參閱 TypeLibVersionAttribute 參考文件。

請參閱

概念

COM 應用程式的執行階段初始設定

與版本相關的登錄機碼

設定並存執行的 COM 應用程式

COM 元件和並存執行

其他資源

COM Interop 的並存執行