English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
أنا أقوم لأول مرة بتحديث برنامج Winform تلقائيًا، أبحث عن كود التحديث التلقائي على الإنترنت، ثم أجرب بعض الطرق التي رأيتها على الإنترنت لفترة طويلة، ولكن لا زلت أرتكب أخطاء، لذا أنفقت بعض الأموال لاستخدام خدمات فحص الأخطاء من قبل الآخرين لتحقيق النجاح، مما أود مشاركته هنا هو ما وصلت إليه بنفسي، وأرحب بأي تصحيحات قد تكون.
1، لأنني أطلق تحديثًا تلقائيًا من خلال IIS على الخادم، يجب أولاً نسخ البرنامج يدويًا إلى مجلد IIS على الخادم، القيام ببعض التغييرات، حتى يتمكن العميل من التحديث تلقائيًا. لذا، الخطوة الأولى هي عدم معرفة خادم IIS (نظامي windows8):
بالطريقة المذكورة أعلاه، بعد اختيارها، سيضيف النظام تلقائيًا هذه المعلومات، ثم:
بعد إتمام إنشاء الموقع، ضع الملفات التي تحتاج إلى تحديث في مجلد المسار المادي الذي اخترته.
2、بعد إتمام إنشاء الموقع، يجب أن نجد طرقًا لتحديثه، أي نقل ملفات الخادم إلى العميل، ولا أحتاج إلى شرح العملية والفكرة الأساسية، هناك الكثير في الإنترنت.
3、لم أستطع العثور على عنوان تحميل الكود التلقائي، إذا كنت بحاجة إليه، يرجى ترك بريدك الإلكتروني وسأرسله لك.
4、أنشئ مكتبة توليد الكود التلقائي، ثم استدعِ هذه المكتبة في برنامجك الرئيسي،并将 الشكلين التاليين وبرنامجك الرئيسي في نفس مجلد:
5、استدعاء البرنامج الرئيسي، يتم استدعاء 'أنا' قبل شاشة تسجيل الدخول في البرنامج الرئيسي، بسبب عدم قدرتي على التحكم في ما إذا كان البرنامج بحاجة إلى التحديث أو لا، لذا أحتاج إلى إنشاء عملية، وهي إنشاء جدول في قاعدة البيانات يشمل مجالين
كما في الشكل أعلاه، الحقل الجديد يحفظ الإصدار الأحدث، والقديم يحفظ الإصدار السابق.
using Mulaolao.Forms; using Mulaolao.Procedure; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using Mulaolao.Other; using System.Threading; using StudentMgr; using System.Data; using System.Data.Sql; using System.Data.SqlClient; namespace Mulaolao { static class Program { //private static Mutex mutex; /** /// نقطة الدخول الرئيسية للبرنامج. /** [STAThread] static void Main( ) { Application.EnableVisualStyles( ); Application.SetCompatibleTextRenderingDefault( false ); //قراءة الجدول DataTable da = SqlHelper.ExecuteDataTable( "SELECT * FROM R_UpdateforOrder" ); string news = "", old = ""; //إذا لم يكن هناك أي بيانات في الجدول فإنه يجب الدخول مباشرة دون تحديث if (da.Rows.Count < 1) { //إذا تم تسجيل الدخول بنجاح فإنه يجب إغلاق نافذة تسجيل الدخول وعرض نافذة الرئيسية Login lg = new Login( ); lg.StartPosition = FormStartPosition.CenterScreen; lg.ShowDialog( ); if (lg.DialogResult == DialogResult.OK) { Application.Run( new Form1( ) ); } else { return; } } else { //إذا كانت النسخة الجديدة والقديمة في الجدول متطابقة فإنه لا يحتاج إلى تحديث news = da.Rows[0]["New"].ToString( ); old = da.Rows[0]["Old"].ToString( ); if (news == old) { //إذا تم تسجيل الدخول بنجاح فإنه يجب إغلاق نافذة تسجيل الدخول وعرض نافذة الرئيسية Login lg = new Login( ); lg.StartPosition = FormStartPosition.CenterScreen; lg.ShowDialog( ); if (lg.DialogResult == DialogResult.OK) { Application.Run( new Form1( ) ); } else { return; } } else { //إذا كانت النسخة الجديدة والقديمة في الجدول غير متطابقة则需要将旧 النسخة تحديثها إلى النسخة الجديدة وتشغيل نافذة التحديث التلقائي SqlHelper.ExecuteNonQuery( "UPDATE R_UpdateforOrder SET Old=@Old", new SqlParameter( "@Old", news ) ); System.Diagnostics.Process.Start( Application.StartupPath + @"\AutoUpdate.exe" ); } } } } }
يمكنك القيام بالمستقبل، بعد الانتهاء من ذلك، سيتم تشغيل البرنامج الرئيسي بعد التحديث تلقائيًا.
6- لنلقي نظرة على المعلمات الرئيسية لملف UpdateList.xml:
هذا هو البرنامج الذي كتبته لتحديث الإصدار (المجال الجديد في الجدول) الذي أضفته إلى العميل، في مجلد تحديث الإصدار في الصورة الثالثة، قم بتشغيل هذا البرنامج قبل تحديث الخادم كل مرة، وتحديث إصدار قاعدة البيانات الأحدث:
هذه الطريقة التي أنفقت فيها المال لتحقيقها ليست متقدمة جدًا، لا أستطيع تحمل ذلك، لأنني لم أكن في هذا المجال لفترة طويلة، وليس لدي الكثير من الخبرة، ولا أستطيع تطوير شيء متقدم، أرحب بكم في تصحيح الأخطاء في الوقت المناسب. في الواقع، الخطوات الرئيسية هي: أولاً، قم بإنشاء خادم IIS --> قم بإنشاء موقع جديد --> ضع ملفات البرنامج الرئيسية، ملفات التحديث، وتحديثات الإصدار في نفس المجلد --> استدعاء البرنامج الرئيسي لبرنامج التحديث (يتمركز بشكل رئيسي على تحديد متى يتم إجراء التحديث التلقائي) --> قم بضبط إعدادات ملفات التحديث التلقائي --> قم بإنشاء جدول إصدارات في قاعدة البيانات --> قم بتمكين البرنامج على الخادم قبل التحديث، تعديل محتوى ملف xml التحديث التلقائي، تشغيل تحديث الإصدار --> انتظر حتى يحدث التحديث التلقائي للعميل
البيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع ملكية حقوق الطبع والنشر للمالك الأصلي، تم جمع المحتوى من قبل المستخدمين عبر الإنترنت بشكل متعاوني وتم تحميله بشكل مستقل، ولا يمتلك هذا الموقع حقوق الملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا اكتشفت محتوى يشتبه في انتهاك حقوق الطبع والنشر، فيرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # ب @) لإبلاغنا، وقدم الدليل على الدليل، وسيتم حذف المحتوى المزعوم الذي يشتبه في انتهاك حقوق الطبع والنشر على الفور.