سؤال

هل تتساءل فقط عما إذا كان من الممكن تجميع تطبيق .NET إلى رمز الجهاز الأصلي مسبقًا؟أنا لا أخطط للقيام بذلك حتى لو استطعت؛أنا مجرد فضولي.

شكرًا

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

المحلول

ويمكنك استخدام منشئ الصورة لترجمة ذلك في وقت مبكر، ولكن هذا لا يزال يعتمد على .NET Framework. السمندر Remotesoft في (التطبيق التجاري) يمكن أن تجعل التطبيق-الإطار أقل.

نصائح أخرى

يمكنك ترجمة IL إلى ثنائيات أصلية.هناك منتجات تفعل ذلك.

السؤال الأكبر هو هل يجب عليك...

إذا كنت تريد إزالة جميع تبعيات dot net للتشغيل بدون dot net

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

إذا كنت ترغب في الحصول على وقت JIT أسرع

يمكنك أيضًا استخدام NGen لتجميعه إلى ملف ثنائي أصلي، ولكن لا يزال لديك كل التبعيات على dot net.لا تزال الأجهزة المستهدفة بحاجة إلى الإطار، وما إلى ذلك.

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

لا يمثل وقت JIT أكبر عنق الزجاجة في معظم التطبيقات.إنه تحميل مكتبات الإطار والمتطلبات الأخرى ذات الصلة.

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

لقد علمت مؤخرًا أيضًا أنه لا يمكنك إنشاء تطبيق NGEN وتتوقع منه الاستفادة من وحدة المعالجة المركزية كما هو الحال مع JIT.عند تشغيل NGEN، يتم دائمًا تحسين الإخراج لـ PentiumPro لسبب ما، ولن يستفيد من أشياء مثل SSE وSSE2 وما إلى ذلك.لذلك أود أن أقول إن هذا يزيل NGEN كحالة استخدام معقولة.

منشئ الصورة الأصلية يمكن استخدامها ل" قبل JIT "صورة، لذلك هو المتوفرة على القرص في شكل الأصلي للحد من تطبيق وقت البدء.

ومونو لديه في وقت مبكر (عثمان) مترجم التي يمكن أن تنبعث من التعليمات البرمجية الأصلية.

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