示例#1
0
        internal void RemoveAddIn(string addinCode)
        {
            AssemblyInformation asm = asmDAO.GetAssemblyInformation(addinCode);

            if (asm != null)
            {
                List <AssemblyInformation> dependencies = asmDAO.GetDependencies(asm);
                foreach (var dep in dependencies)
                {
                    if (asmDAO.GetDependencyCount(dep) == 1)
                    {
                        asmDAO.RemoveAssembly(dep.Code);
                    }
                }
                asmDAO.RemoveAssembly(asm.Code);
                Logger.Info(string.Format(Messages.RemoveAddinSuccess, asm.Name));
            }
        }
示例#2
0
        internal void UpdateAppDataFolder(AssemblyInformation asm, string appFolder)
        {
            string fullPath = Path.Combine(appFolder, asm.FileName);
            List <AssemblyInformation> dependencies = asmDAO.GetDependencies(asm);

            if (IsDifferent(asm, fullPath))
            {
                UpdateAssembly(asm, fullPath);
            }
            foreach (var dep in dependencies)
            {
                fullPath = Path.Combine(appFolder, dep.FileName);
                if (IsDifferent(dep, fullPath))
                {
                    UpdateAssembly(dep, fullPath);
                }
            }
            if (dependencies.Count == 0)
            {
                AssemblyInformation coreAsm = asmDAO.GetCoreAssemblyInformation();
                UpdateAppDataFolder(coreAsm, appFolder);
            }
        }