c# - VS 安装项目 - RemovePreviousVersion 更改安装文件夹
问题描述
我本来期望那个设置
RemovePreviousVersion = true
无论新版本是否安装到不同的目标文件夹中,在安装项目中都会导致删除以前的版本。这个假设本身是错误的吗?我没有更改 UpgradeCode GUID。
但是,旧版本文件夹以及“程序和功能”中的条目仍然存在。
在我的场景中,当前的目标安装文件夹是
"%ProgramFiles(x86)%\MySoftware v1"
现在我有一个主要版本升级到 v2 并希望在安装文件夹中反映它,将其更改为
"%ProgramFiles(x86)%\MySoftware v2".
我希望在升级过程中删除“MySoftware v1”。
在更改目标文件夹之前,它按预期工作。所以我假设我的设置项目设置通常是正确的。
两个安装项目之间必须匹配的标准到底是什么,以便它检测到应该删除以前的版本?我的理解是,UpgradeCode 用于唯一标识一个项目,但正如我指出的那样,我没有更改它。
解决方案
它应该完全删除旧版本。这篇文章有很多细节:
https://www.red-gate.com/simple-talk/dotnet/visual-studio/updates-to-setup-projects/
但删除失败的主要原因是:
您的新设置的 UpgradeCode 与旧设置不同,但您说它们是相同的,所以...
第一次安装是每个人(或只是我),升级不是同一个上下文。
推荐阅读
- python - 平滑模拟输入值
- c - 重复字符串 - 挑战 - 缺少几个数字的答案(C 语言)
- xml - XPath 中 //、.// 和 ..// 之间的区别?
- python - 将带有 DatetimeIndex 的 Pandas DataFrame 按 na 或缺少的行拆分为块
- vba - 如何更改 VBA 中数组元素的语言?
- sql - 使用 pgcrypto 加密整个列
- regex - 两个文本之间的文本的正则表达式
- python - 在 Deepspeech 中抛出“std::length_error”实例后调用终止
- python - Pandas:如何获取由两个索引计算的唯一值
- java - 带有自定义比较器的 TreeSet() 的异常行为