2

我在使用 .NET 程序时遇到了一个相当烦人且耗时的问题。我们的客户都使用我们在 Visual Studio 2005 中编写的软件(运行 .NET framework 3.5)。该应用程序是一个安装项目,它从另一个项目中获取其文件。问题是,每当我进行代码更改并将新版本上传到服务器时,某些电脑不会得到更改。以下是我们为升级所做的步骤:

  1. 使用添加/删除程序卸载旧软件。
  2. 重新启动机器。
  3. 访问我们的网站并运行 setup.msi 文件。
  4. 安装新软件。
  5. 运行应用程序。

问题是当他们运行应用程序时,他们仍然得到旧版本。它只发生在某些没有特定模式的电脑上。我很肯定这不是互联网缓存,因为一位同事直接通过 ftp 将 msi 文件复制到那里。我们通过将安装目录(包括清单、部署、exe 和所有这些东西)复制到他们的 PC 上来解决这个问题。这似乎有效,但它不应该是必要的。我难住了。我什么都试过了。我不能重复这个问题——设置对我来说很好;即使我有旧版本,它也会升级它。Windows 是否以某种方式缓存设置或我应该知道的事情?请帮助:) 谢谢!

4

4 回答 4

1

我遇到过这种情况,其中 MSI 的 GUID 之一在构建之间没有更改。

还要检查版本号。我也发生过这种情况,唯一的修订号发生了变化(1.0.0.0 -> 1.0.0.1 还不够,必须是 1.0.1.x)。

于 2009-01-07T15:50:38.523 回答
0

该问题可能与下载端的 chaching 有关。如果是我,我会确保 msi 在其名称中包含版本号(例如 MyAppInstaller_1.1.3.msi),以确保下载时不会发生任何奇怪的事情。

于 2009-01-07T15:46:41.573 回答
0

你确定你使用的是 3.5 和 2005?

如果您使用的是 2008,请参阅关于 MSI 支持与另一个的区别的讨论

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

于 2009-01-21T08:53:16.157 回答
0

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

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

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

编辑:Morechillies 可能会有所作为。一些公司可能正在尝试复制网络。它可能是代理缓存......但我并不真正相信。

于 2009-01-07T15:53:02.857 回答