سؤال

هل يعرف شخص ما كيف يمكنني تضمين ملف EXE في DLL؟

لدي أداة هي ملف EXE الذي أسميه من رمز C #.

الشيء هو أنني أريد أن أحصل على 1 DLL تحتوي على هذه الأداة (ملف exe) و DLL Containg Code C #.

هل من الممكن تضمين ملف exe هذا داخل الموارد؟

تشك مقدما

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

المحلول

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

أي IDE / اللغة التي تستخدمها؟

تعديل

آسف! لقد ذكرت أنك تستخدم C #.

  1. إضافة ملف مورد لك التطبيق (انقر بزر الماوس الأيمن تطبيق IDE وحدد "إضافة عنصر جديد".
  2. استخدم شريط الأدوات في محرر الموارد لإضافة ملف موجود.
  3. ثم استخراج EXE كلما كان مطلوبا عن طريق رمز الاتصال بشيء ما: system.io.file.writeallbytes (@ "c: myexe "، resource1.myexe)؛

نصائح أخرى

يستحق الرعي في الاعتبار أن استخداماتك قد لا تكون سعيدة للغاية في القيام بذلك. تضمين ملف قابل للتنفيذ ليس لديهم سيطرة في DLL التي ستستخرجها وتشغيلها ربما تجعل الناس تقلقين بشأن تشغيل طروادة على جهازهم.

من الأفضل ترك .EXE في نظام الملفات وكن شفافا حول ما يفعله التطبيق الخاص بك.

يمكنك تحميل تجميع من البايت []. يمكن الحصول على ذلك عبر المظهر المنظحي من مورد مضمن.

قد يكون البديل لم يضرب. exe نفسه، ولكنه تضمين وظائفه في DLL، واستخدام rundll32 [1] لتنفيذها.

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

يصبح هذا مشكلة لزجة خاصة إذا كان سيتم استخدام تجميعها .NET عبر شبكة بدلا من محرك أقراص محلي - فهناك كل أنواع تكوينات أمان .NET قد تمنع هذا من العمل بشكل صحيح.

خيار آخر، وعدم معرفة تفاصيل مشروعك، تأخذ هذا مع حبة الملح: إضافة ملف .exe.readme إلى تثبيت الخاص بك يصف لأي مستخدمين فضوليين أو يفعل الناس لماذا لا يمكن تنفيذها في دليل التثبيت :)

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