Visual Studio打包(Windows Installer),你不知道的RemovePreviousVersions 属性
用MS VS打包程序,有个细节有点坑爹
写出来给大家看看
一般来说MSDN都这么解释
RemovePreviousVersions 属性的设置如下所示:
设置 |
说明 |
---|---|
False |
安装程序不检查是否有早期版本。 |
True |
安装程序检查是否有早期版本;一经发现,便会立即将其卸载。 |
指定安装程序在安装期间是否移除应用程序的早期版本。如果此属性设置为 True,并且在安装时检测到了早期版本,则将调用以前版本的卸载功能。
安装程序检查“UpgradeCode”和“ProductCode”属性,以确定是否应移除早期版本。新旧两种版本的 UpgradeCode 必须相同;ProductCode 必须不同。
如果已在应用程序的安装项目中同时设置了安装和卸载自定义操作,而且已在 Visual Studio 2005 中启用了“RemovePreviousVersions”属性,则会在升级过程中卸载产品的早期版本。不过,此行为在 Visual Studio 2008 中做了如下更改:
在 Visual Studio 2005 中,当从 v1.0.0 升级到 v1.0.1 时,按如下方式调用自定义操作:
v1.0.0 custom action Uninstall()
v1.0.1 custom action Install()
在 Visual Studio 2008 中,不会调用卸载操作,如下所示:
v1.0.1 custom action Install()
如果创建了依赖于旧行为的自定义操作,则需要针对新行为修改您的代码。此行为更改只影响更新,不影响卸载。
所以,你要是用VS2008的话,RemovePreviousVersions 怎么设都没用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探