VS2008 ACtivex 制作CAB带 Vcredist_x86.exe 方案
自己寫的 OCX或 ACTIVEX需要注冊,如果是VS05或VS08開發的,還需要安裝相應 的發行包才行
比如;08就需要安裝 vcredist08.exe(08); 這個在微軟上找或自己的VS安裝包中也可以找到
來說說關鍵的要點;用CAB
需要把我們的開發的OCX和相關DLL打到CAB,同時還要確保客戶機上安裝 vcredist.exe否則,即使控件安裝上了也使用不了的
CAB工具下載http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/cabsdk.exe
下載后解壓到C:\CAB, 然后進CMD, 切換當前路徑為 c:\CAB ,操作見下吧
1, cabarc.exe -s 6144 N X.CAB X.ocx X.inf A.dll
意思是: -s 設置大小,6144表示64K, 這個不管它吧
N 表示要創建一個CAB包;
X.CAB 就是生成 的CAB包文件名了
X.OCX即我們的開發的控件文件名了,
X.inf 就是CAB的安裝內容,這個有麻煩,放后面說它
A.dll就是我們的控件需要用到的DLL文件,如果有其它的還需要也加在,在后面加空格
一 一加上吧;
2、X.inf 內容
;//下面這三行,照抄就行,主要是版本信息,非特殊不要更改,直接照寫就行
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
;//這就是要安裝的文件了,包括控件和相關文件
[Add.Code]
X.OCX = X.OCX
A.DLL = A.DLL
;//上面兩個是控件所用的
;//下面這行是另外增加的,主要是安裝VC發行包(vcredist_x86.exe就是發行包的安裝名,見后)
vcredist_x86.exe=vcredist_x86.exe
[X.OCX]
;//指定O.ocx 是從CAB包里獲取
file-win32-x86=thiscab
;//x.ocx 的CLASSID信息
clsid={1D73A88F-8621-498F-B7CD-F6485620F3AA}
;//x.ocx文件版本; (就是文件屬性里面那個文件版本號)
FileVersion=1,0,0,1
;//是否為自動注冊,一般都是需要注冊的喲
RegisterServer=yes
[A.DLL]
file-win32-x86=thiscab
;同上了,也可加上版信息
;//
FileVersion = 1,1,1,1
;//這里注意了,發行包安裝的信息
[vcredist_x86.exe]
fileVersion=9,0,30729,17
hook=InstallerHook
;//這項并沒有設置file-win32-x86的值,因為它并不在CAB里面,這里設置了一HOOK,讓HOOK
;//來處理
//發行包的安裝來源
[InstallerHook]
;//這里安裝默認是在同X.CAB的目錄,如果是在網站,可以更改為URL路徑
;//如:http://www.x.com/vcredist.cab
file-win32-x86=VCredist.CAB
;//這里就是讓CAB自動解壓過后,運行CAB包里面的 vcredist_x86.exe
run=%EXTRACT_DIR%\vcredist_x86.exe
配置完畢
這里需要兩個CAB,一個是我們的控件 X.cab 另一個是發行包的 VCRedist.CAB 里面只有一個文件 vcredist_x86.cab
( cabarc.exe N VCRedist.cab vcredist_x86.exe ) 運行此命令需設置全路徑或切換vcredist_x86.exe所在目錄再運行命令
好了,在網頁里面,設置控件的 codebase="X.CAB" 安裝時會自動下載 vcredist.cab并且安裝,但這個是有界面操作的,就是安裝的時候需要用戶點下一步什么的,并不是安靜安裝模式。。
另參見MSDN:http://msdn.microsoft.com/en-us/library/aa751974%28VS.85%29.aspx#cabdl
微軟的CAB包制作方法:
http://msdn.microsoft.com/en-us/library/aa751974%28VS.85%29.aspx#cabdl
轉載于:https://www.cnblogs.com/memaxiaofeng/archive/2013/04/02/3275498.html
總結
以上是生活随笔為你收集整理的VS2008 ACtivex 制作CAB带 Vcredist_x86.exe 方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编程初学者的良言警句_程序员
- 下一篇: 阿里HR有多敬业,Python程序员:恐