تحول .NET القابل للتنفيذ إلى غير قابل للتنفيذ الأصلي

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

سؤال

هل هناك أي نهج لتحويل تطبيق تم تطويره في .NET إلى ملف قابل للتنفيذ الأصلي (مصادر مدرجة)؟

يتطلب تثبيت الإطار بأكمله (ما يصل إلى .NET Framework 3.5 SP1) الكثير من الوقت - ليس دائما يتم تحديث أجهزة الكمبيوتر من الإنترنت. هل من الممكن استدعاء Ngen من أجل إنتاج ملفات تنفيذية مستقلة؟

شكرا

لا يوجد حل صحيح

نصائح أخرى

إنه غير متوفر بعد، لكن فريق مشروع أحادي يعمل على قبل وقت التحويل البرمجي هذا سيفعل ما تبحث عنه. النية هي أن تعمل أحادية على iPhone (مثل الوحدة) ولكن يجب أن تعمل لجميع المنصات.

يحرر: إنه يدعم أحادي X86، لكنني لست متأكدا مما إذا كان قد شملت الميزة التي حزم في الفصول التابعة حتى الآن (على الرغم من مقابلة سمعت، فهي مخططة)

تحرير 2: بما في ذلك التبعيات مدعومة حاليا، شكرا Dykam!

لا، لا يزال رمز Ngen'd يحتاج إلى الإطار - فإنه فقط تمدد التعليمات البرمجية في مجالاتك الخاصة. كما يتطلب الأمر إطار CLR نفسه.

أعتقد كثرة الوحيدات يحتوي على مترجم ثابت يخططون للاستخدام من أجل iPhone. لا أعرف ما إذا كان ذلك سيعمل على النوافذ كذلك.

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

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

هل نظرت إلى .NET 3.5 (SP1) ملف تعريف العميلب قد يساعد ذلك في تقليل متطلبات التثبيت الخاصة بك قليلا.

مع .NET 3.5 SP1، من الممكن تثبيت مجموعة فرعية أصغر من .NET Framework. إلقاء نظرة على هذه لقطة الشاشة:Visual Studio Project properties
(مصدر: WindowsClient.net.)

يمكنك استخدام Ngen لجعل تطبيقك قابل للتنفيذ الأصلي، لكنه سيظل يعتمد على الإطار .NET.

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

هناك عدد قليل من الشركات التجارية التي تقدم منتجات تجميع مجمعات .NET إلى EXTALONE EXES. Xenocode. و vmware thinapp.. وبعد لا رخيصة رغم ذلك.

يفعل بعض Obfuscator هذا، عليك أن تفعل ذلك مسبقا (قبل شحنه إلى مستخدميك). مثال على ذلك RemoteSoft's Salamander..

سوف تحتاج فقط إلى تثبيت إصدار .NET الذي تستهدفه على سبيل المثال .NET1.1 أو .NET2.0.

يحرر: إذا كنت بحاجة إلى استهداف الإصدار 3.5، فستحتاج إلى تثبيت كل من 2.0 و 3.5

ilmerge. (مجاني) يمكن أن الجمع بين العديد من التجمعات في واحد، لكنني لا أعتقد أنه يعمل مع الطوابع الأساسية الأساسية.

باختصار، أعتقد أنه إذا كنت ترغب في تشغيل برامج .NET، فستحتاج إلى تثبيت .NET Framework.

يوجد منتج تجاري يدعي أن يفعل ذلك هنا:

http://www.xenocode.com/obfuscator/

"نشر تطبيقات .NET بشكل آمن، مع عدم تثبيت .NET Framework"

لا فكرة عما عيب بهذا

Thinapp (Thinstall سابقا) من VMware. اعتاد أن تكون مكلفة للغاية، رغم ذلك.

http://www.vmware.com/products/thinapp/

المنتج الوحيد الذي تأسسنا لحل المشكلة في عام 2007 كان xenocode postbuild.. وبعد من ذلك الوقت نستخدم هذا المنتج بنجاح، نستخدم أيضا ميزات افتراضية جيدة جدا.

المشكلة الوحيدة هي أن الإصدار الذي اشتريته لا يدعم Windows 7 (حيث لا تحتاج إلى تثبيت .NET Framework لتشغيل البرنامج الذي تم تجميعه مع الإصدار <4.0). لذلك كتبت إلى xenocode. أجابوا

من أجل الحصول على دعم للفوز 7، يجب الترقية إلى أحدث إصدار من postbuild (يسمى الآن .NET Obfuscator.). WIN 7 ليس منصة مدعومة لما بعد Postbuild 2007.

لماذا لا ngen.exe؟ http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=vs.80).aspx.

انها تحولت .Net Programs إلى Native Programs أيضا ولديك بالفعل إذا كان لديك .NET Framework

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