我为 Windows Application 创建了一个安装项目。我设置了以下属性以用新版本替换现有版本。
RemovePreviousversion=True;
Productcode=change;
但是当我exe
从新安装的版本运行时。我看不到我的新更新。它给了我以前版本的输出!
完整的解释在这里
我将 RemovePreviousVersions 设置为 TRUE,InstallAllUsers 设置为 TRUE。
当我需要发布新版本时,我会在安装程序中使用新版本号更新版本字段,VS 会提示我更新产品代码,我回答是。我已经验证它确实更改了产品代码,但包代码也随之更改(通过使用 sourcesafe 区分项目文件进行验证)。
UpgradeCode 在版本之间永远不会改变。
我的版本号更改形式为:例如“1.1.2”->“1.1.3”(以防万一与它有关)。
所以构建之间只有 3 个字段不同:ProductCode、PackageCode 和 ProductVersion。
完成所有这些后,我构建了安装程序。当我安装新版本时(我总是为所有用户安装并且总是安装到同一个目录中),我在不同的时间看到了三种不同的结果:
- 它似乎会安装新版本,但我最终还是得到了旧文件(以及添加/删除程序中的一个实例)。
- 我最终在添加/删除程序中得到了 2 个应用程序实例,它们都具有相同的名称,并且都指向同一个目录。
- 它会先卸载旧的,然后安装新的(它应该做的)。
向用户解释说为了安全起见,他们必须在安装新版本之前手动卸载旧版本是非常令人沮丧的,因为我必须告诉他们“它并不总是像预期的那样卸载旧版本”。
有什么建议么?为什么这不起作用?我在这里想念什么?