PDA

View Full Version : آموزش: روش ساخت آپدیت دستی برای برنامه ها



sadeghjun
چهارشنبه 09 مرداد 1392, 04:46 صبح
سلام

مدتی بود که سوالات زیادی در مورد روش ساخت آپدیت دستی برای برنامه ها تو انجمن مطرح بود که البته خود من هم از این روش استفاده نمی کردم. (البته به دلیل راحتی اون روشها ولی مبتدی) به فکر افتادم تا واسه خودم هم شده برم دنبالش چون واقعا کاربردی هست.
بعد از یک روز فعالیت!! بالاخره به هدف رسیدم خلاصه ...
برنامه ای که واسه شما میذارم دارای ویژگی های زیر است:

1- فایل های آپدیت دارای رمز هستند.
2- برنامه بعد از به روزرسانی مجددا راه اندازی و تغییرات در آن اعمال میشود.
3- حتالامکان برنامه ساده نوشته شده است.

تصاویر:


برنامه نمایشی قبل از بروزرسانی:


108214

با کلیک روی آپدیت:


108245

بخش آپدیتر:


108243

برنامه نمایشی بعد از از بروزرسانی:


108216

108244



قبل از اینکه بخوام در مورد این برنامه توضیح بدم . میخوام ببینم آیا علاقه ای برای ادامه کار وجود داره یا نه. لطفا با زدن تشکر علاقه خود را نشان دهید. تا به زودی توضیح رو شروع کنیم.


فایل اجرایی پروژه:
108436
108435

soheyla70
چهارشنبه 09 مرداد 1392, 05:33 صبح
با سلام خیلی خیلی ممنون

دقیقا همونیه که میخواهم

میشه لطف کنین بگین چطوری ساختینش؟

ممنون میشم فایل,پی دی افی یا توضیح کاملی دربارش بدین

Shahram_12
چهارشنبه 09 مرداد 1392, 13:28 عصر
ممنون میشم اگر آموزش رو قرار بدی

چون کار بسیار زیبایی میشه

mohammadsamadi1377
چهارشنبه 09 مرداد 1392, 13:58 عصر
داداش خسته نباشی :متفکر:
برنامه شما فقط کارش دانلود هستش و این اصلا خوب نیست
برنامه باید اول نسخه ی خودش رو با نسخه یه توی سایت مطابقت بده بعد اگه یکسان بود بگه که برنامه ی شما بروز میباشد
در غیر این صورت نسخه ی جدید دان شود
مثلا اگه برنامت 100 مگ باشه هر بار که اپدیت میزنی دوباره صد مگ رو دان میکنه و این اصلا خوب نیست

sadeghjun
چهارشنبه 09 مرداد 1392, 14:52 عصر
داداش خسته نباشی :متفکر:
برنامه شما فقط کارش دانلود هستش و این اصلا خوب نیست
برنامه باید اول نسخه ی خودش رو با نسخه یه توی سایت مطابقت بده بعد اگه یکسان بود بگه که برنامه ی شما بروز میباشد
در غیر این صورت نسخه ی جدید دان شود
مثلا اگه برنامت 100 مگ باشه هر بار که اپدیت میزنی دوباره صد مگ رو دان میکنه و این اصلا خوب نیست

ببخشید نسخه اولی کامل نبود!!
نسخه کامل رو ببینید.

sadeghjun
چهارشنبه 09 مرداد 1392, 15:19 عصر
با سلام
با تشکر از تمام عزیزانی که لطف نمودند.
بریم سراغ توضیح پروژه!
توضیح پروژه:
همونطور که خودتون فایل اجرایی رو دانلود کردین دو تا فایل exe وجود داره که یکی برنامه ما (TestUpdateAPP) و دیگری آپدیتر (Update) هستش.
با کلیک بر روی Update در برنامه TestUpdateAPP ، ابتدا با دانلود یک فایل متنی از اینترنت چک میکنه که نسخه جدید اومده یا نه در صورتی که نسخه جدیدتر موجود باشه یه پیغام میده و نسخه شما و نسخه جدید و همچنین آپدیت ها و توضیحاتی رو میده و در صورتی که شما موافق بروزرسانی باشید برنامه رو میبنده و وارد آپدیتر میشه. آپدیتر هم بعد از کلیک روی Update میاد فایل UPDATE.zip رو از اینترنت دانلود میکنه و بازش میکنه که بعد از اتمام عملیات و نمایش پیغام اون بعد از OK کردن نسخه جدید اجرا میشه.

ali_hojati_00
چهارشنبه 09 مرداد 1392, 15:27 عصر
با سلام
با تشکر از تمام عزیزانی که لطف نمودند.
بریم سراغ توضیح پروژه!
توضیح پروژه:
همونطور که خودتون فایل اجرایی رو دانلود کردین دو تا فایل exe وجود داره که یکی برنامه ما (TestUpdateAPP) و دیگری آپدیتر (Update) هستش.
با کلیک بر روی Update در برنامه TestUpdateAPP ، ابتدا با دانلود یک فایل متنی از اینترنت چک میکنه که نسخه جدید اومده یا نه در صورتی که نسخه جدیدتر موجود باشه یه پیغام میده و نسخه شما و نسخه جدید و همچنین آپدیت ها و توضیحاتی رو میده و در صورتی که شما موافق بروزرسانی باشید برنامه رو میبنده و وارد آپدیتر میشه. آپدیتر هم بعد از کلیک روی Update میاد فایل UPDATE.zip رو از اینترنت دانلود میکنه و بازش میکنه که بعد از اتمام عملیات و نمایش پیغام اون بعد از OK کردن نسخه جدید اجرا میشه.

فراموش کردی dll رو قرار بدی error میده:بامزه:

saeed zarei
چهارشنبه 09 مرداد 1392, 15:42 عصر
کارتون عالی و جای تشکر داره . ولی اگه زحمتی نیست یه کم کامل تر توضیح بدید
ممنون

barnamenevisjavan
چهارشنبه 09 مرداد 1392, 15:47 عصر
داداش این که آپدیت نیستش
اپدیت اونه که برنامت 100 مگه رو سیستم نصبه مثلا یه مشکلی رو رفع کردی براش پچ بدی (مثلا 1 مگ) برنامه بروزرسانی بشه و مشکل حل بشه
برای اینکار هم باید برنامه رو از بیس بصورت پلاگین یا dll طراحی کنی تا آپدیتش برات آسون باشه.اینی که شما نوشتی یه دانلودر هستش

sadeghjun
چهارشنبه 09 مرداد 1392, 15:47 عصر
برنامه TestUpdateAPP :

خوب الان میخوام برنامه TestUpdateAPP رو تشریح کنم:

متغیرها:
string Fix,Info ,CurrentVersion="1.0.0", NewVersion;
string addrssWeb = "http://sadeghjun.gigblog.ir/Other/ver.txt";
string addrssPC = Application.StartupPath + @"\ver.txt";

addrssWeb و addrssPC آدرس وب و PC فایل متنی حاوی اطلاعات بروزرسانی هستند. و NewVersion و CurrentVersion هم که مشخصند!

با کلیک بر روی آپدیت در منوی برنامه وارد روتین زیر میشه:
private void updateToolStripMenuItem_Click(object sender, EventArgs e)
{
WebClient webClient1 = new WebClient();
webClient1.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient1.DownloadFileAsync(new Uri(addrssWeb), addrssPC);
}

که اومده یه شی از نوع WebClient ایجاد کرده و در خط بعدی گفته هرموقع که دانلود تموم شد برو به تابع Completed . (دقت کنید هنوز دانلود شروع نشده)
حالا در خط سوم میگیم از آدرس addrssWeb فایل رو دانلود و در addrssPC ذخیره کن.

تابع CheqNewVersion:
private int CheqNewVersion()
{
StreamReader sr = new StreamReader(Application.StartupPath + @"\ver.txt");
string text = sr.ReadToEnd();
sr.Close();
string[] spl = text.Split(new char[] { '@' });
NewVersion = spl[1].Trim();
Fix = spl[2];
Info = spl[3];
if (NewVersion != CurrentVersion)
return 1; // New Version Aviable
else
return 0;
}

تو خط اول اومده یه شی از نوع StreamReader برای خوندن فایل از یک آدرس ساخته.(دقت کنید که اینجا فایل باز میشه)
در خط بعدی اون فایل رو خونده و در رشته text ذخیره کرده و خط بعدی هم فایل رو بسته.
سپس امدیم با استفاده از Split متنمون رو به چند تکه تقسیم کردیم تا ورژن ، آپدیت ها و توضیحات رو جدا کنیم تا بتونیم نمایش بدیم. این تکه ها در آرایه ی spl ذخیره شدند. سپس چک میکنه که نسخه روی سایت جدید هست یا نه. اگه بود 1 رو برمیگردونه وگرنه 0.



حالا نوبت تابع Completed هستش!
تابع Completed:
private void Completed(object sender, AsyncCompletedEventArgs e)
{
if (CheqNewVersion() == 1)
{
if (MessageBox.Show("Version " + NewVersion + " aviable!" + "\nYour Version: " + CurrentVersion + "\nFixes:\n" + Fix + "\nInfo:\n" + Info + "\n\nDo you want to update?",
"New Version", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
System.Diagnostics.Process.Start(Application.Start upPath + @"\Update.exe", "-update");
Application.Exit();
}
}
else
MessageBox.Show("You Use Newest Version!", "No Update");
}
اگه یادتون نرفته باشه گفته بودیم هروقت دانلود تموم شد برو به تابع Completed خوب الآن دانلود تموم شده و وارد این تابع شده!
میاد چک میکنه که نسخه جدیده یا نه (با تابع CheqNewVersion) اگه بود میاد اطلاعات رو روی MessageBox نشون میده و میپرسه که میخوای آپدیت کنی یا نه. در صورتی که کلید Yes زده شود، فایل Update.exe رو اجرا و خودشو میبنده!
تمام!
تا اینجای کار اگه سوالی بود در خدمتم.

davidrobert
چهارشنبه 09 مرداد 1392, 16:25 عصر
سلام برادر خسته نباشید فایل خوبی بود ممنون بابت سورسی که قرار دادید که یه دقیقه شیطون رفت تو جلدم دیدم سورس نیست مجبور شدم فایل شما رو از حالت exe به صورت تبدیل کنم و بتونم سورس برنامه رو ببنیم . ببخشید جسارت بنده رو گفتم شما دیگه به زحمت نیوفتید فایل رو سورسش رو بفرستید من خودم سورسش کردم اگه راضی نبودید بگید تا پاک کنم سورس فایل رو.

ali_hojati_00
چهارشنبه 09 مرداد 1392, 17:15 عصر
داداش این که آپدیت نیستش
اپدیت اونه که برنامت 100 مگه رو سیستم نصبه مثلا یه مشکلی رو رفع کردی براش پچ بدی (مثلا 1 مگ) برنامه بروزرسانی بشه و مشکل حل بشه
برای اینکار هم باید برنامه رو از بیس بصورت پلاگین یا dll طراحی کنی تا آپدیتش برات آسون باشه.اینی که شما نوشتی یه دانلودر هستش
شما با ان روشی که بلدی یک تاپیک بزن آموزش بده ما هم یاد بگیریم روش شما رو:بامزه:(ghompoz naya:لبخند:)

mehrdad1991h
چهارشنبه 09 مرداد 1392, 17:52 عصر
سلام
دوست عزیز برنامتون خوبه
ولی میتونم بگم که مشکل داره این :افسرده:
در unzip و remove / replace مشکل داره.....

در کل روش کلی همینه چه برای پلاگین نوشتنش چه برای کامل نوشتن
برای برنامه های کوچیک با حجم کم همین که شما نوشتی خیلی خوبه
ولی اگه برنامه بزرگ باشه به قول دوستمون مثلا 100 مگ باشه این روش ددیگه کارایی نداره چون میشه با پلاگین نویسی انجام داد این کار را
در پلاگین نویسی همه ی قسمت ها به صورت dll هستن
وقتی میخوای اپدیت کنی فقط اون قسمتی که لازمه اپدیت بشه مثلا \2 تا dll ها میشه که حجم کلشون ممکنه مثلا 1 مگ بشه
اونجوری خوب خیلی بهتره

به هر حال از چیزی که گذاشتید ممنون ولی در هر صورت ناقص هست و کمی مشکل داره ولی کار خیلی ها را راه میندازه من خودم یادمه قبلا که بلد نبودم خودم خیلی دنبال همچین چیزی بودم ......

سپاس

sadeghjun
چهارشنبه 09 مرداد 1392, 19:27 عصر
سلام به همه
من در انتها فایل سورس رو میذارم اما میخوام صبر داشته باشید و اجازه بدید اونایی که جا موند هم برسند!!
هیچ کاری بدون اشکال نیست. من هم خوشحال میشم با کمک شما اساتید مشکلاتش رو برطرف کنیم تا جهت انجام پروژه های ساده، یه مرجع بشه.
ممنون از همه.

sadeghjun
چهارشنبه 09 مرداد 1392, 19:51 عصر
و اما آپدیتر

برنامه Update.exe

این برنامه توسط برنامه اصلی (که این جا TestUpdateAPP هست) صدا زده میشه که کدش به صورت زیره:

متغیرها:
Image img1 = Image.FromFile(@"pic/1.png");
string addrssWeb1 = "http://sadeghjun.gigblog.ir/Other/UPDATE.zip";
string addrssPC1 = Application.StartupPath + @"\UPDATE.zip";
string[] args = Environment.GetCommandLineArgs();

img1 یه شی از نوع Image جهت تصویر پس زمینه فرمه.
addrssWeb1 و addrssPC1 آدرس وب و آدرس PC فایل زیپ آپدیت است.
args هم آرگومانی است که برنامه TestUpdateAPP به آپدیتر میفرسته( جهت این است که آپدیتر فقط توسط TestUpdateAPP اجرا شود)

برنامه لود فرم اصلی:

private void Main_Load(object sender, EventArgs e)
{
int sizeOfArray = args.Length;
// cheq if Update.exe is called by TestUpdateAPP.exe
if (sizeOfArray > 1)
{
if (args[1] != "-update")
Application.Exit();
}
else
Application.Exit();

pictureBox1.Image = img1;
}

ابتدا بررسی میکنه که برنامه توسط برنامه اصلی صدا زده شده است یا نه، که اگر نشده بود خارج می شود.
سپس در ادامه پس زمینه رو لود میکنه.

با کلیک روی Update:
private void UpdateBTN_Click(object sender, EventArgs e)
{
WebClient webClient1 = new WebClient();
webClient1.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
webClient1.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChange d);
File.Delete(Application.StartupPath + @"\UPDATE.zip");
webClient1.DownloadFileAsync(new Uri(addrssWeb1), addrssPC1);

}

در این قسمت فایل آپدیت رو دانلود میکنه. و به Event تمام شدم دانلود میگه در اون موقع برو به تابع Completed و به Event تغییر پیشرفت دانلود میگه که برو به تابع ProgressChanged تا ProgressBar1 رو جابجا کنیم.

وقتی دانلود تمام شد میره به تابع Completed:
private void Completed(object sender, AsyncCompletedEventArgs e)
{
MessageBox.Show("Download completed!");
StateTB.Text = "Copying Update ...";
UnzipUpdtFile();
}

در این تابع بعد از دادن پیغام. وارد تابع UnzipUpdtFile میشه.


تابع ()UnzipUpdtFile
private void UnzipUpdtFile()
{
using (ZipFile zip = ZipFile.Read(Application.StartupPath + @"\UPDATE.zip"))
{

int ctr = 0;
foreach (var entry in zip)
{
ZipEntry me = zip[ctr];
me.ExtractWithPassword(Application.StartupPath + @"\", ExtractExistingFileAction.OverwriteSilently, "1234");
ctr++;
}
try
{
StateTB.Text = "Update Completed.";
if (MessageBox.Show("Update Completed Successfull!", "Update", MessageBoxButtons.OK) == DialogResult.OK)
{
System.Diagnostics.Process.Start(Application.Start upPath + @"\TestUpdateAPP.exe", "-update");
Application.Exit();
}
}
catch (Exception)
{
MessageBox.Show("Could not delete ZIP!");
Environment.Exit(1);
}
}
}

در این برنامه از کامپوننت Ionic جهت استخراج فایل فشرده استفاده شده است. در این تابع ابتدا فیل فشرده UPDATE.zip رو میخونه و سپس اونو باز کرده و بعد از اینکه فرآیند تموم شد. پیغامی میده و شپس برنامه اصلی رو صدا میزنه!

تمام
منتظر نظرات شما هستم.
ممنون

فایل سورس برنامه آپدیتر:
108261
108260
فایل سورس برنامه اصلی نسخه 1:
108258
فایل سورس برنامه اصلی نسخه 2:
108259

davidrobert
چهارشنبه 09 مرداد 1392, 20:48 عصر
سلام و خسته نباشید.
دست تان درد نکو نه بابت سورس آپدیت کردن برنامه . ولی اینجا یه سوال باقی میمونه حساب کنید من یه برنامه دارم نزدیک 100MB یا بیشتر حالا حساب کنید تو برنامه که داریم 100MB هستیش یا بیشتر و شخص برنامه نویس نزدیک 2 MB تغییر اعمال کرده روی برنامه حالا شخصی که برنامه رو دارد نباید بیاد از اول 100 MB یا بیشتر رو دانلود کنه و برنامه رو نصب کنه بلکه باید ما بیایم همون 2 MB که تغییر کرده رو روی برنامه نصب کنیم نه اینکه بیاییم فایل exe نصبی رو حذف کنیم و فایل جدید رو جایگزین کنیم این طور بر خود کرد تو برنامه نویسی خوب نیست بیایم فایل نصبی رو با فایل آپدیت یکی کنیم بلکه باید فایل نصبی رو روش اضافه کنیم تغییرات رو اعمال کنیم تا به روز بیشه. این طوری باشه برنامه با مشکل بر خورد نمیکنه و به روز میشه و احتیاج نیست اون شخص که برنامه رو دارد بیاد 100 MB رو دانلود کنه یا بیشتر هی کلی هم با اینترنت کم صورت ایران الا ف دانلود کردن برنامه بیشه.
اگه به این صورت برنامه آپدیت بیشه خیلی بهتر هستش یعنی من یه برنامه نوشتم حجم برنامه 500MB هستش و من نزدیک 10MB تغییر اعمال کردم روی برنامه و فقط میخوام همون 10MB تغییر اعمال شده رو بگریم نه اینکه بیام 500Mb بگریم اگه راهی هستش همون 10MB گرفت و همون رو روی برنامه نصب کرد خیلی بهتر هستش این طوری و فایل آپدیت شده روی ادامه برنامه نصب بیشه و برنامه رو به روز بیشه.
اگه به این صورت میتوانید سورس آپدیت قرار بدید خیلی ممنون میشم این طوری خیلی کار آمد تر هستش برنامه و بهتر هستش و شخصی که برنامه رو دارد راحت با حجم کم برنامه رو به روز میکنه. و استفاده میکنه.

sadeghjun
چهارشنبه 09 مرداد 1392, 21:26 عصر
سلام
davidrobert جان راست میگه همونجور که در پست اول گفتم این روش (یعنی جابجا کردن فایل EXE) جهت برنامه های سبک هست.
جهت نیل به خواسته شما باید برنامه را به صورت پلاگین بنویسیم (فایل های dll) در این صورت به راحتی فقط بخش تغییر کرده رو بروز می کنیم.
اما با این روش تناقضی ایجاد نمیشه. شما میتونید فایل های dll رو در فایل آپدیت قرار بدید.
پس باید برید دنبال dll نویسی.
اگه کسی بلده به ماهم یاد بده.

barnamenevisjavan
چهارشنبه 09 مرداد 1392, 22:56 عصر
شما با ان روشی که بلدی یک تاپیک بزن آموزش بده ما هم یاد بگیریم روش شما رو:بامزه:(ghompoz naya:لبخند:)

اولا : درست صحبت کردن رو یاد بگیرید.
دوما : هروقت لازم ببینم آموزشش رو میزنم
سوما : قبلا آموزشش رو توی سایتام قرار دادم
چهارما : بگو خب!

davidrobert
چهارشنبه 09 مرداد 1392, 23:13 عصر
سلام
davidrobert جان راست میگه همونجور که در پست اول گفتم این روش (یعنی جابجا کردن فایل EXE) جهت برنامه های سبک هست.
جهت نیل به خواسته شما باید برنامه را به صورت پلاگین بنویسیم (فایل های dll) در این صورت به راحتی فقط بخش تغییر کرده رو بروز می کنیم.
اما با این روش تناقضی ایجاد نمیشه. شما میتونید فایل های dll رو در فایل آپدیت قرار بدید.
پس باید برید دنبال dll نویسی.
اگه کسی بلده به ماهم یاد بده.
من بابت راهنمایتون من اول سعی میکنم DLL نویسی و یاد بگریم و بعد از اون با فایل شما کار میکنم که سورس شما رو به تونم روی ادامه برنامه نصب کنیم. تا کسی که برنامه من رو داره با مشکل بر خود نکنه. برای به روز کدن چون خرید فایل به روز برنامه رو هم میخوام پولی کنم طرف هر امکاناتی که میخواد به روز کنه اول هزینش رو پیدا بیشه بعد به روز بیشه سیستمش.

davidrobert
چهارشنبه 09 مرداد 1392, 23:24 عصر
سلام
davidrobert جان راست میگه همونجور که در پست اول گفتم این روش (یعنی جابجا کردن فایل EXE) جهت برنامه های سبک هست.
جهت نیل به خواسته شما باید برنامه را به صورت پلاگین بنویسیم (فایل های dll) در این صورت به راحتی فقط بخش تغییر کرده رو بروز می کنیم.
اما با این روش تناقضی ایجاد نمیشه. شما میتونید فایل های dll رو در فایل آپدیت قرار بدید.
پس باید برید دنبال dll نویسی.
اگه کسی بلده به ماهم یاد بده.
بفرمایید داداش این فیلم به روز رسانی برنامه طریقه به روز کردن برنامه رو گفته.http://www.daneshjooyar.com/%D8%A8%D9%87-%D8%B1%D9%88%D8%B2-%D8%B1%D8%B3%D8%A7%D9%86%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-c-%D8%A7%D8%B2-%D8%B7/

sadeghjun
چهارشنبه 09 مرداد 1392, 23:32 عصر
سلام
اگه کسی میتونه کمک کنه بسم الله. (شما هم همینطور barnamenevisjavan عزیز)
ما خوشحال میشیم.
ممنون

hojjatshariffam
چهارشنبه 09 مرداد 1392, 23:35 عصر
سلام
davidrobert جان راست میگه همونجور که در پست اول گفتم این روش (یعنی جابجا کردن فایل EXE) جهت برنامه های سبک هست.
جهت نیل به خواسته شما باید برنامه را به صورت پلاگین بنویسیم (فایل های dll) در این صورت به راحتی فقط بخش تغییر کرده رو بروز می کنیم.
اما با این روش تناقضی ایجاد نمیشه. شما میتونید فایل های dll رو در فایل آپدیت قرار بدید.
پس باید برید دنبال dll نویسی.
اگه کسی بلده به ماهم یاد بده.
ببینید، dll نویسی سخت نیست، پلاگین نویسی سخته
شما به راحتی می تونید سولوشن رو به چند پروژه تقسیم کنید ، و تو پروژه ی اصلی از بقیه پروژه ها که بصورت dll هستش یوزینگ کرده و استفاده کنید
و در آپدیت هم برید ورژن این dll ها رو چک کنید و فقط اونا رو کپی کنید
ولی پلاگین نویسی خسلی سخته ، من خودم رفتم دنبالش ، یکم پیچیدست ، باید یه سری پلاگین بنویسی که بتونه به برنامت اضافه بشه ، نه اینکه قسمت های پروژتو به dll تقسیم کنی بلکه dll هایی که قبلا تو برنامه نبود رو باید قابلیتی داشته باشی که خود برنامت به خودش اضافه کنه
این روش دوستمون یه روشه برای دانلود یک فایل از مسیر قبلا تعیین شده که می تونه ایده باشه برای همه

mesmslampanah
شنبه 12 مرداد 1392, 14:26 عصر
به نظرم همین برای شروع خیلی خوبه،مخصوصا برنامه هایی که ما مینویسیم حجمش خیلی کمه.تازه با کلی dllو component.من خیلی وقتشه دنبالشم ولی تا حالا براش جوابی ندیدم.

aliagamon
شنبه 12 مرداد 1392, 16:50 عصر
دوستان یه اموزش خیلی کوتاه در مورد ساخت dll و استفاده از اون نوشتم تا برای کسانی که با اپدیت برنامه های بزرگشون مشکل دارن استفاده کنند
لطفا به اینجا مراجعه نمایید (http://barnamenevis.org/showthread.php?412192-%D8%AA%DA%A9%D9%87-%D8%AA%DA%A9%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%B1-%DA%86%D9%86%D8%AF-dll-%D8%AF%D8%B1-%D8%AF%D9%88-%D8%AF%D9%82%DB%8C%D9%82%D9%87)

sadeghjun
شنبه 12 مرداد 1392, 19:31 عصر
فراموش کردی dll رو قرار بدی error میده:بامزه:


سلام اینم فایل dll:
108437

djhooman
پنج شنبه 17 مرداد 1392, 21:58 عصر
دوست عزیز ضمیمه پیوست شده قابل دانلود نیست

sadeghjun
دوشنبه 28 مرداد 1392, 23:13 عصر
دوست عزیز ضمیمه پیوست شده قابل دانلود نیست


سلام
لینک ها بررسی شدن .
هیچ مشکلی وجود نداره

HAMRAHSOFT.IR
یک شنبه 22 دی 1392, 08:05 صبح
سلام کامل تر نشد؟

forodo
یک شنبه 22 دی 1392, 09:40 صبح
سلام
من فایل Uodate.exe رو گذاشتم در فولدر Debug برنامه که اجرا بشه چون ارور می داد و این فایل رو پیدا نمی کرد.
برنامه بسته میشه و برنامه آپدیت باز می شه ولی روی دکمه آپدیت که کلیک می کنم هیچ اتفاقی نمی افته.
مشکل چیه؟

sadeghjun
جمعه 27 دی 1392, 01:11 صبح
سلام

در اینجا (http://barnamenevis.org/showthread.php?420340-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%D B%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%D9%87%D8%A7)نسخ جدیدترش رو آپ کردم.

ms-ninja
دوشنبه 08 اردیبهشت 1393, 11:17 صبح
سوالی داشتم من :

مثلان گر ما به برنامه فقط یک فرم اضافه کرده باشم موقع آپدیت فقط فرم اضافه میشه یا اینکه کل برنامه دوباره دانلود میشه

با تشکر

sadeghjun
یک شنبه 14 اردیبهشت 1393, 10:19 صبح
سوالی داشتم من :

مثلان گر ما به برنامه فقط یک فرم اضافه کرده باشم موقع آپدیت فقط فرم اضافه میشه یا اینکه کل برنامه دوباره دانلود میشه

با تشکر

سلام
بستگی داره شما چه فایلی رو آپدیت کنید.
به فرض اگه شما فایل exe رو که همه برنامتون رو شامل میشه آپدیت کنید کلش دوباره دانلود میشه ولی اگه برنامتون رو به صورت فایل های مجزا نوشته باشید، اینجوری فقط میتونید بخش خاصی از اون رو بروزرسانی کنید
در اینجا (http://barnamenevis.org/showthread.php?420340-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%D B%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%D9%87%D8%A7)نسخ جدیدترش رو آپ کردم.

HAMRAHSOFT.IR
سه شنبه 16 اردیبهشت 1393, 12:05 عصر
سلام سورس ورژن جدبد نیست؟

sadeghjun
شنبه 27 اردیبهشت 1393, 13:35 عصر
سلام سورس ورژن جدبد نیست؟

سلام
فعلا به دلایلی سورسش رو نمی ذارم ولی کامپوننت رو در اینجا میذارم میتونید با نرم افزار های دیدن کد فایل ها ، به کد اون دسترسی داشته باشید:
دانلود (http://barnamenevis.org/attachment.php?attachmentid=111146&d=1380049913)

h.gheidrlou
جمعه 28 خرداد 1395, 17:49 عصر
سلام دوستان و اساتید
من یک برنامه دارم بدون دیتا بیس و بصورت exe هست و به هیچ عنوان نمیتونم برنامه جانبی یا کمکی در کنارش قرار بدم و مجبورم هرکدی نیازه داخل خودش بنویسم
قصد دارم وقتی نسخه جدید روی سایت قراردادم و کاربر با اولین ورود متوجه بشه که باید برنامه ابدیت بشه
یا بدون نیاز به هشدار خودش ابدیت انجام بشه
روش کار را میگم و خواستار کمک برای ارائه سورس برای اون یا نمونه سورس مشابه هستم
کنترل نسخه برنامه درحال اجرا با برنامه قرارگرفته شده در سایت
درصورت یکسان نبودن نسخه ، نسخه جدید را دانلود کنه و چون فشرده بصورت rar هستش اون رو Extract Here کنه
و پس از دریافت فایل ، ذخیره در محل مورد نظر مثلا درایو سی و اکستراکت کردن آن ، نسبت به خارج شدن از برنامه فعلی شده و برنامه جدید را اجرا کنه
درانتها یاداوری میکنم من نمیتونم برنامه جانبی داشته باشم و برنامه بدون دیتا بیس هست
لطفا راهنمایی کنید
حالا من نمیدونم از کدوم یک از سورس ها استفاده کنم