我制作了一个.net安装项目(msi),需要在安装时移除旧版本。
参考msdn上和网友的介绍,知道RemovePreviousVersions 设置为真,然后升级版本号和ProductCode就行。
我试了发现能升级安装了,但升级安装后exe文件还是原来旧的。
我部署的文件里有多种,有exe主程序,也有配置文件之类的xml文件。
在测试过程中发现,直接升级安装的话,除exe文件外其它的都升级成新版本的了。但就是exe主程序还是老版本。
如果在添加删除程序里先卸载再安装新msi的话就全是新版本的了。而且,我在测试过程中发现,如果新安装程序里添加了自定义操作的话,升级安装时根本就不会执行这些自定义操作。我一开始怀疑升级安装是并没有成功移除原来的文件,于是在安装新程序时换了安装目录,测试发现原来的文件的确已经移除了。
但我最最最最纳闷的是,为什么其它的文件能升级到新版本上,就最关键的exe主程序不能升级呢。我又试了试在自定义操作中的安装前事件中添加检测,删除主exe文件,发现拒绝访问。哥们儿们谁有过类似经验,或者把你们的测试结果给兄弟说一说,看看你们升级安装时,能不能把exe升级到新版本。我先出20分,如果有高手帮我解决,另有加分相送。