在用INNO SETUP制作安装脚本时常常遇到DLL没有注册而安装完成后运行程序出现错误的问题
经过一系列的搜索终于找到了解决方案 特此共享
代码如下:
[Files]
Source: "DLL文件所在路径"; DestDir: "{app}"; Flags:ignoreversion regserver
Source: "DLL文件所在路径"; DestDir: "{app}"; Flags:regtypelib
代码解析:
其中Flags:段的regserver参数就是注册
在RUN段就是多余的
ignoreversion 忽略版本
regserver 注册activeX DLl/OCX
regtypelib 注册类型库TLB
restartreplace 如文件在使用重启替换
noregerror 注册失败不显示错误信息
replacesameversion 替换相同版本
uninsnosharedfileprompt 卸载时不出现共享文件提示
sharedfile 设为共享文件
sharedfile 设为共享文件"
例:
你开发了一个xxx.dll,在第一个软件soft.exe使用了此DLL,打包时使用了了共享,初次安装测计数加一
再开发了第二个soft2.exe软件,也是用了这个DLL,那么共享计数就为二。
两个软件都在一台机器上安装了,当卸载其中一个软件时,共享计数减一,因另计数未到0,所以此DLL不会卸载,当再卸载每二个软件,计数已到0,说明系统中已没有任何软件使用此DLL了,卸载程序就会把此DLL卸载掉。