什麼是vs 程式的manifest檔案
manifest 是vs程式用來標明所依賴的side-by-side組建,如atl, crt等的清單。
為什麼要有manifest檔案
一台pc上,用一組建往往會有不止乙個版本號(c:/windows/winsxs或系統資料夾下),程式在載入的時候,不知載入哪個,於是manifest檔案來指明。
manifest在哪兒,怎樣建立。
假設用vs開發,能夠set通過porperty->configuration properties->linker->manifest file->generate manifest to yes來自己主動建立manifest來指定系統的和crt的assembly版本號。
除了這樣產生外部的manifest file,還有embedded manifest資訊能夠被寫到所生成的二進位制檔案內
set porperty->configuration properties->manifest tool->embed manifest to yes
對於xp及早前的windows版本號,external manifest會比embed manifest有更高的優先順序,但對於windows server及後的版本號,相反。
為什麼我的manifest明明指明
name="microsoft.vc80.debugcrt" version="8.0.50608.0",
可是用depends.exe工具卻發現引用的是8.00.50727.42呢?
由於在c:/windows/winsxs/policies下,有publisher configuration file也叫policy檔案,如8.0.50727.42.policy檔案對依賴做了重定向:
怎樣決定我程式manifest資訊所指定的assembly版本號資訊?
在assembly標頭檔案裡,assembly的版本號資訊被指明了。如crtassem.h中
#ifndef _crt_assembly_version
#define _crt_assembly_version "8.0.50608.0"
#endif
能夠改動8.0.50608.0為8.0.50727.42以產生你想要的manifest資訊。
帶上全部依賴的assembly和對應的manifest檔案(c:/windows/winsxs),注意,manifest資訊要直接能夠指定到所附帶的assembly dlls,不須要依賴policy的重定向。
一分鐘sed入門(一分鐘系列)
1.簡介 sed是一種行編輯器,它一次處理一行內容。2.sed呼叫方式 sed options command file s sed options f scriptfile file s 第一種直接在命令列中執行,第二種把命令寫到了指令碼中,二者無本質區別。示例 1 列印hello.txt的內容 ...
一分鐘看懂mysql 一分鐘,看懂易貨
從20世紀80年代開始,易貨公司在美國加拿大 澳大利亞等國興起,成為這些國家減少現金用量 增加銷售 減少庫存 開發新客戶 開闢新市場 促進經濟發展的重要產業。也成為了企業消化庫存商品 剩餘生產能力 無形資產的有效方式和在遭遇資金瓶頸時的新選擇。2015年以來,中國線下易貨店開始了矇眼狂奔,在河南南陽...
一分鐘管理
有效而優秀管理者的 三板斧 一分鐘管理 你和下屬一起設定 一分鐘目標 確保他們知道自己應該做什麼,以及好的工作表現是什麼樣的。之後,你會努力發現他們做對了什麼事,好對他們進行 一分鐘稱讚 最後,如果你們完全有能力做好某件事,卻沒能做好,你就對他們進行 一分鐘批評 一分鐘目標 1.擬定3 5 個目標,...