سلام برای بروز رسانی برنامه میتونید به این روش استفاده کنید
اول یه فایل xml ایجاد کنید و اطلاعات زیر رو وارد کنید
<?xml version="1.0" encoding="utf-8"?>
<MoalemYar>
<AppVersion>
<version>2.2.5772.0</version>
<url>https://app.com/app.exe</url>
<changelog>
بهبود رابط کاربری
حل مشکلات
افزودن ویژگی های جدید
بهبود تجربه کاربری
</changelog>
</AppVersion>
</MoalemYar>
حالا این فایل رو در اینترنت اپلود کنید
حالا یک پروژه دیگه جدا از پروژه اصلی ایجاد کنید و کدهای زیر رو بنویسید تا این اطلاعات رو دریافت و با ورژن خود برنامه مقایسه کنه
بعدش موقع چک کردن اگر ورژن جدیدی پیدا شد میتونید برنامه اصلی رو ببندید و نسخه جدید رو جایگزین قبلی کنید اگر نتونستید استفاده کنید بگید تا بصورت یک کتابخانه براتون ایجاد کنم
public static string UpdateServer = "https://app.com/Updater.xml";
public const string UpdateXmlTag = "MoalemYar"; //Defined in Xml file
public const string UpdateXmlChildTag = "AppVersion"; //Defined in Xml file
public const string UpdateVersionTag = "version"; //Defined in Xml file
public const string UpdateUrlTag = "url"; //Defined in Xml file
public const string UpdateChangeLogTag = "changelog";
private string newVersion = string.Empty;
private string url = "";
private void CheckUpdate()
{
try
{
newVersion = string.Empty;
ChangeLog = string.Empty;
url = "";
XDocument doc = XDocument.Load(UpdateServer);
var items = doc
.Element(XName.Get(UpdateXmlTag))
.Elements(XName.Get(UpdateXmlChildTag));
var versionItem = items.Select(ele => ele.Element(XName.Get(UpdateVersionTag)).Value);
var urlItem = items.Select(ele => ele.Element(XName.Get(UpdateUrlTag)).Value);
var changelogItem = items.Select(ele => ele.Element(XName.Get(UpdateChangeLogTag)).Value);
newVersion = versionItem.FirstOrDefault();
url = urlItem.FirstOrDefault();
ChangeLog = changelogItem.FirstOrDefault();
CompareVersions();
}
catch (Exception)
{
}
}
private void CompareVersions()
{
if (IsVersionLater(newVersion, getAppVersion.ToString()))
{
txtNewVersion.Content = newVersion;
txtNewVersion.Foreground = new SolidColorBrush(Colors.Green);
txtNewVersion.Visibility = Visibility.Visible;
txtChangeLog.Visibility = Visibility.Visible;
txtChangeLog.Text = ChangeLog;
showNotification(Update_KEY, true, newVersion, url);
}
else
{
showNotification(Update_KEY, false);
txtNewVersion.Content = "شما از آخرین نسخه استفاده می کنید";
txtNewVersion.Visibility = Visibility.Visible;
}
}
public static bool IsVersionLater(string newVersion, string oldVersion)
{
// split into groups
string[] cur = newVersion.Split('.');
string[] cmp = oldVersion.Split('.');
// get max length and fill the shorter one with zeros
int len = Math.Max(cur.Length, cmp.Length);
int[] vs = new int[len];
int[] cs = new int[len];
Array.Clear(vs, 0, len);
Array.Clear(cs, 0, len);
int idx = 0;
// skip non digits
foreach (string n in cur)
{
if (!Int32.TryParse(n, out vs[idx]))
{
vs[idx] = -999; // mark for skip later
}
idx++;
}
idx = 0;
foreach (string n in cmp)
{
if (!Int32.TryParse(n, out cs[idx]))
{
cs[idx] = -999; // mark for skip later
}
idx++;
}
for (int i = 0; i < len; i++)
{
// skip non digits
if ((vs[i] == -999) || (cs[i] == -999))
{
continue;
}
if (vs[i] < cs[i])
{
return (false);
}
else if (vs[i] > cs[i])
{
return (true);
}
}
return (false);
}
private void btnCheckUpdate_Click(object sender, RoutedEventArgs e)
{
CheckUpdate();
}