用Windows組件庫文件快速部署Visual C++
原創毫無疑問,與 Windows 一起發布的控制庫是使用最為廣泛的組件庫。當如此廣泛的使用遇到 Windows 超長的發布時間跨度時,讓 Windows 控制庫的兼容問題變得非常難以解決。雷蒙德•陳在 MSDN 博客中為 Windows 控制兼容及其面對的挑戰提供了一些背景信息,及其相關的說明文件及其同類技術并行執行(SxS)的開發。
SxS 執行部署的原則是,一旦開發的應用程序針對某個特定版本的 Windows 常用控件進行測試之后,該應用程序在其這一版本中必須繼續使用相同版本的 Windows 常用控件。共享庫從一個版本到下一個版本發生的變化,無論是內部還是微不足道,這種變化都極有可能引起某些應用程序的損壞。聲明性的 XML 機制,既說明(manifest)文件,可以讓應用程序指定所用的采用控件版本,而不是強制每個應用程序都用 API 來請求常用控件版本。
說明文件可以是一個簡單的帶有應用程序名稱和.manifest 文件擴展名的 XML 文件,該文件與可執行文件位于同一目錄,或者也可以作為資源嵌入到應用程序中。說明文件中所含的依賴性信息非常簡單,本質上來看,是一列具有版本信息的依賴執行信息。比如 Version 6 的 Windows Common Controls 的使用請求,其說明文件非常簡單,具體如下:
Visual C++ 2010 的構建和鏈接過程中可生產說明文件。下圖中演示了 Visual C++ 項目中說明設置提供的各種屬性頁面。該工具中提供的大多數選項對應的命令行參數可傳遞至 Manifest SDK 工具(mt.exe),該工具作為 Windows SDK 的一部分一起發布。除了支持傳統的與 SxS 設置相關的說明文件選項,還支持用于管理執行和本地 SxS 執行本身的說明文件的生成。
Visual C++ 項目 Manifest 屬性