كيف تقوم تصحيحات البرامج الصغيرة بتصحيح البرامج الكبيرة؟

StackOverflow https://stackoverflow.com/questions/145236

  •  02-07-2019
  •  | 
  •  

سؤال

الشيء الوحيد الذي كنت أتساءل عنه دائمًا هو كيفية عمل تصحيحات البرامج.يبدو أن الكثير من البرامج تقوم فقط بإصدار إصدارات جديدة على الثنائيات الخاصة بها والتي يجب تثبيتها على الإصدارات الأقدم، ولكن يبدو أن بعض البرامج (أنظمة التشغيل مثل Windows على وجه الخصوص) قادرة على إصدار تصحيحات صغيرة جدًا تصحح الأخطاء أو تضيف وظائف إلى البرامج الموجودة برمجة.

في أغلب الأحيان، لا يمكن للتصحيحات التي أراها أن تحل محل التطبيقات بأكملها، أو حتى الملفات الصغيرة المستخدمة داخل التطبيقات.بالنسبة لي يبدو أنه يتم تعديل الثنائي الفعلي.

كيف يتم تنفيذ هذه الأنواع من التصحيحات فعليًا؟هل يمكن لأي شخص أن يوجهني إلى أي موارد تشرح كيفية عمل ذلك، أم أن الأمر بسيط مثل استبدال المكونات الصغيرة مثل المكتبات المرتبطة في التطبيق؟

ربما لن أحتاج أبدًا إلى إجراء عملية نشر بهذه الطريقة، ولكن لدي فضول لمعرفة كيفية عملها.إذا كنت على حق في فهمي أن التصحيحات يمكنها تعديل أجزاء فقط من الملفات الثنائية، فهل من الممكن القيام بذلك في .NET؟إذا كان الأمر كذلك، فأنا أرغب في تعلمه نظرًا لأن هذا هو الإطار الذي أعرفه كثيرًا وأود أن أفهم كيف يعمل.

هل كانت مفيدة؟

المحلول

يتم تنفيذ ذلك عادةً باستخدام خوارزميات الفرق الثنائية - قم بتمييز الإصدار الأحدث الذي تم إصداره مقابل الكود الجديد.إذا كان المستخدم يستخدم الإصدار الأحدث، فستحتاج فقط إلى تطبيق الفرق.يعمل بشكل جيد ضد البرامج بشكل خاص، لأن التعليمات البرمجية المجمعة عادة ما تكون متشابهة إلى حد ما بين الإصدارات.وبطبيعة الحال، إذا لم يكن المستخدم يستخدم الإصدار الأحدث، فسيتعين عليك تنزيل كل شيء على أي حال.


هناك تطبيقان لخوارزميات الفرق الثنائية العامة: com.bsdiff و com.xdelta هي تطبيقات جيدة مفتوحة المصدر.لم أتمكن من العثور على أي تطبيقات لـ .NET، ولكن بما أن الخوارزميات المعنية لا تعتمد على النظام الأساسي، فلن يكون من الصعب جدًا نقلها إذا كنت ترغب في مشروع.

نصائح أخرى

إذا كنت تتحدث عن تصحيح تطبيقات Windows، فإن ما تريد إلقاء نظرة عليه هو ملفات .MSP.هذه تشبه .MSI ولكنها مجرد تصحيح وتطبيق.

نلقي نظرة على التصحيح والترقية في وثائق MSDN.

ما تفعله ملفات .MSP هو تحميل الملفات المحدثة لتثبيت التطبيق.عادةً ما يتم تحديث ملفات dll والموارد، ولكن يمكن أن تتضمن أي ملف.

بالإضافة إلى تصحيح التطبيق المثبت، يتم أيضًا تحديث ملفات الإصلاح الموجودة في C:\WINDOWS\Installer.ثم إذا اختار المستخدم "إصلاح" من إضافة / إزالة البرامج، فسيتم استخدام ملفات التصحيح المحدثة أيضًا.

أعتقد أن طريقة الفرق الثنائية التي ناقشها جون ميليكين يجب استخدامها في أنظمة التشغيل الأخرى.على الرغم من أنه يمكنك جعله يعمل في النوافذ، إلا أنه سيكون غريبًا إلى حد ما.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top