【问题标题】:.NET Program Keeps Installing Old Version.NET 程序不断安装旧版本
【发布时间】:2009-01-21 17:01:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: installation version uninstallation


    【解决方案1】:

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

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

    【讨论】:

    • 我也在考虑这个问题。但是,为什么它可以在某些机器上运行,而在其他机器上不行呢?
    • 几个原因 - 旧版本从未安装,由不同用户安装,MSI 未缓存或删除等。无论如何,值得一试。
    • 谢谢。我会试一试。不过,这将需要一段时间,因为我们客户的维护人员要来对机器进行 Windows 更新。
    【解决方案2】:

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

    【讨论】:

    • 我同意 - 我以前见过这种下载缓存问题,尤其是公司代理。
    • 即使我没有使用浏览器下载它?我已经通过 ftp 从 Filezilla 尝试过,但仍然遇到同样的问题。
    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 2016-07-05
        • 2018-01-20
        • 1970-01-01
        相关资源
        最近更新 更多