Ответ 1
Возможно, полезно следующее:
https://autoupdaterdotnet.codeplex.com/
Или вы можете попробовать попробовать:
https://github.com/synhershko/NAppUpdate
По крайней мере, эти два кажутся активными и простыми в использовании.
Я разрабатываю клиентское приложение (.NET), которое должно автоматически обновляться. Приложение будет развернуто с помощью простого установщика WiX/MSI.
Что мне нужно:
Есть ли подходящие рамки/шаблоны для их архивации?
Я нашел/попробовал следующее:
Существуют ли для этого активные и надежные решения (им не нужно быть свободными и OpenSource)?
Возможно, полезно следующее:
https://autoupdaterdotnet.codeplex.com/
Или вы можете попробовать попробовать:
https://github.com/synhershko/NAppUpdate
По крайней мере, эти два кажутся активными и простыми в использовании.
Я думаю, что вы можете сами его закодировать. как в приведенном ниже коде:
Для вашего Form
используйте следующий код:
Imports System.Net
Public Class frmMain
Private WithEvents WebC As New WebClient
Private updatefilename As String
Private WithEvents updateTimer As New Timer With {.Enabled = True, .Interval = 300000} '300000 is 5 min
Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
CheckUpdatePHP() ' you can use the php method or the normal method
End Sub
Private Sub CheckUpdatePHP() Handles updateTimer.Tick
Dim ServerVer As String = WebC.DownloadString("http://yourdomainname.com/update.php?get=ver")
If Not Application.ProductVersion.Equals(ServerVer) Then
Dim updateURL As String = WebC.DownloadString("http://yourdomainname.com/update.php?get=url")
updatefilename = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".exe"
WebC.DownloadFileAsync(New Uri(updateURL), updatefilename)
End If
End Sub
Private Sub CheckUpdate() 'Handles updateTimer.Tick
Dim ServerInfo As String = WebC.DownloadString("http://yourdomainname.com/version.txt")
Dim Infos As String() = ServerInfo.Split("%split%")
If Not Application.ProductVersion.Equals(Infos(0)) Then
Dim updateURL As String = WebC.DownloadString(Infos(1))
updatefilename = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".exe"
WebC.DownloadFileAsync(New Uri(updateURL), updatefilename)
End If
End Sub
Private Sub WebC_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles WebC.DownloadFileCompleted
Dim pinfo As New ProcessStartInfo(updatefilename)
pinfo.WindowStyle = ProcessWindowStyle.Hidden
pinfo.CreateNoWindow = True
Process.Start(pinfo)
End
End Sub
End Class
version.txt
должен выглядеть следующим образом:
1.0.0.0%split%http://yourdomainname.com/update.exe
upload.php
, если вы будете использовать метод php, должен использовать этот код:
<?php
if(isset($_GET['get'])){
$get = $_GET['get'];
$txt = file_GET_contents("version.txt");
$info = explode("%split%",$txt);
if($get = 'ver'){
echo $info[0];
}elseif($get = 'url'){
echo $info[1];
}
}
?>
Если вы будете использовать PHP method
, вы должны удалить его из своего кода формы, также для обычного метода вы можете загрузить файл version.txt
и update.exe
в свою учетную запись и использовать их.
Не стейсняйся спросить.