1

我为 Windows Application 创建了一个安装项目。我设置了以下属性以用新版本替换现有版本。

RemovePreviousversion=True;
Productcode=change;

但是当我exe从新安装的版本运行时。我看不到我的新更新。它给了我以前版本的输出!

完整的解释在这里

我将 RemovePreviousVersions 设置为 TRUE,InstallAllUsers 设置为 TRUE。

当我需要发布新版本时,我会在安装程序中使用新版本号更新版本字段,VS 会提示我更新产品代码,我回答是。我已经验证它确实更改了产品代码,但包代码也随之更改(通过使用 sourcesafe 区分项目文件进行验证)。

UpgradeCode 在版本之间永远不会改变。

我的版本号更改形式为:例如“1.1.2”->“1.1.3”(以防万一与它有关)。

所以构建之间只有 3 个字段不同:ProductCode、PackageCode 和 ProductVersion。

完成所有这些后,我构建了安装程序。当我安装新版本时(我总是为所有用户安装并且总是安装到同一个目录中),我在不同的时间看到了三种不同的结果:

  1. 它似乎会安装新版本,但我最终还是得到了旧文件(以及添加/删除程序中的一个实例)。
  2. 我最终在添加/删除程序中得到了 2 个应用程序实例,它们都具有相同的名称,并且都指向同一个目录。
  3. 它会先卸载旧的,然后安装新的(它应该做的)。

向用户解释说为了安全起见,他们必须在安装新版本之前手动卸载旧版本是非常令人沮丧的,因为我必须告诉他们“它并不总是像预期的那样卸载旧版本”。

有什么建议么?为什么这不起作用?我在这里想念什么?

4

1 回答 1

1

我找到了答案。

还需要更改AssemblyInfo.cs中的AssemblyVersion和AssemblyFileVersion

于 2013-01-28T10:25:28.827 回答