c# - لغة - لا يمكن الحصول على بهو العمل في 64 بت




what is php language (2)

Regasm.exe (أداة تسجيل الجمعية) هنا

تحقق من إعدادات المشروع الخاص بك لتجميع كما 64BIT والتحقق من إصدار إي كذلك. وتشغيله في وضع المسؤول.

رمز الخاص بك هو الكمال. فقط يتم خلط إعدادات النظام وتكوينات التجميع،

أيضا إلقاء نظرة على هذا الإعداد https://answers.microsoft.com/en-us/ie/forum/ie11-windows_7/enable-64-bit-processes-in-ie-11/212270df-cc35-4e09-89e4 -13b9da1bb6a7؟ المصادقة = 1

نأمل أن يكون هذا سوف تساعدك على الخروج !!

أنا أعمل على IE11 متصفح كائن مساعد. حصلت عليه العمل عند بناء عليه في x86. المشكلة هي، أريد أن استخدام المشروع على x64 ملحق بهو لا يعمل عندما بنيت على x64.

يظهر التمديد في شاشة إنترنيت إكسبلورر الإضافية، ولكن لا يظهر برنامج منبثق جافا سكريبت.

يتم تسجيل دل باستخدام إصدار x64 من ريجاسم عبر موجه الأوامر فيسوال ستوديو كمسؤول، مع / بدون /codebase و /tlb ولكن من دون نتيجة. تتم إضافة مفتاح التسجيل بنجاح في السجل الخاص بي ولكن بهو ببساطة لا تعمل في إي. لقد حاولت أيضا وضع الملفات في مجلد فرعي من ملفات البرنامج، ولكنها ببساطة لا تعمل.

عند تشغيل إي الخاص بي في وضع المحمية المحسن مدير الإضافة يظهر أن بلدي بهو غير incompatible ، ولكن من دون إب يظهر enabled حتى على الرغم من أنها لا تعمل.

أود الحصول على بهو يعمل على x64.

أنا أيضا حاولت هذا "مرحبا العالم" مشروع بهو ولكن عند تغييره للبناء على x64 بدلا من x86 تحدث نفس المشكلة.


يبدو أنه لا يعمل للجميع، لذلك، سأصف ما فعلته لجعله يعمل.

1) تحميل المشروع عينة من هنا: https://github.com/reinaldo13/ie-bho-extension

2) تعديل BHO.cs RegisterBHO(...) الأسلوب في BHO.cs

من عند:

RegistryKey ourKey = registryKey.OpenSubKey(guid);

إلى:

  RegistryKey ourKey = registryKey.OpenSubKey(guid, true); //we want to write the registry

3) تجميع المشروع ل أنيكبو : خصائص المشروع، حدد أنيكيبو لهدف المنصة.

4) إنشاء .bat مثل هذا، والتكيف يو المسار الخاص بك، ونسخ ذلك جانبا دلك الإخراج الخاص بك:

 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" ieextension.dll /codebase
 "c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" ieextension.dll /codebase   

وهذا تسجيل دلل ل x86 و x64. هذا إلزامي أن يكون كل إصدار مسجل خلاف ذلك إي لن ترغب في ذلك (أنها سوف يشكو التمديد هو 'غير متوافق') لأنه لن يكون قادرا على بدء تشغيله اعتمادا على إعدادات إي الخاص بك. ملاحظة افترض أنه يمكن أن يكون لديك ملفين مختلفين لكل إصدار ولكن لا يحتاج أنيكيبو .NET إلى ذلك.

5) تشغيل ذلك .bat كمسؤول، وهنا هو الإخراج عندما أفعل هذا:

"c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" ieextension.dll /codebase
Microsoft .NET Framework Assembly Registration Utility version 4.7.2046.0
for Microsoft .NET Framework version 4.7.2046.0
Copyright (C) Microsoft Corporation.  All rights reserved.

RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.
Types registered successfully
"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" ieextension.dll /codebase
Microsoft .NET Framework Assembly Registration Utility version 4.7.2046.0
for Microsoft .NET Framework version 4.7.2046.0
Copyright (C) Microsoft Corporation.  All rights reserved.

RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it.
Types registered successfully

6) تشغيل iexplore.exe . قد يعمل وفقا للإعدادات الخاصة بك (يعرض رسالة "هولا !!!")، ولكن على أي حال، انتقل إلى القائمة أدوات / خيارات إنترنت / برامج / إدارة الوظائف الإضافية، وهذا ما أراه:

إذا تم تعطيل الإضافة، يجب أن تتمكن من تمكينها (وإعادة تشغيلها).

إذا كان لا يعمل (افتراضيا يجب أن لا)، تأكد من أنك قد حددت "تمكين عمليات 64 بت من أجل وضع المحمية المحسن *" (يحتاج إلى إعادة تشغيل). بالنسبة لي الرسالة غير صحيحة، يجب أن تقول فقط "تمكين عمليات 64 بت" ...





bho