c# wat is er fout aan deze code voor het controleren van update's

Status
Niet open voor verdere reacties.

ido435

Gebruiker
Lid geworden
10 nov 2010
Berichten
674
Hallo

ik ben al een tijdje aan het prutsen met deze code maar krijg hem niet werken misschien zien 1 van jullie het

[JS]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;

namespace OG_Info
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
progressBar1.Value += +1;
if (progressBar1.Value == 100)
{
timer1.Stop();
browser br = new browser();
br.Show();
this.Hide();
}
if (progressBar1.Value == 50)
{
string downloadURL = "";
Version newVersion = null;
string xmlUrl = "http://www.oostgames.tk/OGinfo/update.xml";
XmlTextReader reader = null;
try
{
reader = new XmlTextReader(xmlUrl);
reader.MoveToContent();
string elementName = "";
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "coolapp"))
{
while (reader.Read())
{
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;
}
}
}
catch (Exception ex)
{
Environment.Exit(1);
}
finally
{

}
Version applicationVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
if (applicationVersion.CompareTo(newVersion) < 0)
{
MessageBox.Show("Version " + newVersion.Major + "." + newVersion.Minor + "." + newVersion.Build + "of OgInfo");
System.Diagnostics.Process.Start(downloadURL);
timer1.Stop();
}
else
{
}
}
}
}
}
[/JS]
 
Je doet twee dingen verkeerd:

1. Je leest het XML bestand verkeerd in:

[cpp]
var xml = new XmlTextReader(url);
while (xml.Read())
{
switch (xml.NodeType)
{
case XmlNodeType.Element:
name = xml.Name;
break;
case XmlNodeType.Text:
if (name.Equals("version")) major = xml.Value;
else if (name.Equals("url")) downloadUrl = xml.Value;
break;
}
}
var version = new Version(major);
[/cpp]


2. Je haalt via reflectie een Version OBJECT op en controleert vervolgens of dit OBJECT (dus niet alleen de versiestring zoals je graag zou willen) gelijk is aan het object dat je zojuist hebt aangemaakt, wat in deze situatie niet het geval is (het object dat je met reflectie ophaalt bevat alle waarden en het object dat je hebt aangemaakt alleen de versiestring):

[cpp]
if (version.Major.CompareTo(newVersion.Major) == 0) {
// dezelfde versie
}
[/cpp]
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan