最近用VS2010+QT做了一个小软件,为了把它打包发布,查了很多资料,现在总结下,便于以后查看。

本方法不限于VS2010,也不限于QT,只要你运行你的代码得到exe之后,都可以参照本方法进行。

参考了很多链接一的方法,向其致谢。但是,其不够全面,有些设置也有遗漏,本文作为对其的一个补充。

步骤一:设置可执行文件图标(限于VS2010,其他平台如VC或者JAVA,我没有试过,若只需使用系统默认图标,可直接看步骤二)

1.  找一个ico文件做为图标,例如 mylogo .ico

2.  新建一个文件 mylogo.rc, 里面写上

  1. IDI_ICON1               ICON    DISCARDABLE     "mylogo.ico"

3. 将以上两个文件都放到工程目录下

4. 在VS里的右击工程名,点击添加将mylogo.rc添加进去

5. 右击mylogo.rc,编译

6. 运行你的程序,现在,在你的DEBUG(或者RELEASE,我这里以DEBUG为例,下同,DLL文件根据DEBUG或者RELEASE选择名字里是否带d的)下就可以看到生成的带图标的EXE了。

步骤二:添加依赖DLL,使得在别人电脑上能运行

1. 在桌面新建一个文件夹packet,用来存放所有你需要打包的东西,将之前的EXE文件放进去

2. 因为是VS2010程序,所以要添加VS2010运行时,在VS安装目录

D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\redist

里找到 msvcp100d.dll     msvcr100d.dll 放进packet文件夹里(注意,如果是RELEASE,就找.dll前面没有d的,下同,不再重复)

3. 下载软件ProcessExplorer, 用于查看依赖dll ,运行你的EXE,查看(查看方式见链接一)

4. 将所有找到的dll都添加进packet文件夹

5. 现在,只需将packet文件夹整个拷给别的电脑上,就能直接运行了,如果你的要求只是让程序能在别人电脑上运行,到此就可以了。如果还要打包成安装包,继续步骤三。

步骤三:打包

1. 下载安装软件NSIS 以及插件VNISEdit

2. 运行VNISEdit, 点击工具栏的NSIS->配置

把编译器路径设置为你的NSIS路径下的 makensis.exe

把帮助设置为你的NSIS路径下的NSIS.chm

确定退出

3. 点击工具栏 文件->新建脚本:向导

4. 这一步,可以选择一个你的ico文件作为安装包的图标,程序语言选择simpleChinese,压缩算法我选的是zlib

5. 这一步时若没有授权文件直接删除里面的内容

6.  这一步,删除中间的两条内容,用那个树状图标(addDirTree) 选择步骤二中的packet文件夹,勾选下面的两个选项

7. 这一步,如果你有多个EXE,注意选择“程序”为你的主程序

8. 下一步直到完成,也可设置卸载程序的图标,不再赘述

9. 在VNISEdit里的工具栏 NSIS->编译脚本,等一段时间后,桌面上就有打包好的安装程序啦。

链接一:
沙漠里de烟雨__原创人生

http://zhouzhenren163.blog.163.com/blog/static/65499281201431535924246/

vs2012应用程序的打包和图标设置的更多相关文章

  1. vs.net应用程序图标以及制作安装程序快捷方式图标设置

           我们通常在开发软件完毕后需要打包制作安装程序,这个时侯一般都会需要设置应用程序的图标,使用默认的图标一般都比较难看,那么我们应该怎样设置自定义的图标呢? 我现在要讲的图标设置有两种情况, ...

  2. 在vs2017和vs2019下发布应用之Windows程序打包-附图标修改和默认安装路径定义全教程

    title: 在vs2017和vs2019下发布应用之Windows程序打包-附图标修改和默认安装路径定义全教程 date: 2020-04-25 sidebarDepth: 2 tags: wind ...

  3. VB.net 2010下关联与程序图标设置

    '*************************************************************************'**模 块 名:VB.net 2010下关联与程序 ...

  4. Qt应用程序图标设置

    Qt应用程序图标设置 本文仅仅适用于windows下,linux等不适用. 下面说的图标,指的是程序文件的图标,而不是托盘图标或者说运行时任务栏的图标(任务栏和程序窗口的图标在windows/linu ...

  5. ios 应用程序图标、启动画面、itune图标设置

    http://blog.sina.com.cn/s/blog_4cd8dd1301014hfz.html 先说说应用程序图标,一般有下面几种: Icon.png(57x57) - Homescreen ...

  6. Expo大作战(十八)--expo如何发布成独立应用程序,打包成apk或者ipa,发布到对应应用商店

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  7. Windows程序的打包,部署(vs项目打包vs2013)---ShinePans

    Windows 应用程序在开发完毕之后,怎样将程序打包并制作成安装程序在客户机上部署 是每一个windows应用程序开发完毕之后都必须面对的问题. 学习目标:                    部 ...

  8. 为应用程序的选项卡及ActionBar设置样式

    示例文件  flex-mobile-dev-tips-tricks-pt2.zip 关于Flex移动开发的提示和技巧有一系列文章,这是其中的第二部分.第一部分集中讲解如何在视图切换及应用程序操作切换之 ...

  9. 在windows平台下electron-builder实现前端程序的打包与自动更新

    由于8月份上旬公司开发一款桌面应用程序,在前端开发程序打包更新时遇到一些困扰多日的问题,采用electron-builder最终还是得到解决~ 以下是踩坑的过程及对electron打包与更新思路的梳理 ...

随机推荐

  1. JAXP使用Stax API时格式化输出XML

    最近项目中需要生成XBRL instance,对于XML读写和验证进行了一些学习.由于Stax API不支持格式化输出,默认全都写在一行上,网上也没有搜到现成的东西,自己写了一个格式化输出的帮助类. ...

  2. java小知识点 2015/10/6

    java中length,length(),size()区别: 1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度 2 java中的length()方法是针对字 ...

  3. CF1109B Sasha and One More Name

    CF1109B Sasha and One More Name 构造类题目.仔细看样例解释能发现点东西? 结论:答案只可能是 \(Impossible,1,2\) . \(Impossible:\) ...

  4. LOJ2500 NOIP2014 飞扬的小鸟 【背包DP】*

    LOJ2500 NOIP2014 飞扬的小鸟 LINK 题目大意就是说有n个柱子,在每一秒你可以选择不点下降高度y和点p次上升x∗p,若果当前位置加上x∗p大于上界m,就会停在m. 如果可以成功穿越所 ...

  5. 关于rs编码的理解

    1,rs编码首先是线性循环编码,所谓线性循环编码就是说编码后的码组T(x)左移或右移都必然还是有限组码组中的一组,并且T(X)码组能够被g(x)整除,g(x)为生成多项式. 2,由信息码m(x)得到T ...

  6. cmd连接mysql操作命令

    连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登 ...

  7. BZOJ4145 [AMPPZ2014]The Prices

    题意 你要购买m种物品各一件,一共有n家商店,你到第i家商店的路费为d[i],在第i家商店购买第j种物品的费用为c[i][j],求最小总费用. \(n \leq 100,m \leq 16\) 分析 ...

  8. C# 导出图片到Word (通过XML实现)

    private void ExportDataToWord(string content) { StringBuilder sbMain = new StringBuilder(); #region ...

  9. PHP实现的多文件上传类及用法示例

    这篇文章主要介绍了PHP实现的多文件上传类及用法,详细分析了php实现的多文件上传类与具体的使用技巧,需要的朋友可以参考下 1.upFiles.css.php 文件 <?php class Up ...

  10. Java变量类型之间的转换

    int i; String s="134"; 1)String转换成int i=Integer.parseInt(s); 2)int转换成String(其他类型转String,都可 ...