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); } } }
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. } } }