windows VS2015 Steup 打包发布软件并附带动态链接库dll

news2024/11/18 17:26:28

打包: 

方法一:VS 2015 Steup 打包发布软件_柠檬野生菌的博客-CSDN博客_vs2015 exe发布

 1、插件下载
Microsoft Visual Studio 2015 Installer Projects

工具->扩展与更新->联机->搜索 Installer Projects

2、安装
关掉VS 双击下载好的 .exe 安装
3、打开VS新建Steup Project项目
注意项目名称 需要跟你打包的软件名字一致,出来的安装包名称才是一样的(我这里是测试所以就不改名字了)

因为 我的项目是用Qt写的没有”添加到解决方法案“的选项

在这里插入图片描述
新建好项目之后出现出现三个目录

        1、应用主目录 放需要打包的的.exe所依赖的.dll
        2、用户桌面 放程序启动快捷方式
        3、用户程序菜单 (就是开始菜单旁边的程序菜单)主要放一个启动和卸载快捷方式

在这里插入图片描述

特别说明:

        因为被打包程序不是vs解决方案所以 网上“添加项目输出->主输出”的方法对当前不适用
        所以看到“添加项目输出组”为空也不用担心

4、添加程序以及依赖项

在这里插入图片描述
将程序.exe和.dll以及其它程序依赖项添加到这个目录下 【 右键 Application Folder->Add->文件】
如果是Qt项目 请务必先先使用 windeployqt xxx.exe 打包程序(就是将dll以及依赖项添加到exe目录)
依赖项如果存在多文件夹的情况 请通过【右键 Application Folder->Add->Folder】新建文件夹并取相同名称 再在此文件夹下添加原文件

 在这里插入图片描述

添加完成

在这里插入图片描述

5、添加卸载程序以及快捷方式
在Application Folder下添加 C:Windows\System32\Msiexec.exe 可以右键重命名为uninstaller.exe
然后右键 uninstaller.exe 创建快捷方式
右键 .exe 创建快捷方式 可以直接通过拖动的方式移动到 User‘s Programs Menu下
这里看个人需求添加 作者这里将.exe的快捷方式t添加到 Desktop exe和uninstall.exe 添加到Menu

在这里插入图片描述卸载程序的快捷方式的 Arguments参数需要添加项目的ProductCode
注意Arguments参数填写的时候 /x+空格+ProductCode 注意/x后面跟空格再跟ProductCode`

在这里插入图片描述

在这里插入图片描述
6、编译生成
在项目右键重新生成 编译完成可以在生成目录下看到一个 .exe和.msi

 在这里插入图片描述

自行安装测试

方法二:nsis安装包(五)_手把手教NIS Edit安装向导的使用_signjing的博客-CSDN博客

需求的软件环境:

NSIS 2.46

HM NIS Edit 2.03

1 安装完上述两款软件后启动HM NIS Edit,如图:

 2 点击“文件”-“新建脚本:向导”,如图:

 3 弹出向导欢迎界面,点击“下一步”:

 4 可以自定义应用程序名称,版本,出版人,网站等信息,点击“下一步”:

 5 安装程序语言取消选择“English”,选择“SimpChinese”,点击“下一步”:

 6 设置授权文件的路径,点击“下一步”:

 向导中默认的许可文件路径为“c:\path\to\licence\YourSoftwareLicence.txt”,但事实上这个路径并不存在,因此设置授权文件的路径,但要确保路径是存在的。为此,在C:\util\nsis_exam\目录下创建了协议许可.rtf文件。

 此次是为了演示安装向导的使用,因此不必深究.rtf中文件的内容,只需创建它,用office word编辑它,随意保存些文本即可,如:

7 应用程序列表中有默认的两个文件,实际制作安装包时,这两个文件往往不是我们需求的文件:

 选中它们,利用“删除文件”按钮将其移除:

  

 然后点击“添加目录树”按钮:

弹出目录编辑界面,通过浏览文件夹按钮选择目录,如图目录为“C:\Program Files\NSIS”,点击“确定”按钮:

 待文件全部加载到应用程序文件列表,如图,点击下一步:

 8 确认下应用程序的图标信息,点击下一步:

 9 可以指定安装程序完成时要执行的程序文件,点击“下一步”:

 10 可以指定解除安装程序属性,然后点击“下一步”:

 11 勾选“保存脚本”、“转换文件路径到相关路径”,点击“完成”:

 12 提示保存脚本窗口,为脚本命名,如图为“signjing安装示例.nsi”,点击“保存”按钮:

 13 脚本保存后自动回到编辑器主界面:

 14 点击“NSIS”-“编译脚本”以编译脚本:

 15 脚本开始编译,脚本编译时,可以通过日志窗格看到编译进程:

 16 编译完成,在日志窗格会显示类似的信息:

 17 在脚本的同目录下可以看到安装包Setup.exe已产生:

 到此,利用安装向导制作的安装包就完成了,从认识NSIS到能做出安装包,这无疑是一个重大的改变,但我们的追求不能仅停留在这个层面,下一次将针对本次产生的脚本进行修改以实现一些安装包个性化的效果。
 

附带动态链接库dll:

方法:vs如何发布exe并附带动态链接库dll_豪哥哥豪哥哥的博客-CSDN博客_vs 生成exe 附带dll

我们在学习的时候经常编一些自己写的程序,在 自己的电脑上我们肯定是 可以运行的。
但是有时候在别人的电脑上,我们就会发现,有些程序并不能运行。

这是因为你的exe移植到另一台电脑上,没有包含程序所需要的动态链接库(dll),因此程序不能运行。

下面教大家使用vs如何发布exe并附带动态链接库dll
拿我自己的程序做例子

1.点击vs——工具——命令行——开发者PowerShell

在这里插入图片描述 

2.弹出一个界面,此时已经我们处于双人俄罗斯方块.sln文件所在的位置。

在这里插入图片描述
3.根据自己程序的发布情况,找到发布的exe所在的文件夹
(我这里是x64的debug模式发布的)

在这里插入图片描述

 我这里是x64的debug模式发布的。因此应该寻找x64文件夹

在这里插入图片描述


寻找debug文件夹(如果发布模式是release,那就要寻找release文件夹)

在这里插入图片描述
找到我的双人俄罗斯方块.exe了

 在这里插入图片描述

 

4.在弹出的页面中,用命令行切换到exe所在的文件夹。
(这步操作不懂的,可以先学习操作系统的文件系统,我简单说一下,改变当前目录就是 “cd + 文件夹名”,没有啥为什么,这就是固定一条指令而已)

在这里插入图片描述
5.然后我们就要开始查询“双人俄罗斯方块.exe”所需要的动态链接库(dll)了。

dumpbin /dependents 你的程序名字.exe


在这里按照我的例子,应该输入
        dumpbin /dependents 双人俄罗斯方块.exe
查询结果如下所示,共有9个dll。

在这里插入图片描述

 

6.我们依次复制每一个dll的名字,进入整个电脑搜索即可,每次找到一条dll,就将其复制出来
(注意! 名字一定要和上面显示的一样,不然就不是同一个dll)
最终将exe文件和dll放在同一个文件夹中,所有的工作就已经完成了。

在这里插入图片描述
7.最终,一个标准exe的发布大概是下面的样子(data是我的游戏素材)

在这里插入图片描述 

 可以使用



 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcGIS基础实验操作100例--实验21按区域修改栅格值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验21 按区域修改栅格值 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

8、多线程

文章目录8、多线程8.1 线程中的进程8.2 进程中的线程8.3 自己的第一个线程8.4 线程的生命周期8.5 线程执行方式(串行和并发)8.6 线程休眠8.7 工作8.8 线程池8.9 同步8.10 wait和sleep8.11 线程安全问题Java零基础极速入门-讲师:海波 失败&…

一文快速上手Swagger

目录 1.什么是Swagger? 2.Swagger的作用? 3.Swagger的使用方法 (1)一般是在Spring Boot项目中进行集成,只需在项目中引入springfox-swagger2和springfox-swagger-ui依赖即可 (2)配置Swaage…

[虚幻引擎][UE][UE5]在UE中画一个线框球,网格连接画球,高阶画球并操控

[虚幻引擎][UE][UE5]在UE中画一个线框球,网格连接画球,高阶画球并操控1.材质法2.绘制调试球体3.网格连接4.高阶画球并操控1.材质法 缺点:是实体的,只能欺骗视觉,实际还是一个实体体积球,往里放东西显示不出…

电磁兼容测试整改

1.1 什么时候需要电磁兼容整改及对策 在设计阶段就应考虑电磁兼容性,将产品生产阶段出现电磁兼容问题可能性减小。最终要通过电磁兼容测试检验其电磁兼容标准的符合性。 由于电磁兼容的复杂性,即使电磁兼容设计问题考虑比较周全,在设计制造…

SpringBoot+AOP+自定义注解,实现日志记录/权限验证

目录自定义注解简介AOP实现日志记录1.导入依赖2.创建自定义注解3.编写切面类4.编写测试接口5.测试AOP实现权限验证1.创建自定义注解2.编写切面类3.编写测试接口:4.测试自定义注解简介 为什么要通过AOP来实现日志记录 在业务处理中,我们经常需要将一些用…

基于springboot家政管理系统

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

Python数据容器--字符串(str)

1、字符串的定义 字符串是字符的容器,一个字符串可以存放任意数量的字符。 如:字符串:“itheima”。 2、字符串的相关操作 2.1 字符串的下标索引取值 从前向后,下标从0开始。从后向前,下标从-1开始。 my_str &quo…

【LeetCode每日一题】——611.有效三角形的个数

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 二分查找 二【题目难度】 中等 三【题目编号】 611.有效三角形的个数 四【题目描述】 给定一…

数据库管理-第五十期 半百(20221230)

数据库管理 2022-12-30第五十期 半百1 半百2 展望3 计划总结第五十期 半百 1 半百 不知不觉,来到了第五十期,自从立了flag以后也几乎保持了一周一篇文章的频率,当然不得不承认,文章质量还是参差不齐的,有好几篇还是挺…

海尔智家:科技引领的目的是让用户生活幸福

随着时代发展,科技从未像今天这样影响着每个人的“幸福感”。因为科技,我们的通讯可以“随时随地”,交通出行可以“咫尺之间”,购物消费可以“跨越国界”......每一项引领科技的诞生,都能让用户的幸福生活更进一步。 …

git远程仓库下载以及上传

一、远程仓库 通常我们并不常亲自建立远程仓库,而是委托给『第三方』。 常见的操作是,先在第三方上创建『远程 Git 文档库』,然后复制(Clone)出一个『本地 Git 文档库』 1、在托管网站上创建远程仓库 常见的代码托管…

CDGA|自然资源数据治理五部曲,实现数据融合关联、共享可用

在自然资源行业,数据治理是自然资源信息化的工作基础,是推进自然资源治理体系和治理能力现代化进程的必经之路。 为积极应对数据治理新要求,着力解决资源分散、质量不齐、关联不高等问题,围绕自然资源治理对象,构建集…

有哪些好用的设备巡检类的软件?

现今许多企业,尤其是制造业,规模日趋机械化、自动化、大型化、高速化和复杂化,对设备巡检工作的要求越加精细。 因此,选择好的设备巡检软件,是设备管理的关键。为企业提供设备巡检的解决方案,确保设备巡检…

2022国内网络安全事件大盘点

转眼又到了年底,回望过去的一年,网络攻击事件依旧层出不穷,尤其以俄乌战争为代表,网络空间俨然已经成了第二战场。再回看国内,网络攻击导致的大规模数据泄露事件不但给企业带来巨额财务和品牌损失,同时随着…

项目实战-----产品经理要做什么?

文章目录写在前面:兴奋地开始干我在AR的第一个彻头彻尾的需求,发现原来产品经理脑袋竟然要转这么多圈,果然是术业有专攻啊~,但是既然要成为一个全栈工程师,我也来挑战一下吧~第一版显示我学的课还有我教的课&#xff0…

数据报告 | 美国民众健康状况和医疗需求研究报告

在美国,自2020年COVID-19流行开始,以数字健康为关键词的医疗领域正在发⽣⾰命性的变化。全球范围发生的疫情,促进了医疗行业的变革与创新。 本研究将从美国医疗费用和民众疾病等方面,对美国民众健康状况和医疗需求进行分析。 |美…

Android Kotlin之Coroutine(协程)详解

协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码。 在 Android 上,协程有助于管理长时间运行的任务,如果管理不当,这些任务可能会阻塞主线程并导致应用无响应。 协程的优点: 轻量 您可以…

【日常系列】LeetCode《22·回溯1》

数据规模->时间复杂度 <10^4 &#x1f62e;(n^2) <10^7:o(nlogn) <10^8:o(n) 10^8<:o(logn),o(1) 内容 lc 112 和 113【剑指 34】 &#xff1a;路径总和 https://leetcode.cn/problems/path-sum/ https://leetcode.cn/problems/path-sum-ii/ 提示1&#xff1a…

一文分析Linux虚拟化KVM-Qemu(概念篇)

说明&#xff1a; KVM版本&#xff1a;5.9.1 QEMU版本&#xff1a;5.0.0 工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 从这篇文章开始&#xff0c;将开始虚拟化的系列研究了&#xff0c;大概会涉及到ARM64虚拟化支持、KVM、QEMU等分析&#xff1b; 虚拟…