打包exe要比msi复杂,那为什么国内大部分软件都用exe不用msi? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
verfino

打包exe要比msi复杂,那为什么国内大部分软件都用exe不用msi?

  •  
  •   verfino Jul 10, 2013 7847 views
    This topic created in 4674 days ago, the information mentioned may be changed or developed.
    打包exe的过程,里面肯定会调用到msi吧。

    国内几乎所有的安装程序为什么都做成exe而不弄个msi呢? 为了方便流氓?
    24 replies    1970-01-01 08:00:00 +08:00
    ejin
        1
    ejin  
       Jul 10, 2013   1
    问楼主一个问题,为什么要做成安装程序,直接压缩包不是最好么,安装程序本身就是要把软件的各部分都设置好在电脑里。

    事实上exe是一个独立的程序,本身就是安装软件,但是msi不同,msi是应用程序?说白了跟doc xls htm一样。连独立程序都不是,说实话我很不喜欢微软这种,你要使用msi就必须系统有windows install的支持。你要用.net写的软件就必须有个非常大大大的框架,可能.net写个软件职业50K,但是却要去下载个50M的框架来装,关键是,安装还很慢。

    所以我想同样因为这样的原因,大家才不爱msi
    feikaras
        2
    feikaras  
       Jul 10, 2013   1
    谁告诉你所有exe安装程序都调用msi的了?
    exe调用msi只是其中一种。这还只是为了检测安装msi的依赖可往往如果不是windows版本太低,windows安装服务存在问题的话这种方式也修不好我从来就没有修好过这种服务,遇到的话直接重装。
    微软的东西说实话很烂很烂很烂就差一步没法用了。
    momo5269
        3
    momo5269  
       Jul 10, 2013   1
    有很多exe其实就是7z解压 外带注册dll和倒入注册表一些东西而已,全都是命令行可以完成的工作
    有的甚至只有解压和输出快捷方式(含菜单)
    msg7086
        4
    msg7086  
       Jul 10, 2013   1
    因为94年的时候还没有msi
    breeswish
        5
    breeswish  
       Jul 10, 2013 via Android   1
    inno之类的好像不用调用msi……

    最关键是msi经常冒出来各种奇葩问题 什么服务未启动啦,什么版本不对啊,什么找不到旧版卸载程序啊、blabla 这种让人最不爽
    cxe2v
        6
    cxe2v  
       Jul 10, 2013   1
    @momo5269 习惯而已,再说小白用户你还想让它知道去找哪个才是命令行文件?一个exe,双击,完全不用思考才是给消费者用的
    momo5269
        7
    momo5269  
       Jul 10, 2013
    @cxe2v 喂喂 其实我的意思是那些exe其实就是一个自动运行的命令行...我表达不好
    momo5269
        8
    momo5269  
       Jul 10, 2013
    @cxe2v 多了一个词“可以” ,理解就完全不一样了.......
    verfino
        9
    verfino  
    OP
       Jul 10, 2013
    @ejin @feikaras thanks, 这下对两者明白了;

    之前认为一个exe的安装程序必定会调用msi, 是我想错了。

    exe就是exe, 它本来就可以脱离windows install, 而用自己的安装方式去安装它, 只要你是windows。 而msi因为要有windows install而不是那么自由。
    cdfmr
        10
    cdfmr  
       Jul 10, 2013
    msi烂到家,安装过程比蜗牛慢,还有一大堆奇葩问题。想当年,安装一个VS2005的时间,可以重装XP好几遍了。
    Muninn
        11
    Muninn  
       Jul 10, 2013
    貌似是老的xp不支持新的msi吧
    momo5269
        12
    momo5269  
       Jul 10, 2013
    @cxe2v 而且 有好多所谓绿色软件,还有很多解压即用都在里面放了一个bat或者reg 说明里面说让他运行和导入就行了 即便是不怎么懂的 做这些也没啥吧?
    verfino
        13
    verfino  
    OP
       Jul 10, 2013
    @cdfmr @Muninn
    - -我第一次接触计算机的时候, 那时就开始windows vista往windows 7转型了(09年), 再前一点的东西都从来没接触过
    BOYPT
        14
    BOYPT  
       Jul 10, 2013
    也就老掉牙的xp没这没那需要这么折腾而已吧
    cxe2v
        15
    cxe2v  
       Jul 10, 2013
    @momo5269 那种绿色软件我都不用,既然都要导入注册表才能用的了,那能叫绿色啊?
    momo5269
        16
    momo5269  
       Jul 10, 2013
    @cxe2v 我都说了是所谓...而且我是说针对不怎么懂电脑的人来说,和你用不用没关系啊.....
    cxe2v
        17
    cxe2v  
       Jul 10, 2013
    @momo5269 。。。。貌似你火气上来了,这两天雨吓得厉害,消不了气可以出去淋淋,哈哈!
    momo5269
        18
    momo5269  
       Jul 10, 2013
    @cxe2v 解释一下这也叫火气................
    momo5269
        19
    momo5269  
       Jul 10, 2013
    @cxe2v 因为你讨论的是小白用户...结果你说『我都不用』我当然要回答『和你用不用没关系啊』........
    msg7086
        20
    msg7086  
       Jul 10, 2013
    exe格式出生于改革开放之前,msi什么的不知道是哪年的事情了
    haohaolee
        21
    haohaolee  
       Jul 10, 2013   1
    msi本质上是一个数据库文件,exe是可执行文件,不同层面上的东西,没有可比性
    LokiSharp
        22
    LokiSharp  
       Jul 10, 2013
    因为,部分精简版 XP 里没有 msi 安装器
    X_Del
        23
    X_Del  
       Jul 10, 2013
    @haohaolee 可是 Linux 下很少有程序用 Bin 来安装啊,大部分都是包管理或者 make & sudo make install。
    应该还是 Windows 生态环境的问题,没有良好的包管理处理依赖,开发者们只能八仙过海,各显神通了。
    haohaolee
        24
    haohaolee  
       Jul 10, 2013
    @X_Del 就这个问题而言,应该分为使用 MSI 的打包技术和其它打包技术,而不是用 exe 和 msi 来区分。
    很多可执行 exe 不过是解压出 msi,然后调用 Windows Installer 的 API 去处理这个 msi 而已,而另外一些 exe 安装包完全和 msi 没有关系。大型的安装程序一般都是有可执行程序引导的,因为内部的 msi 可能有多个。
    About     Help     Advertise     Blog     API     FAQ     Solana     5776 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 58ms UTC 07:14 PVG 15:14 LAX 00:14 JFK 03:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86