private static List<string> CheckFile(ConfigInfo config) { List<string> newFileNames = new List<string>(); foreach (var assInfo in config.AssemblyInfos) { string fileName = assInfo.FileName; FileInfo rFileinfo = new FileInfo(config.BaseUrl + fileName); FileInfo lFileInfo = new FileInfo(fileName); if (!rFileinfo.Exists) { try { File.Delete(assInfo.FileName); File.Delete(assInfo.FileName.ToUpper().Replace("ZIP", "DLL")); File.Delete(assInfo.FileName.Replace("ZIP", "EXE")); } catch (Exception ex) { } } if (!lFileInfo.Exists || lFileInfo.LastWriteTime < rFileinfo.LastWriteTime) { try { newFileNames.Add(assInfo.FileName); rFileinfo.CopyTo(assInfo.FileName, true); } catch (Exception ex) { } } } return newFileNames; }
public static void RunFiles(ConfigInfo configInfo) { foreach (var assInfo in configInfo.AssemblyInfos) { if (assInfo.IsEntry) { RunExeFile(assInfo.FileName); } else { ExecuteDLLFile(assInfo.FileName); } } }
/// <summary> /// 检查更新新文件 /// </summary> /// <param name="configInfo"></param> public static void CheckUpdate(ConfigInfo configInfo) { string targetDirectory = Directory.GetCurrentDirectory(); List<string> newFileNames = CheckFile(configInfo); newFileNames.ForEach(fileName => { try { Unpackage(fileName, targetDirectory); Console.WriteLine(string.Format("更新文件:{0}",fileName)); } catch (Exception ex) { } }); }
public static ConfigInfo GetConfigInfo() { ConfigInfo configInfo = new ConfigInfo { BaseUrl = @"E:\WorkSpace\Sample\Packges\", AssemblyInfos = new List<AssemblyInfo> { new AssemblyInfo { FileName = "multiplication table.zip", IsEntry = true }, new AssemblyInfo { FileName = "MyCore.zip" } } }; return configInfo; }
public static ConfigInfo GetConfigInfo() { ConfigInfo configInfo = new ConfigInfo { BaseUrl = @"E:\WorkSpace\Sample\Packges\", AssemblyInfos = new List <AssemblyInfo> { new AssemblyInfo { FileName = "multiplication table.zip", IsEntry = true }, new AssemblyInfo { FileName = "MyCore.zip" } } }; return(configInfo); }