.NET程序继续安装旧版本

时间:2009-01-07 15:43:00

标签: installer version uninstall

我对.NET程序有一个相当恼人和耗时的问题。我们的客户都使用我们在Visual Studio 2005(运行.NET framework 3.5)中编写的软件。该应用程序是一个安装项目,从另一个项目中获取其文件。问题是,每当我进行代码更改并将新版本上传到服务器时,某些PC都无法进行更改。以下是我们升级的步骤:

  1. 使用“添加/删除程序”卸载旧软件。
  2. 重新启动机器。
  3. 访问我们的网站并运行setup.msi文件。
  4. 安装新软件。
  5. 运行该应用程序。
  6. 问题是当他们运行应用程序时,他们仍然在使用旧版本。它只发生在没有特定模式的某些电脑上。我很肯定它不是因特网缓存,因为同事直接通过ftp将msi文件复制到那里。我们通过将我们安装的目录(包括清单,部署,exe和所有内容)复制到他们的电脑上来解决这个问题。这似乎有效,但它没有必要。我很难过。我已经尝试了一切。我无法复制问题 - 设置对我来说很好;即使我有旧版本,它也会升级它。 Windows是否以某种方式缓存了我应该了解的设置或其他内容?请帮忙:)谢谢!

4 个答案:

答案 0 :(得分:1)

我发生了这种情况,其中MSI的一个GUID在构建之间没有改变。

同时检查版本号。我已经发生了这种情况,其中唯一的修订号已经改变(1.0.0.0 - > 1.0.0.1是不够的,必须是1.0.1.x)。

答案 1 :(得分:0)

该问题可能与下载方面的chaching有关。如果是我,我会确保msi包含其名称中的版本号(例如MyAppInstaller_1.1.3.msi),以确保下载时不会出现任何问题。

答案 2 :(得分:0)

在安装新版本之前,您确定目标用户是否已卸载旧版本?我没有卸载旧版本的用户遇到问题,新版本没有覆盖它。您可以尝试以下

  • 将安装程序中的默认目录设置为与旧版本不同的位置。
  • 为快捷方式指定一个不同的名称(将版本号附加到其上)。

因为我不认为缓存会做这样的事情(如果文件是通过浏览器下载的,那么它们会在完成时下载到特定位置而不会保存在缓存中)。

编辑:Morechillies可能会有所作为。一些企业可能试图复制网络。它可能是代理缓存......但我并不是真的相信。

答案 3 :(得分:0)

您确定使用的是3.5和2005吗?

如果您使用的是2008,请参阅a discussion of the difference between MSI support on one vs the other

话虽如此,这并不能解释不一致的行为 - 它应该始终是错误的。也许在某些情况下,人们正在进行明确的卸载并取得成功吗?