示例#1
0
        private void UpdateFrameworkDBAssembly(ref AssemblyInformation asm)
        {
            const string defaultFrameworkDll = "Framework.dll";

            if (asm == null)
            {
                AssemblyInformation newAsm   = GetCurrentAsm(AppDomain.CurrentDomain.BaseDirectory, defaultFrameworkDll, AssemblyType.Core);
                AssemblyInformation savedAsm = SaveIfNotExistsOrDifferent(null, newAsm, AppDomain.CurrentDomain.BaseDirectory);
                asm = savedAsm;
            }
            else
            {
                if (asmDAO.AutoUpdateEnabled(asm))
                {
                    asm = UpdateModuleDBAssembly(asm, AssemblyType.Core);
                }
            }
        }
示例#2
0
        private void GenericInitialize(List <AssemblyInformation> asms, string type,
                                       string[] defaultAsms)
        {
            HashSet <string> dbAsms = new HashSet <string>();

            byte[] asmBytes;

            foreach (var asm in asms)
            {
                if (asmDAO.AutoUpdateEnabled(asm))
                {
                    try
                    {
                        AssemblyInformation newAsm   = GetNewAsm(Environment.CurrentDirectory, asm.FileName, asm.Name, type, out asmBytes);
                        AssemblyInformation savedAsm = SaveIfNotExistsOrDifferent(asm, newAsm, asmBytes);
                        if (savedAsm.MD5 != asm.MD5)
                        {
                            SaveAddinI18NResources(Environment.CurrentDirectory, asm.Name, asm.Code);
                            asm.MD5     = savedAsm.MD5;     // update MD5Sum, so AppData is updated latter.
                            asm.Version = savedAsm.Version; // Correct version
                        }
                    }
                    catch (FileNotFoundException)
                    {
                        // Ignore it, use DB version.
                        Logger.Warn(string.Format(Messages.FileMissing, asm.Name, "?"));
                    }
                }
                dbAsms.Add(asm.Name);
            }
            foreach (string asmFile in defaultAsms)
            {
                string asmName = asmFile.Substring(0, asmFile.Length - 4);
                if (!dbAsms.Contains(asmName)) // first upload, do not check if AutoUpdateEnabled and if filenotfound, force error (no try-catch).
                {
                    AssemblyInformation newAsm   = GetNewAsm(Environment.CurrentDirectory, asmFile, asmName, type, out asmBytes);
                    AssemblyInformation savedAsm = SaveIfNotExistsOrDifferent(null, newAsm, asmBytes);
                    SaveAddinI18NResources(Environment.CurrentDirectory, asmName, savedAsm.Code);
                    asms.Add(savedAsm); // do not need to check if is valid, it's default asm.
                }
            }
        }