/// <summary>
        /// Deinstallation
        /// </summary>
        /// <param name="savedState"></param>
        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            base.Uninstall(savedState);

            Assembly asm = Assembly.GetExecutingAssembly();

            string fullName   = asm.GetModules()[0].FullyQualifiedName;
            string dataFolder = Toolbar.AppFolder;

            //try
            //{
            //    Directory.Delete(dataFolder, true);
            //}
            //catch (Exception)
            //{
            //    throw new InstallException("Failed to delete folder");
            //}

            //try
            //{
            //    Registry.LocalMachine.DeleteSubKeyTree(IEToolbarEngine.AppKey);
            //    Registry.CurrentUser.DeleteSubKeyTree(IEToolbarEngine.AppKey);
            //}
            //catch (Exception)
            //{
            //}

            RegistrationServices regsrv = new RegistrationServices();

            if (!regsrv.UnregisterAssembly(this.GetType().Assembly))
            {
                throw new InstallException("Failed To Unregister for COM");
            }
        }
Beispiel #2
0
        /// <summary>
        /// Unregister assembly
        /// </summary>
        public void Uninstall()
        {
            if (!File.Exists(dll))
            {
                throw new FileNotFoundException("Target assembly is not found");
            }

            var key = Registry.CurrentUser.OpenSubKey(@"Software\Classes", true);

            try
            {
                var ret = RegOverridePredefKey(HKEY_CLASSES_ROOT, key.Handle.DangerousGetHandle());

                if (ret != ERROR_SUCCESS)
                {
                    throw new Exception($"Cannot override HKEY_CLASSES_ROOT (error code {ret})");
                }

                var rs  = new RegistrationServices();
                var asm = Assembly.LoadFrom(dll);
                rs.UnregisterAssembly(asm);
            }
            finally
            {
                RegOverridePredefKey(HKEY_CLASSES_ROOT, IntPtr.Zero);
                key.Close();
            }
        }
Beispiel #3
0
        static bool PerformAssemblyUnregistration(string strTargetAssemblyFilePath)
        {
            try
            {
                RegistrationServices registration_services = new RegistrationServices();
                Assembly             assembly = Assembly.LoadFrom(strTargetAssemblyFilePath);

                bool bRet = false;

                bRet = registration_services.UnregisterAssembly(assembly);

                if (bRet)
                {
                    Console.WriteLine(string.Format("Successfully unregistered assembly [{0:S}].", strTargetAssemblyFilePath));
                }
                else
                {
                    Console.WriteLine(string.Format("Failed to unregister assembly [{0:S}].", strTargetAssemblyFilePath));
                }

                return(bRet);
            }
            catch (Exception ex)
            {
                Console.WriteLine(string.Format("An exception occurred. Exception description : [{0:S}].", ex.Message));
                return(false);
            }
        }
        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            base.Uninstall(savedState);
            RegistrationServices regSrv = new RegistrationServices();

            regSrv.UnregisterAssembly(base.GetType().Assembly);
        }
Beispiel #5
0
        ///////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////
        public void RegisterSystemWebAssembly(int doReg, out IntPtr exception)
        {
            exception = IntPtr.Zero;

            try {
                Assembly             webAssembly = Assembly.GetExecutingAssembly();
                RegistrationServices rs          = new RegistrationServices();

                if (doReg != 0)
                {
                    if (!rs.RegisterAssembly(webAssembly, AssemblyRegistrationFlags.None))
                    {
                        exception = Marshal.StringToBSTR((new Exception(SR.GetString(SR.Unable_To_Register_Assembly, webAssembly.FullName))).ToString());
                    }
                }
                else
                {
                    if (!rs.UnregisterAssembly(webAssembly))
                    {
                        exception = Marshal.StringToBSTR((new Exception(SR.GetString(SR.Unable_To_UnRegister_Assembly, webAssembly.FullName))).ToString());
                    }
                }
            }
            catch (Exception e) {
                exception = Marshal.StringToBSTR(e.ToString());
            }
        }
Beispiel #6
0
        /// <summary>
        /// 从系统中卸载程序集
        /// </summary>
        /// <param name="assemblyName"></param>
        /// <returns></returns>
        public int UnRegistAssembly(string assemblyName)
        {
            if (!IsAdministrator())
            {
                return(RunAsAdmin(assemblyName, "-unregist"));
            }
            Assembly             assembly             = Assembly.UnsafeLoadFrom(assemblyName);
            RegistrationServices registrationServices = new RegistrationServices();

            try
            {
                bool flag3 = registrationServices.UnregisterAssembly(assembly);
                if (!flag3)
                {
                    return(-3);
                }
            }
            catch (UnauthorizedAccessException ex)
            {
                // 无权限
                Console.Error.Write(ex.Message);
                return(-1);
            }
            catch (Exception ex)
            {
                // 其他错误
                Console.Error.Write(ex.Message);
                return(-2);
            }
            return(0);
        }
Beispiel #7
0
        private void Regasm(bool register)
        {
            string file = base.Context.Parameters["Assembly"];

            if (string.IsNullOrEmpty(file))
            {
                throw new InstallException("Assembly not defined");
            }

            if (!File.Exists(file))
            {
                return;
            }

            RegistrationServices regsrv = new RegistrationServices();

            Assembly assembly = Assembly.LoadFrom(file);

            if (register)
            {
                regsrv.RegisterAssembly(assembly, AssemblyRegistrationFlags.SetCodeBase);
            }
            else
            {
                try
                {
                    regsrv.UnregisterAssembly(assembly);
                }
                catch
                {
                    //Exceptions are ignored: even if the unregistering failes
                    //it should notprevent the user from uninstalling
                }
            }
        }
Beispiel #8
0
        /// <summary>
        /// Registers the COM types in the specified assembly.
        /// </summary>
        public static List <System.Type> RegisterComTypes(string filePath)
        {
            // load assmebly.
            Assembly assembly = Assembly.LoadFrom(filePath);

            // check that the correct assembly is being registered.
            VerifyCodebase(assembly, filePath);

            RegistrationServices services = new RegistrationServices();

            // list types to register/unregister.
            List <System.Type> types = new List <System.Type>(services.GetRegistrableTypesInAssembly(assembly));

            // register types.
            if (types.Count > 0)
            {
                // unregister types first.
                if (!services.UnregisterAssembly(assembly))
                {
                    throw new ApplicationException("Unregister COM Types Failed.");
                }

                // register types.
                if (!services.RegisterAssembly(assembly, AssemblyRegistrationFlags.SetCodeBase))
                {
                    throw new ApplicationException("Register COM Types Failed.");
                }
            }

            return(types);
        }
Beispiel #9
0
        public bool UnregisterAsm(string filepath)
        {
            Assembly             asm    = Assembly.LoadFile(defaultCSMPath + filepath);
            RegistrationServices regAsm = new RegistrationServices();

            return(regAsm.UnregisterAssembly(asm));
        }
Beispiel #10
0
        public override void Uninstall(IDictionary savedState)
        {
            /*delete version number from registry*/
            try
            {
                Registry.LocalMachine.DeleteSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects\\mktoolbar");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }


            base.Uninstall(savedState);
            try
            {
                RegistrationServices regasm = new RegistrationServices();
                //bool bResult = regAsm.RegisterAssembly(this.GetType().Assembly,AssemblyRegistrationFlags.SetCodeBase);
                bool bresult = regasm.UnregisterAssembly(this.GetType().Assembly);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }
        protected override void OnAfterUninstall(IDictionary savedState)
        {
            base.OnAfterUninstall(savedState);
            Assembly             assembly             = Assembly.LoadFile(Assembly.GetExecutingAssembly().Location);
            RegistrationServices registrationServices = new RegistrationServices();

            registrationServices.UnregisterAssembly(assembly);
        }
Beispiel #12
0
 public static void UnregisterServer(Assembly assemblyToRegister)
 {
     if (ComUnregister != null)
     {
         RegistrationServices reg = new RegistrationServices();
         reg.UnregisterAssembly(assemblyToRegister);
         ComUnregister();
     }
 }
 public static void Unregister()
 {
     try
     {
         RegistrationServices svc = new RegistrationServices();
         svc.UnregisterAssembly(typeof(Program).Assembly);
     }
     catch (Exception e) { throw new ApplicationException(e.Message, e); }
 }
Beispiel #14
0
        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            base.Uninstall(savedState);
            RegistrationServices regsrv = new RegistrationServices();

            if (!regsrv.UnregisterAssembly(this.GetType().Assembly))
            {
                throw new InstallException("libronツールバーの登録解除に失敗しました");
            }
        }
Beispiel #15
0
        public override void Uninstall(IDictionary savedState)
        {
            base.Uninstall(savedState);

            // Call RegistrationServices.UnregisterAssembly to unregister the classes
            // in the current managed assembly.
            RegistrationServices regService = new RegistrationServices();

            regService.UnregisterAssembly(Assembly.LoadFrom(@"AobaContextMenu.dll"));
        }
Beispiel #16
0
        /// <summary>
        /// Unregister the assembly
        /// </summary>
        /// <param name="savedState">An IDictionary that contains the state of
        /// the computer after the installation was complete.</param>
        /// <exception cref="ArgumentException">The stateSaver parameter is a
        /// null reference (<b>Nothing</b> in Visual Basic).</exception>
        /// <exception cref="Exception">
        ///		An exception occurred in the BeforeInstall event handler of one
        ///		of the installers in the collection.
        ///		-or-
        ///		An exception occurred in the AfterInstall event handler of one
        ///		of the installers in the collection.</exception>
        public override void Uninstall(IDictionary savedState)
        {
            base.Uninstall(savedState);

            RegistrationServices regSrv = new RegistrationServices();

            System.Reflection.Assembly assembly = base.GetType().Assembly;

            regSrv.UnregisterAssembly(assembly);
        }
Beispiel #17
0
        public override void Uninstall(IDictionary savedState)
        {
            base.Uninstall(savedState);
            RegistrationServices regsrv = new RegistrationServices();

            if (!regsrv.UnregisterAssembly(this.GetType().Assembly))
            {
                throw new InstallException("Failed to unregister.");
            }
        }
        public static void UnregisterSelf()
        {
            RegistrationServices aRS          = new RegistrationServices();
            Assembly             thisAssembly = Assembly.GetExecutingAssembly();

            if (thisAssembly != null)
            {
                aRS.UnregisterAssembly(thisAssembly);
            }
        }
Beispiel #19
0
        public override void Uninstall(IDictionary savedState)
        {
            RegistrationServices regsrv = new RegistrationServices();

            if (!regsrv.UnregisterAssembly(typeof(ComInstaller).Assembly))
            {
                throw new Exception("Failed to unregister for COM interop.");
            }
            Utilities.DebugLine("[MsasSink] Unistalled COM assembly: " + typeof(ComInstaller).Assembly);
        }
Beispiel #20
0
        public override void Uninstall(IDictionary savedState)
        {
            base.Uninstall(savedState);

            // Call RegistrationServices.UnregisterAssembly to unregister the classes
            // in the current managed assembly.
            RegistrationServices regService = new RegistrationServices();

            regService.UnregisterAssembly(this.GetType().Assembly);
        }
Beispiel #21
0
        public override void Uninstall(IDictionary savedState)
        {
            base.Uninstall(savedState);
            RegistrationServices regsrv = new RegistrationServices();

            if (!regsrv.UnregisterAssembly(GetType().Assembly))
            {
                throw new InstallException("Failed to unregister HL7SDK.dll for COM Interop.");
            }
            this.Context.LogMessage("HL7SDK COM deregistration was completed.");
        }
Beispiel #22
0
        public override void Uninstall(IDictionary savedState)
        {
            base.Uninstall(savedState);

            var registrationServices = new RegistrationServices();

            if (!registrationServices.UnregisterAssembly(GetType().Assembly))
            {
                throw new InstallException("Failed to unregister for COM interop.");
            }
        }
Beispiel #23
0
        public virtual void Unregister(string dllPath, string hostProcessPath)
        {
            var asm = Assembly.LoadFrom(dllPath);

            ExecuteWithRegsitryKeyOverride(() =>
            {
                if (!_regService.UnregisterAssembly(asm))
                {
                    throw new ApplicationException("Can not unregister assembly");
                }
            });
        }
Beispiel #24
0
        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            System.Windows.Forms.MessageBox.Show("开始执行uninstall类自定义操作...");

            base.Uninstall(savedState);
            RegistrationServices regsrv = new RegistrationServices();

            if (!regsrv.UnregisterAssembly(this.GetType().Assembly))
            {
                throw new InstallException("Failed To Unregister for COM");
            }
        }
 public static void UninstallRegistry(IDictionary savedState, Assembly asm)
 {
     if (CommonUtils.Is64BitOperatingSystem())
     {
         RegAsm64("/u", asm);
     }
     else
     {
         RegistrationServices regsrv = new RegistrationServices();
         regsrv.UnregisterAssembly(asm);
     }
 }
Beispiel #26
0
 /// <summary>
 /// When overridden in a derived class, restores the pre-installation state of the computer.
 /// </summary>
 /// <param name="savedState">An <see cref="T:System.Collections.IDictionary"/> that contains the pre-installation state of the computer.</param>
 public override void Rollback(IDictionary savedState)
 {
     try
     {
         RegistrationServices regServices = new RegistrationServices();
         regServices.UnregisterAssembly(GetType().Assembly);
     }
     catch (Exception) { }
     finally
     {
         base.Rollback(savedState);
     }
 }
Beispiel #27
0
        public static void UnregisterForInterop(Assembly assembly)
        {
            if (assembly == null)
            {
                throw new System.ArgumentNullException("assembly");
            }

            // Pass on to the registration services.

            RegistrationServices services = new RegistrationServices();

            services.UnregisterAssembly(assembly);
        }
Beispiel #28
0
 /// <summary>
 /// When overridden in a derived class, removes an installation.
 /// </summary>
 /// <param name="savedState">An <see cref="T:System.Collections.IDictionary"/> that contains the state of the computer after the installation was complete.</param>
 public override void Uninstall(IDictionary savedState)
 {
     try
     {
         RegistrationServices regServices = new RegistrationServices();
         regServices.UnregisterAssembly(GetType().Assembly);
     }
     catch { }
     finally
     {
         base.Uninstall(savedState);
     }
 }
Beispiel #29
0
        /// <summary>
        /// Разрегистрация сборки
        /// </summary>
        /// <param name="asmFile">Ссылка на файл сборки</param>
        /// <param name="typeLib">Флаг разрегистрации библиотеки типов *.tlb, зарегистрированной ранее вместе со сборкой</param>
        /// <returns>Возвращает результат операции: Uninstalled или Fail</returns>
        public static RegistrationResult UnInstall(FileInfo asmFile, bool typeLib = true)
        {
            var  assembly    = ResolveAssembly(asmFile);
            var  services    = new RegistrationServices();
            bool unregResult = services.UnregisterAssembly(assembly);

            if (!IsAssemblyImportedFromCom(assembly))
            {
                UnRegisterMainTypeLib(asmFile);
            }

            return(unregResult ? RegistrationResult.Uninstalled : RegistrationResult.Fail);
        }
        /// <summary>
        /// This is called when installer's custom action executes and
        /// registers the toolbar which is extending a bandobject, as COM server.
        /// </summary>
        /// <param name="stateSaver"></param>
        public override void Uninstall(System.Collections.IDictionary savedState)
        {
            base.Uninstall(savedState);

            OpenImageMenuExt.UnRegisterMenuExt();

            RegistrationServices regsrv = new RegistrationServices();

            if (!regsrv.UnregisterAssembly(this.GetType().Assembly))
            {
                throw new InstallException("Failed To Unregister for COM");
            }
        }