it-swarm.asia

هل من الممكن تنفيذ ملف بعد الاستخراج من أرشيف أرشيف الاستخراج الذاتي (SFX) 7-Zip؟

أحاول إنشاء تطبيق مضغوط قادر على النشر.

أقوم حاليًا بأخذ مجموعة من الملفات التي نشرتها من IDE (تطبيق Visual Studio 2008 - WPF المنشور) وضغطها في أرشيف 7-Zip SFX.

لقد سألني المستخدمون عما إذا كان يمكنهم "تثبيت نقرة واحدة" من ex-7-Zip. هناك قائمة معلمات عندما أقوم بإنشاء الأرشيف. هل هناك طريقة لتعيين مجموعة من المعلمات لاستدعاء المثبت القابل للتنفيذ الذي يتم استخراجه؟

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

37
Mike G

وحدات SFX للتركيب

يتم تضمين وحدات SFX للمثبتات في حزمة خارجية (7z_extra). يمكنك تنزيل هذه الوحدات من www.7-Zip.org. تسمح لك وحدات SFX الخاصة بالمثبتات (7zS.sfx و 7zSD.sfx) بإنشاء برنامج التثبيت الخاص بك. تقوم هذه الوحدة باستخراج الأرشيف إلى مجلد temp للمستخدم ، وتشغيل برنامج محدد ، وإزالة ملفات temp بعد انتهاء البرنامج. يجب إنشاء أرشيف يعتمد الاستخراج الذاتي للمثبتين على أنه ينضم إلى 3 ملفات: SFX_Module و Installer_Config و 7z_Archive. بالإضافة إلى ذلك ، يُسمح بملف اختياري ، Installer_Config. يمكنك استخدام الأمر التالي لإنشاء أرشيف استخراج ذاتي للمثبت:

copy /b 7zS.sfx + config.txt + archive.7z archive.exe

يمكن تحقيق حجم حزمة التثبيت الصغير على النحو الأمثل ، إذا كانت ملفات التثبيت غير مضغوطة قبل تضمينها في أرشيف 7z.

-y التبديل لوحدة المثبت يحدد استخراج الوضع الهادئ.

المصدر

لتحديد برنامج لتشغيله بعد التفريغ ، استخدم السمة RunProgram. على سبيل المثال ، فيما يلي نموذج config.txt الذي يعمل على Install.cmd بعد التفريغ. سيكون دليل العمل الحالي هو المستوى الأعلى لشجرة archive.7z الموسعة ، لذلك يجب أن يتواجد Install.cmd.

;[email protected]@!UTF-8!
Title="Your Title"
RunProgram="Install.cmd"
;[email protected]@!

يتم تمرير الوسائط التي تم تمريرها إلى الملف القابل للتنفيذ SFX إلى البرنامج النصي Install.cmd.

33
Molly7244

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

لقد كنت مرتبكًا كما كنت ، يرجى قراءة منشور المدونة الخاص بي الذي يقدم إرشادات خطوة بخطوة حول كيفية تحقيق ما نشرته Molly7244.

كيفية إنشاء أرشيف استخراج ذاتي يقوم بتشغيل setup.exe الخاص بك باستخدام مفتاح 7Zip -sfx

لقد تم لفت انتباهي إلى أن الروابط يمكن أن تصبح ميتة ، فإليك الخطوات من مدونتي

الخطوة 1 - إعداد مجلد التثبيت الخاص بك

لتسهيل ذلك ، قم بإنشاء مجلد c:\Install. هذا هو المكان الذي سنقوم بنسخ جميع الملفات المطلوبة.

الخطوة 2 - 7Zip المثبت الخاص بك

  1. انتقل إلى المجلد الذي يحتوي على .msi و setup.exe الخاص بك
  2. حدد كل من .msi و setup.exe
  3. انقر بزر الفأرة الأيمن واختر 7Zip -> "إضافة إلى الأرشيف"
  4. اسم الأرشيف الخاص بك "Installer.7z" (أو اسم من اختيارك)
  5. انقر فوق موافق
  6. يجب أن يكون لديك الآن "Installer.7z".
  7. انسخ ملف .7z هذا إلى دليل c:\Install

الخطوة 3 - احصل على وحدة تمديد 7z-Extra sfx

تحتاج إلى تنزيل 7z-Extra.

  1. اتبع هذا الرابط للذهاب إلى تنزيل 7Zip
  2. تحتاج إلى تنزيل الإصدار 9.20 (مثل @ May-2015) لأن الإصدار التجريبي لا يحتوي على الملفات الصحيحة.
  3. رابط تنزيل مباشر .
  4. استخراج الملفات الإضافية 7Zip
  5. انسخ الملف "7zS.sfx" إلى c:\Install

الخطوة 4 - إعداد config.txt الخاص بك

أوصي باستخدام NotePad ++ لتحرير هذا الملف النصي حيث ستحتاج إلى الترميز في UTF-8 ، الإرشادات التالية تستخدم المفكرة ++.

  1. باستخدام مستكشف Windows ، انتقل إلى c:\Install
  2. انقر بزر الماوس الأيمن واختر "ملف نص جديد" وقم بتسميته config.txt
  3. انقر بزر الماوس الأيمن واختر "تحرير باستخدام NotePad ++
  4. انقر على "قائمة الترميز" واختر "ترميز في UTF-8"
  5. أدخل شيئا مثل هذا:

    ;[email protected]@!UTF-8!
    Title="SOFTWARE v1.0.0.0"
    BeginPrompt="Do you want to install SOFTWARE v1.0.0.0?"
    RunProgram="setup.exe"
    ;[email protected]@!
    

عدل هذا الاستبدال [SOFTWARE v1.0.0.0] باسم المنتج الخاص بك. توجد هنا ملاحظات حول المعلمات والخيارات الخاصة بملف الإعداد

حاجز

يجب أن يكون لديك الآن مجلد "c:\Install" مع الملفات الثلاثة التالية:

  1. Installer.7z
  2. 7zS.sfx
  3. config.txt

الخطوة 5 - إنشاء الأرشيف

هذه التعليمات التي وجدتها على الويب ، لكنها لم توضح أيًا من الخطوات الأربع المذكورة أعلاه.

  1. افتح نافذة cmd ، نافذة + R -> cmd -> اضغط على enter
  2. في نافذة الأوامر ، اكتب ما يلي

    cd \
    cd Install
    copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
    
  3. ابحث في c:\Install وسترى الآن أن لديك MyInstaller.exe

    لقد انتهيت

قم بتشغيل المثبت

انقر نقرًا مزدوجًا على MyInstaller.exe وسوف يتم عرضه مع رسالتك. انقر فوق "موافق" وسيتم تشغيل setup.exe.

ملاحظة ملاحظة على الأتمتة

الآن بعد أن كنت تعمل هذا في دليل c:\Install ، أود أن أقوم بإنشاء ملف "Install.bat" وأضع فيه نسخة البرنامج النصي.

copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe

يمكنك الآن تحرير Install.bat وتشغيله في كل مرة تحتاج فيها إلى إعادة إنشاء إصدار جديد من حزمة النشر.

20
jcrawfor74

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

7
Matthew Talbert

بناءً على إجابة jcrawfor74 ، إليك بعض المعلومات الإضافية:

بدلاً من 7zS.sfx ، يمكنك أيضًا استخدام الملف 7zS2.sfx . هذا إصدار أصغر كثيرًا (28 كيلو بايت مقابل 140 كيلو بايت) ولكنه لا يدعم ملف config.txt. لذلك يمكنك تركها في أمر copy. إذا كنت ترغب فقط في إنشاء برامج نصية صغيرة للتكوين ، يتيح لك ذلك إنشاء ملفات EXE أصغر.

وحدة SFX الأصغر لا تطرح أي أسئلة. يستخرج الملفات إلى مجلد مؤقت كوحدة نمطية أخرى ، ثم يعثر على مرشحين تنفيذيين. وفقًا للشفرة المصدرية (المتوفرة أيضًا على صفحة التنزيلات) ، في C\Util\SfxSetup\SfxSetup.c ، يزن الملفات بشكل مختلف بناءً على الاسم والامتداد ، ثم يختار أعلى ملف تسجيل.

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

إذا كنت بحاجة إلى وحدة SFX لا تطلب أذونات المسؤول ، فيمكنك إعادة إنشاء وحدة SFX من المصدر ، أو تحرير معلومات إصدار الملف الخاص بها بشكل أبسط باستخدام محرر مورد مثل هذا . فقط قم بإزالة "برنامج الإعداد" Word من حقل FileDescription ، في حالة برنامج Resource Hacker المذكور ، قم بتجميع الملف وحفظ ملف EXE. يمكنك أيضًا تنفيذ هذه الخطوة على ملف 7zS.sfx أو 7zS2.sfx مباشرةً والاحتفاظ به في مكان ما حتى تتمكن من استخدامه لإنشاء حزم SFX غير مرتفعة. ويمكنك استخدام هذا لتخصيص معلومات إصدار الملف بالكامل لوضع اسم المنتج الخاص بك أو أي شيء فيه يصف الحمولة النافعة.

1
ygoe