2014-10-02 98 views
0

我们在.NET 4.0上有一个内部公司的Windows窗体应用程序。我们的问题是,有些用户在更新应用程序时遇到麻烦,因为它已经安装。.NET Windows窗体应用程序更新部署

,我们发布应用程序的方法是:

  • 转到项目
  • 设置新版本的应用程序的性能,设置应用程序的更新URL。
  • 将应用发布到本地。
  • 将应用程序部署到更新URL。

由此,应用程序始终会检查是否部署了新版本,如果是,则会下载并安装它。

正如我所说的,我们的问题是,有些用户无法正确安装应用程序更新和应用程序崩溃。然后,我们告诉用户卸载程序并从部署位置下载安装包(实际上,因为我们无法修复程序,所以我们不得不编写另一个应用程序来执行此操作!)。

因为它对所有的用户都不一样,所以我不明白为什么会发生这种情况。我们的一位开发人员坚持认为这是一个与网络有关的问题,但我想知道我们是否可以为此设置绝对解决方案。

为什么这不起作用?如何解决它?

+2

对于SO,这个问题可能过于开放。你会更好地问一个非常直接的问题。一个措辞宽泛的“为什么整个过程不起作用”在这里是不能回答的。 – DonBoitnott 2014-10-02 10:49:05

+0

@DonBoitnott编辑。谢谢。 – 2014-10-02 11:09:57

+0

这是可能的应用程序是针对特定平台(32/64位)和有问题的用户正在运行另一个? – Crowcoder 2014-10-12 00:10:08

回答

1

还有一种解决问题的方法。 您应该在数据库端维护版本并更新表用户vise。 当用户登录时,它将检查服务器上的版本以及当前版本(如果它不同)。 只是一个带有命令的批处理文件,用于更新特定的可执行文件。

+0

尝试检测应用程序是否为最新版本,但在更新它时,我们没有遇到任何问题。我没有得到这将如何帮助。 – 2014-10-15 05:51:46

+0

雅..刚刚得到你的观点,但批处理文件可以处理..你可以检测问题的情况,并保持批处理文件中的解决条件。 – 2014-10-15 06:08:16

1

您必须从ClickOnce安装日志中找到特定安装失败的详细信息。这是默认在“Internet临时文件夹”中。见the answer herearticle here。您一定要在日志文件中查看原因才能排除故障。

通常可以从控制面板卸载应用程序,然后从相同的URL或UNC路径重新安装。也可能需要清除ClickOnce应用程序缓存%userprofile%\Local Settings\Apps\2.0

点击一次通常适用于较小的应用程序,从我的经验来看,更多情况下,随着具有多个库的较大应用程序出现问题。

恐怕“绝对的解决办法”就是不要使用点击一次的部署方法。