private void AddDependency(CompilablePlugin plugin) { if (plugin.IsLoading || this.plugins.Contains(plugin) || this.queuedPlugins.Contains(plugin)) { return; } CompiledAssembly compiledAssembly = plugin.CompiledAssembly; if (compiledAssembly == null || compiledAssembly.IsOutdated()) { this.Add(plugin); } else { this.referencedPlugins.Add(plugin.Name); if (!this.references.ContainsKey(compiledAssembly.Name)) { this.references[compiledAssembly.Name] = new CompilerFile(compiledAssembly.Name, compiledAssembly.RawAssembly); return; } } }
private void AddDependency(CompilablePlugin plugin) { if (plugin.IsLoading || plugins.Contains(plugin) || queuedPlugins.Contains(plugin)) { return; } CompiledAssembly compiledDependency = plugin.CompiledAssembly; if (compiledDependency != null && !compiledDependency.IsOutdated()) { // The dependency already has a compiled assembly which is up to date referencedPlugins.Add(plugin.Name); if (!references.ContainsKey(compiledDependency.Name)) { references[compiledDependency.Name] = new CompilerFile(compiledDependency.Name, compiledDependency.RawAssembly); } } else { // The dependency needs to be compiled Add(plugin); } }