Internet 軟件分發單位是“軟件包”,它由包含.INF文件或軟件分發.OSD文件(或兩者都包括)的.CAB文件所組成。
一個分發單位也可以包含軟件組件,
如 ActiveX 控件(.OCX)、.DLL文件、.EXE文件、Java類文件或小程序。當Web頁上OBJECT元素的CODEBASE特性引用包含.INF文件的.
CAB文件時,Internet Explorer將自動把.CAB文件作爲軟件分發單位下載並安裝,每次訪問時還會自動檢測版本並進行更新。
INF文件是一個文本文件,指定運行控件所需要下載或者呈交的文件(比如.DLL或者其它.OCX)。一個.INF文件就捆綁了.
CAB壓縮文件所有的必須文件。 缺省情況下,與現有硬盤中文件版本號相同的文件不被下載。
先自己寫了一個inf文件,其中信息包括將.ocx文件,以及相關的.dll文件打包,並下載到文件夾:\WINDOWS\system32,詳細標註如下:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
pcpos.ocx=pcpos.ocx
Comm.dll=comm.dll
[pcpos.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={719A1D6E-7099-4123-9D63-F0118AFF2D61}
DestDir=11
FileVersion=1,0,0,1
[Comm.dll]
file-win32-x86=thiscab
RegisterServer=yes
DestDir=11
FileVersion=1,0,0,1
[RegisterFiles]
%11%\pcpos.ocx
註釋:
"thiscab" 是一個關鍵字,意指包含該INF的CAB文件。也可以從網上下載所需要的DLL文件,只要指定一個HTTP 網址即可,如:
file-win32-x86=http://www.mysite.com/mydir/NEEDED.DLL
關鍵字"file-win32-x86" 指定平臺是 x86。
文件版本號可見屬性。
"DestDir"指的是裝載目錄或者文件的地址: 11 指定爲系統目錄 WINDOWS/ /SYSTEM32;
"clsid" 指的是要安裝控件的CLSID。
製作cab:
使用\WINDOWS\system32\iexpress.exe。
1) 選擇“Create new Self Extraction Directive file”,點擊下一步。
2) 選擇“Create compressed files only(ActiveX Installs)”,點擊下一步。
3) 點擊Add,文件添加(pcpos.ocx,pcpos.dll,comm.dll,tcpclnt.dll),點擊下一步。
4) 點擊Browse,輸入.CAB文件的存放地址(包含所取文件名),這裏取TestCAB.CAB,並且要選中 “Store files using Long File Name inside Package”。點擊下一步。
5) 選擇“Don’t save”,一直點擊下一步,直到完成。
注意:
如果控件已經在客戶機註冊,並且不是通過.CAB的方式註冊,那麼通過.CAB自動註冊的時候,該控件將無法被更新。必須先手動刪除該文件。
2. 對文件進行數字簽名 Signcode.exe ---文件簽名工具
http://msdn.microsoft.com/zh-cn/library/9sh96ycy(v=vs.80).aspx
列舉了微軟 .NET Framework 2 命令行工具