最近在做个msi程序安装文件,出了一个问题:
- 需要该安装包安装的时候自动移除旧版本的程序,做法是将安装项目的【RemovePreviousVersions】属性设置为True。
- 并且确保多版本间的UpgradeCode相同,版本号和ProductCode不同,且版本号为递增。
但是按照上面的方法制作出的安装程序就是不能自动删除就版本的程序。找来找去就是找不到问题所在(郁闷的是以前按相同方法做的但是就好的)。在重新创建一个项目并制作又可以了。
后来想起在开发这个程序的时候,做了一件很臭屁的事情:(我们这个程序是个原型,暂时还不算是个产品所以暂且将该程序的版本号定为:0.8.0)。再回头来将该安装程序的版本好定为:1.0.0,再做1.0.1的版本做测试,这个神奇的功能又可以用了。
我又异想天开了一下:是不是版本在1.0之前版本大小是反过来的,测试了0.9.3和0.9.1的两个版本,系统还是人0.9.3是0.9.1的后续版本,但是自动移除旧版本功能就是无效。不知道这是bug还是版本号需特别定义的地方,特此记录。