كيفية تحويل مشروع وحدة التحكم بسيطة بسيطة في EXE المحمولة مع أحادي و Mkbundle؟

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

سؤال

أرغب في تحويل الأداة المساعدة Simple Pure .NET 2.0 وحدة التحكم في Exe محمولة يمكن أن أضعها فقط على عصا USB وتشغيلها دون الحاجة إلى القلق ما إذا كانت مكتبات CLR و Framework مثبتة على جهاز معين أم لا.

stackoverflow لديها بالفعل بعض المعلومات على استخدام كثرة الوحيدات و mkbundle. لإنشاء نوافذ مكتوبة ذاتيا من مشاريع .NET - ولكن ما أود الحصول عليه هو مضغوط ولكنه مفيد.

ما هي الحد الأدنى من الخطوات لتحقيق قابلة للتنفيذ من مشروع بسيط C # Visual Studio؟

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

المحلول

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

اقتباس من المقالة الأصلية (يرجى اتباع الخيط على المقالة الأصلية وكذلك):

Mkbundle: حزمة أحادية مع التطبيقات الخاصة بك

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

تحضير البيئة

تحتاج أولا إلى تثبيت أحدث أحادي اللون و Cygwin. تثبيت Mono واضح للغاية حتى لا تتمكن من تثبيت أي شيء. عند البدء في تثبيت Cygwin، انتقل إلى عرض كامل، ثم يرجى تضمين 4 حزم إضافية. هذه هي: دول مجلس التعاون الخليجي، مينج، مينغو زليب و Zlib.

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

رمز:

echo Mono version 2.4 Build 6
echo Prepending 'C:\PROGRA~1\Mono-2.4\bin' to PATH
PATH=C:\PROGRA~1\Mono-2.4\bin;%PATH%

chdir C:\cygwin\bin
bash --login -i

حزمة تطبيق مع أحادي

لذلك نحن الآن في موجه الأوامر، تشغيل وضع Cygwin هذا. لاحظ أن هذا ليس موجه DOS بعد الآن، و "Dir" لن يعمل بعد الآن. لسرد الملفات استخدم أمر Linux "LS". المجلد الذي تصفحه الآن هو مثل واحد أدناه. arek هو اسم المستخدم. رمز:

C:\cygwin\home\Arek

استعرض لهذا المجلد مع Explorer الخاص بك. الآن يمكنك نسخ 2 ملفات في هذا المجلد. 1st هو تطبيقك exe و 2nd هو الملف mono.dll (2 ميجابايت) يمكنك العثور عليها في مجلد أحادي. رمز:

C:\Program Files\Mono-2.4\bin

لسبب ما لا يعمل الإجراء بأكمله بأسماء الملفات الطويلة، لذلك قم بإعادة تسمية تطبيقك EXE. يجب أن تمتثل لهذا التامين القديم 8.3 القديم.

يتيح العودة إلى موجه الأوامر. تحتاج إلى أمر واحد فقط لحزم تطبيقك، وهنا بعض التفسير.

mkbundle هو برنامج داخل حزمة أحادية | -o Bundled1.exe يحدد كيفية تسمية EXE المجمعة أحادية يقول WinForm1.exe ما سيتم تضمينه، سيتم إدراج مكتبات أحادية الأبعاد على أي حال | --Deps ضروري على الرغم من أنني لست متأكدا مما يفعله | سوف -z سوف ضغط الإخراج exe كثيرا

رمز:

mkbundle -o Bundled1.exe Winform1.exe --deps -z

حتى الآن حصلت على Bundled1.exe الخاص بك، والذي يحتوي على تطبيقك الخاص مع أحادي نفسه. يجب أن لا تحتاج إلى أحادية ولا .NET لتشغيله. لاحظ أنه سيكون من 4 ميغابايت أو أكثر في الحجم. تلك المجمعة exes ليست خفيفة الوزن.

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