2014-05-16 8 views
-1

Ok, j'ai cherché pour cela et ne trouve pas spécifiquement ce que je cherche. En ce moment tout ce dont j'ai besoin est comment obtenir l'exe à télécharger dans le dossier actuel son et quand il le faut pour sortir avec l'ancienne mise à jour, comme l'écraser ou quelque chose. Tous ensemble ce que je veux, c'est quand je clique sur le bouton de mise à jour, il vérifie s'il y a une mise à jour, s'il y en a un qui dit oui ou non et vous cliquez sur oui, puis le télécharge dans le dossier courant et il remplace l'ancienne mise à jour avec la nouvelle mise à jour. Et s'il n'y a pas de mise à jour, cela dit quelque chose comme si vous aviez la version actuelle. Im en utilisant un fichier xml qui a la version et où le téléchargement se trouve sur mon site Web btw.Comment créer une mise à jour automatique?

C'est ce que j'ai,

private void checkForUpdatesButton_Click(object sender, EventArgs e) 
{ 
    string downloadUrl = ""; 
    Version newVersion = null; 
    string aboutUpdate = ""; 
    string xmlUrl = ""; 
    XmlTextReader reader = null; 
    try 
    { 
     reader = new XmlTextReader(xmlUrl); 
     reader.MoveToContent(); 
     string elementName = ""; 
     if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "appinfo")) 
     { 
      while (reader.Read()) 
      { 
       if (reader.NodeType == XmlNodeType.Element) 
       { 
        elementName = reader.Name; 
       } 
       else 
       { 
        if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue)) 
         switch (elementName) 
         { 
          case "version": 
           newVersion = new Version(reader.Value); 
           break; 
          case "url": 
           downloadUrl = reader.Value; 
           break; 
          case "about": 
           aboutUpdate = reader.Value; 
           break; 
         } 
       } 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
     Environment.Exit(1); 
    } 
    finally 
    { 
     if (reader != null) 
      reader.Close(); 
    } 
    Version applicationVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; 
    if (applicationVersion.CompareTo(newVersion) < 0) 
    { 
     string str = String.Format("New version found!\nYour version: {0}.\nNewest version: {1}. \nAdded in this version: {2}. ", applicationVersion, newVersion, aboutUpdate); 
     if (DialogResult.No != MessageBox.Show(str + "\nDo You Want To Download This ?", "Update", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) 
     { 
      try 
      { 
       WebClient webClient = new WebClient(); 
       webClient.DownloadFile("", ""); 
      } 
      catch 
      { 
      } 
      return; 
     } 
     else 
     { 
      ; 
     } 
    } 
    else 
    { 
     MessageBox.Show("Looks Like You Have The Most Current Update " + applicationVersion + "!", "Update", MessageBoxButtons.OK, MessageBoxIcon.None); 
    } 
} 

Si quelqu'un peut aider s'il vous plaît faire, je l'ai cherché et tout essayé, je vous remercie.

+1

Y at-il une raison que vous essayez de réinventer ClickOnce? – 48klocs

+0

Le problème avec le traitement XML ou la mise à jour? –

+0

Vous me rappelez de moi quand j'ai commencé ... – Faisal

Répondre

0

Mon conseil: Ne pas réinventer la roue. MS fournit des fonctionnalités/types de projets intégrés pour les applications de mise à jour automatique. Ceci est appelé ClickOnce. Voici un lien pour vous aider à démarrer: ClickOnce Deployment

Si vous utilisez les dernières versions de VS et .NET, vous avez également d'autres choix, tels que le déploiement Web ou cloud (Azure).

est ici une page de déploiement plus complet: Deploying Applications, Services, and Components

Questions connexes