Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-更新已发布应用程序的简单方法_C#_Wpf_Auto Update - Fatal编程技术网

C# WPF-更新已发布应用程序的简单方法

C# WPF-更新已发布应用程序的简单方法,c#,wpf,auto-update,C#,Wpf,Auto Update,我知道有很多关于自动更新的问题,但所有这些都需要外部程序或与服务器的大型工作,这对我的具体情况没有用处 我需要以一种定制的方式更新我的WPF应用程序:我想控制哪些用户必须更新它,哪些用户不会(我有服务器、后端,选择哪些用户将进行更新不是问题) 关键是我的用户可能有非常不同的版本,我需要控制他们将更新到哪个版本 实例: 两个用户都有1.0版 最后一个版本是1.5 我希望其中一个更新到1.5版,另一个更新到1.3版 在上面提到的示例中,我可以简单地为一个用户下载安装程序的1.3版本,为另一个用户下载

我知道有很多关于自动更新的问题,但所有这些都需要外部程序或与服务器的大型工作,这对我的具体情况没有用处

我需要以一种定制的方式更新我的WPF应用程序:我想控制哪些用户必须更新它,哪些用户不会(我有服务器、后端,选择哪些用户将进行更新不是问题)

关键是我的用户可能有非常不同的版本,我需要控制他们将更新到哪个版本

实例:

两个用户都有1.0版

最后一个版本是1.5

我希望其中一个更新到1.5版,另一个更新到1.3版

在上面提到的示例中,我可以简单地为一个用户下载安装程序的1.3版本,为另一个用户下载1.5版本,关闭应用程序并以管理员身份运行下载的安装程序吗

但最重要的是,这种方法有效吗?运行使用clickonce生成的下载安装程序(例如)将正确更新整个应用程序

这个解决方案看起来非常简单和快速,我知道这是否是管理我的更新的一种可能的方法

注:

  • 这是一个B到B的应用程序,所以我实际上并不关心安全问题,我只需要完全控制我的更新
  • 我可以使用FTP,webapi。。。下载新的安装程序
这在技术上可能吗


谢谢

我想你可以使用任何更新框架,比如你真的需要“安装程序”吗?只要目标文件夹位于appdata中,通常可以使用filecopy dll等。只需复制到新版本文件夹下的一个他们运行。下次运行时复制到运行文件夹中。您将需要一个单独的加载程序exe来执行复制操作。这可能是WiFrm或C++,所以它显示了比WPF更快的一个飞溅屏幕。“安迪,我能做到,但是如果应用程序安装在系统上,它会起作用吗?我需要像你说的那样运行一个单独的应用程序来复制文件并重新启动我的应用程序。这可能有用!我要试一试thanks@styx我会看看的!thanksI正在考虑在启动时进行新版本检查。这意味着你有一个点,你检查一个新的版本,你没有得到运行的东西。您也可以使用signalr或类似工具来告诉running应用程序获取新版本。当然,您仍然需要一个单独的流程来切换,但这可能是一段非常简单的代码和启动UI。文件复制、删除和process.start听起来可能需要2-3个小时的开发时间。