سؤال

هل من الممكن الحصول على مكونات Internet Explorer الخاصة بي لتحديث نفسه دون الحاجة إلى إلغاء تثبيت/إعادة التثبيت اليدوي باستخدام .MSI؟ لقد كنت أفكر في محاولة القيام بذلك برمجياً ، لكنني غير متأكد من ما يجب القيام به (تسجيل .dll's وما إلى ذلك).

شكرا ، ناثان

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

المحلول

فقط قم بتنزيل MSI الجديد في الخلفية. عندما يتم ذلك ، ادعى المستخدم وإذا وافقوا ، قم بتشغيل MSI الجديد.

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

يتمثل البديل في تنفيذ DLL Cold الذي يكشف جميع الواجهات التي ينفذها ملحقك وتسجيل هذا الرصيف باعتباره الواجهات التي يتم تحميلها. ثم يمكن لطفلك استدعاء LoadLibrary على DLL الحقيقي و thunk جميع المكالمات من خلال. عندما ترغب في تثبيت إصدار جديد ، يمكنك تنزيل DLL التنفيذ الجديد وتفريغ الكعب القديم ثم قم بتحميل الإصدار الجديد. إذا قمت بذلك بشكل صحيح ، فقد يكون ذلك غير عاجز للمستخدم ... تأتي الصعوبة عندما تحتاج DLL الجديدة ينفجر.

نصيحتي هي إبقاء الأمر بسيطًا حتى تضطر إلى الذهاب إلى هذه الأطوال.

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