=
1
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4a64a824f7468b404faa8abc80f02128.png)
2.
如果是第一次打包的话,需要下载Installshield,按需下载,第二次打开就是我这样了
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/911fb55f169f0f04c0271ac7eb74ad53.png)
3.![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/022f10d07bdbb93deef32219c6c233ce.png)
4.修改图中箭头的地方,其他看你需求修改
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/438bf2bbb09bfae7b07fe47f5850ac78.png)
5.因为teamtalk要用到.net4.5
6.重点!!!
首先点击addfolders将/bin目录下的data目录,Release目录和gui目录逐个添加进来,然后点击addFiles添加/bin目录下的chinese.ini,添加完成后如图所示。
7.在菜单栏里添加应用、添加桌面快捷方式
8.重点!!将.net4.5环境一起打包进去!!双击Redistritables,找到箭头2,第一次需要下载,下载完后面就变成installed locally
然后右键所打钩的环境,Properties,修改为如图所示,然后点击应用,确定
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b2924f0da4ee9634c3b6487b297d7b9f.png)
9.按图中数字步骤执行
10.然后右键setup1,重新生成就ok了,exe文件目录如下,双击就可以安装啦
补充:
当你安装完后运行时出现以下3个错误时,
是因为缺少文件。在你主机里找到这三个文件,然后重复第六步,将这三个文件添加到Release文件夹下,然后再重新生成就ok了。
回到项目配置,如下图:
我们看到,运行库这一项,包含4种选择。
废话不多说,我们简单粗暴干脆每一种都生成一个进行比较:
四种版本,分别起了对应的名称,多线程(MT),多线程DLL(MD),多线程调试(MTd),多线程调试DLL(MDd)。利用 Stud_PE 观察比较它们的 函数导入表 ,发现:
- 多线程DLL (MD)和 多线程调试DLL (MDd)两者都导入了2个MSVCxxxx.dll (黄箭头所指),但细看又不同,调试版本(MDd)导入的是MSVCP120D.dll和MSVCR120D.dll,比非调试(MD)的那个都多一个字母D。很明显这是配套给调试版的运行时库。而我们之前安装的发行包所部署的都是不带D的版本,是给Release版的程序配套使用的。
顺便一提MSVCP代表MicroSoft Visual C++(Plus) ,MSVCR则代表MicroSoft Visual C(没有+)Runtime。 一个是C++运行时库一个是C运行时库。 - 多线程(MT) 与 多线程调试(MTd)貌似一样,都没有MSVCP和MSVCR函数导入,只有Kernel32.dll。同时观察这两个文件的体积,都比MD或MDd大了很多,这正是它们不需要导入运行时库DLL函数的原因,因为它们把运行时库静态编译到自己的文件中去了。这也代表着它们运行的时候不会再依赖外部的运行时库DLL文件。
想要你的exe独立运行在XP中:
1.将平台工具集选择为"Visual Studio 2013 - Windows XP (v120_xp)"。
2.将运行库选择为 【多线程 /MT 】或【多线程调试 /MTd】。
3.当然如果使用了MFC,同理的要设置【在静态库中使用MFC】