ما هي الأداة المجانية الجيدة لإنشاء ملف استخراج ذاتي قابل للتنفيذ مع إصدار ملف مضمن؟[مغلق]

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

سؤال

حسب الإجابات هذا سؤال، لا أستطيع تضمين إصدار ملف في ملف .msi الخاص بي.

يجب أن يكون لدى برنامج التثبيت الذي أقدمه للعميل إصدار ملف.

لذلك، ما أريد القيام به هو إنشاء ملف قابل للتنفيذ ذاتي الاستخراج يحتوي على ملف msi وsetup.exe الذي تم إنشاؤه بواسطة Visual Studio، ووضع إصدار الملف على هذا الملف القابل للتنفيذ ذاتي الاستخراج بدلاً من ذلك.

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

كل ما استطعت أن أجده هو هذا, ، والذي يبدو رائعًا، لكنني أفضل البديل المجاني.

هل يوجد لدى احد أي اقتراحات؟

يحرر: للتوضيح، أنا لا أتطلع حقًا إلى إنشاء برنامج تثبيت - لدي بالفعل مشروع إعداد VS.أريد فقط مستخرجًا ذاتيًا (مثل برنامج WinZip الذي يمكن إنشاؤه).لذلك، يقوم المستخدم بتمرير الماوس فوق Setup-Blorgbeard2008.exe، ويرى "الإصدار:1.0.0.0".يقوم المستخدم بالنقر المزدوج عليه، ويقوم باستخراج ملف setup.exe وsetup.msi بصمت إلى مجلد مؤقت، ثم يقوم بتشغيل setup.exe.يرى المستخدم بعد ذلك شاشة التثبيت العادية ويستمر كالمعتاد.

تعديل آخر: حسنًا، لم أعد بحاجة إلى مستخرج ذاتي، حيث تمت الإجابة على سؤالي الآخر الآن.وهذا يجعل هذا السؤال برمته غير ذي صلة إلى حد كبير.هو - هي كان لا يزال من الجيد أن تكون قادرًا على توزيع ملف واحد فقط، بدلاً من ملف setup.exe وsetup.msi.

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

المحلول

يمكن لـ NSIS القيام بذلك.

جزء من بيئة البناء لدينا هو برنامج نصي يقوم بإخراج معلومات الإصدار إلى ملف "رأس" مصدره برنامج NSIS النصي.يجب أن تكون قادرًا على استخدام شيء مشابه لتضمين معلومات الإصدار الخاصة بك ويمكنك بالتأكيد الحصول على NSIS لتشغيل الملف بعد الاستخراج.

في الواقع، عندما يقوم NSIS بإنشاء حزمة التثبيت...قد تكون قادرًا على تبسيط أسلوبك كثيرًا.

نصائح أخرى

من المستغرب قليلاً أنه لم يتم إدراجه هنا بعد: آي إكسبرس هي أداة بسيطة تأتي مع نظام التشغيل Windows ويمكن استخدامها لإنشاء أدوات تثبيت ذاتية الاستخراج.

عند تنزيل Windows SDK، يوجد MSIStuff.exe وSetup.exe حيث يوفر MS التعليمات البرمجية المصدر لتجميعها.سوف يقوم MSIStuff "بحشو" MSI الذي تقدمه إليه في Setup.exe.ويمكن بعد ذلك توزيع Setup.exe.

مزيد من المعلومات في http://support.microsoft.com/kb/888473

سلبيات:

  • سيتعين عليك إعادة ترجمة Setup.exe باستخدام إصدار منتجك في كل مرة يتوفر فيها إصدار جديد من منتجك (MSI).
  • لست متأكدًا من الترخيص الذي يتم توزيع مصدر Setup.exe بموجبه.

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

كمرجع، إليك النص الذي استخدمته:

VIProductVersion              "1.0.0.0" ; set version here
VIAddVersionKey "FileVersion" "1.0.0.0" ; and here!
VIAddVersionKey "CompanyName" "MyCompany"
VIAddVersionKey "LegalCopyright" "© MyCompany"
VIAddVersionKey "FileDescription" "Installer for MyProgram"
OutFile MyProgram-Setup.exe

SilentInstall silent

Section Main    
    SetOutPath $TEMP
    SetOverwrite on
    File SharedManagementObjects.msi
    File SQLSysClrTypes.msi
    File Release\Setup.exe
    File Release\Setup.msi
    ExecWait 'msiexec /passive /i "$OUTDIR\SharedManagementObjects.msi"'
    ExecWait 'msiexec /passive /i "$OUTDIR\SQLSysClrTypes.msi"'
    Exec     '"$OUTDIR\Setup.exe"'
SectionEnd

دوت نت زيب يمكن أن ينتج أرشيفًا ذاتي الاستخراج، يتضمن رقم الإصدار الذي يظهر عند تمرير الماوس فوق Windows Explorer.يتضمن SFX أيضًا اسم المنتج ووصفه وإصداره وحقوق الطبع والنشر التي تظهر في عرض الخصائص/التفاصيل في Windows Explorer.

يمكن لـ SFX تشغيل أمر تحدده بعد الاستخراج.

يمكن كتابة إنشاء SFX من بوويرشيل، أو يمكنك كتابة برنامج للقيام بذلك، باستخدام VB.NET، C#، VBScript أو JavaScript، إلخ.

للحصول على عناصر رقم الإصدار، تحتاج على الأقل إلى الإصدار 1.9.0.26 من DotNetZip.

nsis يبدو وكأنه خيار جيد

يحاول inno-setup

قم بتعيين توجيه VersionInfoVersion إلى رقم الإصدار الثنائي الخاص بك، على سبيل المثال.

VersionInfoVersion = 1.1.0.0

سيظهر هذا في نص وخصائص تمرير الماوس

جاري التجربة هنا:

معلومات الإصدار المنبثق:http://screencast.com/t/LVqvLfxCj3g

من معلومات تجميع Visual Studio:http://screencast.com/t/fqunlMNh13

تم التثبيت باستخدام ملف MSI القديم العادي.

وذلك بإضافة "الإصدار:1.5.0" في خاصية الوصف لمشروع الإعداد، ويظهر رقم الإصدار أيضًا في ملف MSI كما يلي:http://screencast.com/t/A499i6jS

بشكل عام، أقوم فقط بإعادة تسمية ملف MSI، مثل DataMonkey_1_5_0.msi لأغراضي الخاصة.

لمعلوماتك، لا يكون استخدام مستخرج ذاتي DotNetZip منطقيًا إذا كنت تستخدم bootstrapper setup.exe للتحقق من تثبيت .NET (يتطلب مستخرج DotNetZip الذاتي .NET 2.0).

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