Changeset 12518 for trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3
- Timestamp:
- 06/25/15 18:39:07 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Tests/HeuristicLab-3.3/PluginDependenciesTest.cs
r12012 r12518 60 60 foreach (Assembly pluginAssembly in loadedPlugins.Keys) { 61 61 Type plugin = loadedPlugins[pluginAssembly]; 62 var pluginFiles = new HashSet<string>(Attribute.GetCustomAttributes(plugin, false) 63 .OfType<PluginFileAttribute>().Where(pf => pf.FileType == PluginFileType.Assembly).Select(pf => pf.FileName)); 64 var pluginAssemblies = PluginLoader.Assemblies.Where(a => pluginFiles.Contains(Path.GetFileName(a.Location))).ToList(); 65 var referencedAssemblies = pluginAssemblies.SelectMany(a => a.GetReferencedAssemblies()).ToList(); 66 62 67 Dictionary<string, PluginDependencyAttribute> pluginDependencies = Attribute.GetCustomAttributes(plugin, false).OfType<PluginDependencyAttribute>().ToDictionary(a => a.Dependency); 63 68 64 foreach (AssemblyName referencedAssemblyName in pluginAssembly.GetReferencedAssemblies()) {69 foreach (AssemblyName referencedAssemblyName in referencedAssemblies) { 65 70 if (IsPluginAssemblyName(referencedAssemblyName)) { 66 71 if (!pluginDependencies.ContainsKey(pluginNames[referencedAssemblyName.FullName])) … … 87 92 Type plugin = loadedPlugins[pluginAssembly]; 88 93 Dictionary<PluginDependencyAttribute, string> pluginDependencies = Attribute.GetCustomAttributes(plugin, false).OfType<PluginDependencyAttribute>().ToDictionary(a => a, a => a.Dependency); 94 var pluginFiles = new HashSet<string>(Attribute.GetCustomAttributes(plugin, false) 95 .OfType<PluginFileAttribute>().Where(pf => pf.FileType == PluginFileType.Assembly).Select(pf => pf.FileName)); 96 var pluginAssemblies = PluginLoader.Assemblies.Where(a => pluginFiles.Contains(Path.GetFileName(a.Location))).ToList(); 97 var referencedAssemblies = pluginAssemblies.SelectMany(a => a.GetReferencedAssemblies()).ToList(); 89 98 90 99 foreach (PluginDependencyAttribute attribute in pluginDependencies.Keys) { … … 93 102 if (pluginDependencyName == "HeuristicLab.MathJax") continue; //is never referenced as this plugin contains HTML files 94 103 if (pluginDependencyName == "HeuristicLab.MatlabConnector") continue; //the matlab connector is loaded dynamically and hence not referenced by the dll 95 var referencedPluginAssemblies = pluginAssembly.GetReferencedAssemblies().Where(IsPluginAssemblyName);104 var referencedPluginAssemblies = referencedAssemblies.Where(IsPluginAssemblyName); 96 105 if (referencedPluginAssemblies.Any(a => pluginNames[a.FullName] == pluginDependencyName)) continue; 97 106 98 var referencedNonPluginAssemblies = pluginAssembly.GetReferencedAssemblies().Where(a => !IsPluginAssemblyName(a));107 var referencedNonPluginAssemblies = referencedAssemblies.Where(a => !IsPluginAssemblyName(a)); 99 108 bool found = (from referencedNonPluginAssembly in referencedNonPluginAssemblies 100 109 select referencedNonPluginAssembly.Name into assemblyName
Note: See TracChangeset
for help on using the changeset viewer.