public bool CanCheck(BasePluginPointer ptr) { if (ptr.PluginOrigin == "" || !ptr.PluginOrigin.EndsWith(".dll")) { return(false); } Uri origin = ptr.PluginOriginUri; return(origin.Scheme == "file" && File.Exists(PluginPaths.GetPluginAssemblyFile(ptr)) && File.Exists(ptr.PluginOrigin)); }
public override void OnLoad(PluginAssemblyPointer ptr) { base.OnLoad(ptr); if (isEmbedded) { return; } List <string> initList = ListHelper.LoadList(PluginPaths.InitPluginListFile).ToList(); if (!initList.Contains(PluginPaths.GetPluginAssemblyFile(ptr))) { initList.Add(PluginPaths.GetPluginAssemblyFile(ptr)); ListHelper.SaveList(PluginPaths.InitPluginListFile, initList.ToArray()); } }
public void CheckAndUpdate( BasePluginPointer ptr, Func <string, string, bool> updateDialog, Action <string, int, int> setStatus) { byte[] a = File.ReadAllBytes(PluginPaths.GetPluginAssemblyFile(ptr)); byte[] b = File.ReadAllBytes(ptr.PluginOrigin); bool ret = AreEqual(a, b); if (ret) { return; } if (!updateDialog( $"The file '{ptr.PluginOrigin}' is a different version. Do you want to Update?", "Update: " + ptr.PluginName )) { return; } File.Copy(ptr.PluginOrigin, PluginPaths.GetPluginAssemblyFile(ptr), true); }
/// <summary> /// To String Implementation Listing all Retrievable Information about the Plugin. /// </summary> /// <returns>Information Text about this Object.</returns> public override string ToString() { StringBuilder builder = new StringBuilder(); builder.AppendLine("General:"); builder.AppendLine("\tIs Initialized: " + PluginManager.IsInitialized); builder.AppendLine("\tSystem Config Path: " + PluginPaths.InternalSystemConfigPath); builder.AppendLine("\tPlugin Dir: " + PluginPaths.PluginDirectory); builder.AppendLine("\tInstalled Packages Path: " + PluginPaths.PluginListFile); builder.AppendLine("\tGlobal Packages Path: " + PluginPaths.GlobalPluginListFile); builder.AppendLine(); builder.AppendLine(); builder.AppendLine("Plugin:"); builder.AppendLine("Name: " + PluginName); builder.AppendLine("\tFile: " + PluginName); builder.AppendLine("\tPlugin Directory: " + PluginPaths.GetPluginDirectory(PluginName)); builder.AppendLine("\tPlugin Config Directory: " + PluginPaths.GetPluginConfigDirectory(PluginName)); builder.AppendLine("\tPlugin Assembly Directory: " + PluginPaths.GetPluginAssemblyDirectory(PluginName)); builder.AppendLine("\tPlugin Temp Directory: " + PluginPaths.GetPluginTempDirectory(PluginName)); //builder.AppendLine($"\tPlugin Archive Backup: " + PluginPaths.GetPluginArchiveBackup(PluginName)); //builder.AppendLine($"\t\tPlugin Archive Backup Exists: " + File.Exists(PluginPaths.GetPluginArchiveBackup(PluginName))); builder.AppendLine("\tPlugin Assembly File: " + PluginPaths.GetPluginAssemblyFile(PluginName, PluginFile)); builder.AppendLine( "\t\tPlugin Assembly File Exists: " + File.Exists(PluginPaths.GetPluginAssemblyFile(PluginName, PluginFile)) ); //builder.AppendLine($"\tPlugin Version File: " + PluginPaths.GetPluginVersionFile(PluginName)); //builder.AppendLine($"\t\tPlugin Version File Exists: " + File.Exists(PluginPaths.GetPluginVersionFile(PluginName))); //builder.AppendLine($"\t\tPlugin Version File Key: " + PluginPaths.GetPluginVersion(PluginName)); //builder.AppendLine($"\t\tPlugin Version File Value: " + PluginPaths.GetPluginOriginURL(PluginName)); return(builder.ToString()); }
/// <summary> /// Loads a C# Assembly from a Pointer /// </summary> /// <param name="data">Pointer Data</param> /// <returns>Loaded Assembly</returns> public static Assembly SaveLoadFrom(PluginAssemblyPointer data) { return(SaveLoadFrom(PluginPaths.GetPluginAssemblyFile(data))); }