Невозможно развернуть inte rnet Explorer c# BHO - PullRequest
0 голосов
/ 24 апреля 2020

Я написал BHO в c#. NET target framework: 4.6.1 BHO отлично работает в режиме отладки сообщества Visual Studio 2015. Но он не работает при сборке в режиме релиза (Цель платформы: любой процессор). Хотя я мог видеть надстройку на вкладке управления надстройками. IE версия: 11.175.18362.0 Версия обновления: 11.0.130 (KB4503259)

У меня есть функции регистрации / отмены регистрации COM, как показано ниже

        public static string RegBHO = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects";
        public static string RegCmd = "Software\\Microsoft\\Internet Explorer\\Extensions";

        [ComRegisterFunction]
        public static void RegisterBHO(Type type)
        {
            string guid = type.GUID.ToString("B");
            {
                RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(RegBHO, true);
                if (registryKey == null)
                    registryKey = Registry.LocalMachine.CreateSubKey(RegBHO);
                RegistryKey key = registryKey.OpenSubKey(guid);
                if (key == null)
                    key = registryKey.CreateSubKey(guid);
                key.SetValue("NoExplorer", 1);
                registryKey.Close();
                key.Close();
            }
        }

        [ComUnregisterFunction]
        public static void UnregisterBHO(Type type)
        {
            string guid = type.GUID.ToString("B");
            // BHO
            {
                RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(RegBHO, true);
                if (registryKey != null)
                    registryKey.DeleteSubKey(guid, false);
            }
            // Command
            {
                RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(RegCmd, true);
                if (registryKey != null)
                    registryKey.DeleteSubKey(guid, false);
            }
        }

Текущая система: Windows 10. I можно было видеть два экземпляра IE .One в Program Files (x86) и еще один в Program Files.

Команды событий после сборки, которые я использовал, как показано ниже (VS2015 открыт в режиме администратора)

"%windir%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /unregister "$(TargetDir)$(TargetFileName)"
"%windir%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"

"%windir%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /unregister "$(TargetDir)$(TargetFileName)"
"%windir%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"

Что я мог найти до сих пор. Мне может понадобиться зарегистрировать эту DLL с regsvr32.exe, который я не уверен. Но когда я собираюсь это сделать, это дает мне ошибку.

The module is loaded but could not find any entry point

Может ли кто-нибудь помочь мне выпустить этот BHO для обоих IE 64 & x86?

TIA:)

...