qt打包安装程序需要先安装其他驱动或者依赖库的解决方案(Inno Setup)

找了很多资料,查了很久都没有找到解决方案,后来在脚本之家一篇文章发现了解决方法,就解决问题了,

网站原文链接:https://www.jb51.cc/delphi/101877.html

本图文内容来源于网络收集整理提供,作为学习参考使用,版权属于原作者。

后面根据自己的需求更改了下如果下

1、在task段增加

[Tasks]

Name: "install_usb_1"; Description: "Install USB_1 drivers (USB_drivers1 Foundation)"; GroupDescription: "External drivers:";
Name: "install_usb_2"; Description: "Install USB_2 drivers (USB_drivers2 Foundation)"; GroupDescription: "External drivers:";

其中install_usb_1可以根据自己实际命名,Install USB_1 drivers、Install USB_2 drivers为要显示的内容

USB_drivers1 Foundation,USB_drivers2 Foundation也是要显示的内容,得到的效果如下

2、在run段增加

[Run]

Filename: "{app}\driver\USB_drivers1.exe"; StatusMsg: "Installing USB driver (USB_drivers1 Foundation)"; Check: Not IsWin64(); Tasks: install_usb_1; Flags: skipifsilent

Filename: "{app}\driver\USB_drivers2.exe"; StatusMsg: "Installing USB driver (USB_drivers1 Foundation)"; Check: IsWin64(); Tasks: install_usb_2; Flags: skipifsilent

需要注意的是Tasks: install_usb_1、Tasks: install_usb_2中的install_usb_1和install_usb_2必须和上面task命名一致,Check: Not IsWin64();可以不要,这个应该是用来检测系统位数的。

 

 

 

网站原文链接:https://www.jb51.cc/delphi/101877.html

这个网站使用的完整的代码如下,稍微琢磨下就可以更改像我上面的代码

[Tasks]

Name: "install_usb"; Description: "Install USB drivers (IVI Foundation)"; GroupDescription: "External drivers:";

[Run]

Filename: "{app}\driver\IviSharedComponents_2.2.1.exe"; StatusMsg: "Installing USB driver (IVI Foundation)"; Check: Not IsWin64(); Tasks: install_usb; Flags: skipifsilent

Filename: "{app}\driver\IviSharedComponents64_2.2.1.exe"; StatusMsg: "Installing USB driver (IVI Foundation)"; Check: IsWin64(); Tasks: install_usb; Flags: skipifsilent

 

以上是使用Inno Setup安装其他驱动或者依赖库的解决方案,另外我还用另一篇文章写使用Setup Factory安装其他驱动或者依赖库的解决方案,链接如下:https://blog.csdn.net/lxj362343/article/details/105490518

 

另外有其他博客写的添加另一种驱动的相关技术,

链接为:https://blog.csdn.net/chenlu5201314/article/details/54943946

 

使用bat脚本命令的编写一些脚本

https://www.cnblogs.com/xsgame/archive/2013/05/16/3082046.html

(1)Inno Setup调用bat文件.

在 [Files] 段里加上你自己的批处理文件,比如:

Source: "copy.bat"; DestDir: "{app}"; Flags: ignoreversion

在 [Run] 段里加上安装后的运行命令,比如:

Filename: "{app}\copy.bat"; Flags: nowait  

(2)bat脚本命令的编写

需要判断系统是32或64位

@echo off
@title 判断是否需要复制mfc100.dll等

if exist C:\Windows\SysWOW64 (

echo "存在C:\Windows\SysWOW64"

if exist C:\Windows\SysWOW64\mfc100.dll (

echo "C:\Windows\SysWOW64\mfc100.dll已存在" 
)else (
copy mfc100.dll C:\Windows\SysWOW64\mfc100.dll    
)

) else (

if exist C:\Windows\System32\mfc100.dll (

echo "C:\Windows\System32\mfc100.dll已存在" 
)else (
copy mfc100.dll C:\Windows\System32\mfc100.dll    
)

)

本图文内容来源于网络收集整理提供,作为学习参考使用,版权属于原作者。

更多Inno Setup参数请参考官方文档:https://jrsoftware.org/ishelp/

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值