vs怎么自动打包程序和它所依赖的dll?

s724mri 2020-04-27 11:23:55
第一次发帖求教哈,自己不是伸手党,真的研究了好久没研究出来,才问一下有没有大佬知道

自己最近写了个程序调用了三个库qt itk vtk现在要想把程序打包成安装文件,这样在任何win平台的电脑上都能运行,可是遇到了一个很烦躁的问题,就是无法自动打包程序所依赖的dll。
我vs 2017下载了vs的拓展installer projects package,使用中出现报错未能正确加载之类(关于这个错误搜索过解决方案试过删除缓存文件夹或者用devenev /setup两个方法都不奏效),无视弹窗虽然可以打包生成安装程序,不过却只能包含可执行文件exe,刷新所依赖项也不能显示所需的dll,但是诡异的是,有时候重新打开vs则可以正确显示所依赖的dll,三个库的dll都显示出来,但是一刷新或者点击生成则又消失了...

我又安装了最新版本的vs 2019,用cmake写好工程文件重新编译成2019的环境,程序还是可以跑,重复上述打包操作,同样问题出现,无法打包dll文件,但是2019版本里使用installer projects package插件不报错,但是问题还是存在

我知道可以手动一个个把dll放进去,但是觉得这个方法不够快捷,qt自带的那个windgetqt那个程序好用,但是只能导入qt自己的dll,像我这种多种库一起用的就还会显得麻烦

全网找不到解决方案..特此求教

...全文
4414 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_39390491 2022-02-22
  • 打赏
  • 举报
回复

遇到和你一样的问题,我知道的一个办法就是在别的设备上再去添加系统环境变量。在项目本身中用代码修改环境变量都没有用

  • 打赏
  • 举报
回复
你可以用微软的工具depends.exe,或者codegear/embarcadero的工具tdump.exe/tdump64.exe检查exe的dll依赖,麻烦一点的是某个dll还可能依赖其他dll,所以要逐一查看
s724mri 2020-09-19
  • 打赏
  • 举报
回复
引用 3 楼 早打大打打核战争 的回复:
Qt有一个工具windeployqt可以复制可重发布的dlls
是的,但是qt以外的dll他就无法检测到了
  • 打赏
  • 举报
回复
Qt有一个工具windeployqt可以复制可重发布的dlls
s724mri 2020-04-29
  • 打赏
  • 举报
回复
引用 1 楼 早打大打打核战争 的回复:
用innosetup试试
innosetup也不能分析exe文件所需的dll呀..
  • 打赏
  • 举报
回复
用innosetup试试

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧