您的位置:首页 > 数据库 > Redis

VS2008/VS2012/MFC/C++/ACCESS/Redistributable Package/installshield/打包/安装/部署

2015-06-13 16:36 330 查看
之所以要把标题写成这样,是为了这篇文章被检索的概率增加。方便碰到类似问题的网友,马上得到解决办法。

 

问题:

时间:2015年6月13日

开发环境:Win7+ VS2012

项目需求:基于ACCESS数据库的一个信息收集、存储和报警系统

 

本项目从去年年底开始,客户要求发行版软件要能够兼容XP和 Win7系统,当时我没有太在意,因为自己的电脑安装的是Win7,了解了下朋友们大都在用VS2012,所以就选择了2012版本。但是我给自己的要求是,考虑到系统内有串口编程,就尽量用MFC,越接近底层的语言,如果后期出现BUG就更好调试。因为用了一些高级语言,串口确实有现成的类直接调用,但是万一出了问题,或者不满足需求,修改的弹性空间就不够。当然之所以这样想,也确实因为没有windows下的编程经验。而且MFC在安装部署的时候,不需要携带大量的支持包,这样软件就可以做到更小。唯一的缺点是,MFC的UI很不好做!!!

 

今天开年后开始找新工作,然后上班,挺忙的,平时只能抽时间去完成去年未完成的功能。直到5月中旬才把功能写完,当然实际上还没有完全结束,线程池的关闭和发送中文短信,还没有做进去。

 

客户要求发软件给他试用,于是我先打包了一个win7版本。由于VS2012已经不内置InstallShield打包工具了,而是要另外下载安装,打包工具很多,但是我还是选择了安装InstallShield,大众化嘛。但是这个东东是要付费的,可以免费申请一个LimitedEdition版本,只是功能没那么多,对于我这个项目已经够了,在这里其实折腾了很久,因为一直在参考网上的方法去破解专业版InstallShield,但是一直破解不了,迫不得已用LimitedEdition,而且申请的时候还要翻墙(他的网页里面有谷歌的链接),于是只能通过国内的代理帮忙申请序列号。

 

于是用InstallShield2013 Limited Edition 发行了一个Win7版本,客户说,那边的机子大部分是XP,让我先再弄个XP版本。于是在研究VS2012下如何发行XP版本的软件,也就是产生了前面转载的那些文章。主要重点就是,VisualStudio 2012 - Windows XP (v110_xp)、静态库、多字节、多线程(/MT)——运行时库,又折腾了很久,安装他们帖子里面的都做了,放到XP上跑就是有感叹号警告,起不来。不管你是静态编译,不加依赖包,或者动态编译加上依赖包,都不顶用,愁死了。

 

最后还是想了想,往后跳一个VS版本试试,就开始弄VS2008。刚开始在Win7里面安装VS2008,然后打包扔到XP虚拟机(感谢有虚拟机这个东西)里面去跑,还是跑不起来,妈蛋,鸡巴都要碎了!任凭我装了VS2008SP1CHSX1512981更新包之后,还是没有反应。

 

最后的最后,出利器!我开两个XP虚拟机,一个安装VS2008(注意有的XP版本装VS2008可能又要费点儿劲儿),另外一个做实验用。按照静态库、多字节、多线程(/MT)——运行时库 的方式,编译然后打包(VS2008方便之处是自带打包插件,当然静态库打包的时候实际上不需要依赖包),扔到另外一个XP中跑,终于跑起来了,我都要哭了,太艰难了!!!

 

打包这个软件比我写这个软件还痛苦!!!注意用来做实验的那个虚拟机最好做一个快照,而且那个XP最好是刚刚安装好之后就用来做实验,不要安装任何软件,干干净净,最能证明你做的软件对别的库的依赖性更低。出了问题,直接恢复快照,很便捷。

 

然后我又回去做了几个实验,VS2012+ InstallShield + VS2012 Redistributable Package打包出来的软件还是跑不起来。而且从微软官方最新下载的补丁包里面的VS2012Redistributable Package根本就不支持XP系统,然后从CSDN上下载了一个老一点的(链接:http://pan.baidu.com/s/1sjQHwtv密码:1wba),才正确安装(也就是兼容XP),最后也还是跑不起来。

 

所以综上所述:

1. 微软已经全面抛弃了XP系统,用上述这样的方法来增加开发XP系统应用的障碍,让你真的不想再用XP系统了。

2. 开发XP的应用一定还是在XP + VS2008/2005这样的环境下去做。

 

PS: 这个帖子只是我的实验结果,到底事实是不是这样,我不知道,仍需验证,如果各位网友刚好碰到这个问题,并且有新的结果,请告知!

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息