diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000000..e05fc77791 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,11 @@ + + + false + false + $(SolutionDir)\bin\ + + + + + + diff --git a/HeuristicLab 3.3 BuildTools.sln b/HeuristicLab 3.3 BuildTools.sln new file mode 100644 index 0000000000..bb4aeb928d --- /dev/null +++ b/HeuristicLab 3.3 BuildTools.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32901.215 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Build", "build\source\HeuristicLab.Build\HeuristicLab.Build\HeuristicLab.Build.csproj", "{EA69C8A5-CC72-4DC2-8F5D-80F4B9F3BDA5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtocolBuffers-2.4.1.473", "build\source\HeuristicLab.Build\ProtocolBuffers\ProtocolBuffers-2.4.1.473.csproj", "{B54A7881-22A2-4E41-994F-C289B84AAC4A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtoGen-2.4.1.473", "build\source\HeuristicLab.Build\ProtoGen\ProtoGen-2.4.1.473.csproj", "{5564F3E8-E325-480E-8FD8-DE6EC29895BA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EA69C8A5-CC72-4DC2-8F5D-80F4B9F3BDA5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA69C8A5-CC72-4DC2-8F5D-80F4B9F3BDA5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA69C8A5-CC72-4DC2-8F5D-80F4B9F3BDA5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA69C8A5-CC72-4DC2-8F5D-80F4B9F3BDA5}.Release|Any CPU.Build.0 = Release|Any CPU + {B54A7881-22A2-4E41-994F-C289B84AAC4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B54A7881-22A2-4E41-994F-C289B84AAC4A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B54A7881-22A2-4E41-994F-C289B84AAC4A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B54A7881-22A2-4E41-994F-C289B84AAC4A}.Release|Any CPU.Build.0 = Release|Any CPU + {5564F3E8-E325-480E-8FD8-DE6EC29895BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5564F3E8-E325-480E-8FD8-DE6EC29895BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5564F3E8-E325-480E-8FD8-DE6EC29895BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5564F3E8-E325-480E-8FD8-DE6EC29895BA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {490C4DC2-BFA1-4F76-8C8A-8B5010612640} + EndGlobalSection +EndGlobal diff --git a/HeuristicLab 3.3 DotNetStandard.sln b/HeuristicLab 3.3 DotNetStandard.sln new file mode 100644 index 0000000000..f353f230a2 --- /dev/null +++ b/HeuristicLab 3.3 DotNetStandard.sln @@ -0,0 +1,1381 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32825.248 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{96396439-A764-4022-A8D2-BE021449B8D1}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + Build.cmd = Build.cmd + ConfigMerger.exe = ConfigMerger.exe + ..\documentation\License\gpl-3.0.txt = ..\documentation\License\gpl-3.0.txt + MergeConfigs.cmd = MergeConfigs.cmd + PreBuildEvent.cmd = PreBuildEvent.cmd + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.PluginInfrastructure-3.3", "HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj", "{94186A6A-5176-4402-AE83-886557B53CCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Persistence-3.3", "HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj", "{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Core-3.3", "HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj", "{C36BD924-A541-4A00-AFA8-41701378DDC5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Data-3.3", "HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj", "{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Operators-3.3", "HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj", "{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.SequentialEngine-3.3", "HeuristicLab.SequentialEngine\3.3\HeuristicLab.SequentialEngine-3.3.csproj", "{DC3D7072-7999-4719-B65D-3997744D5DC1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Random-3.3", "HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj", "{F4539FB6-4708-40C9-BE64-0A1390AEA197}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Selection-3.3", "HeuristicLab.Selection\3.3\HeuristicLab.Selection-3.3.csproj", "{2C36CD4F-E5F5-43A4-801A-201EA895FE17}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Tracing-3.3", "HeuristicLab.Tracing\3.3\HeuristicLab.Tracing-3.3.csproj", "{EE2034D9-6E27-48A1-B855-42D45F69A4FC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Collections-3.3", "HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj", "{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Parameters-3.3", "HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj", "{56F9106A-079F-4C61-92F6-86A84C2D84B7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Optimization-3.3", "HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj", "{14AB8D24-25BC-400C-A846-4627AA945192}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Analysis-3.3", "HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj", "{887425B4-4348-49ED-A457-B7D2C26DDBF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Optimization.Operators-3.3", "HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj", "{25087811-F74C-4128-BC86-8324271DA13E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.PermutationEncoding-3.3", "HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj", "{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3", "HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj", "{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj", "{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj", "{66D249C3-A01D-42A8-82A2-919BC8EC3D83}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Knapsack-3.3", "HeuristicLab.Problems.Knapsack\3.3\HeuristicLab.Problems.Knapsack-3.3.csproj", "{E10F395F-C8A6-48AD-B470-9AA7A1F43809}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.SimulatedAnnealing-3.3", "HeuristicLab.Algorithms.SimulatedAnnealing\3.3\HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj", "{96E5ED5B-187D-4012-9CDA-D85CDAD38342}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.TabuSearch-3.3", "HeuristicLab.Algorithms.TabuSearch\3.3\HeuristicLab.Algorithms.TabuSearch-3.3.csproj", "{D58A232D-04BA-4186-B73E-0EC86FD31ABE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.LocalSearch-3.3", "HeuristicLab.Algorithms.LocalSearch\3.3\HeuristicLab.Algorithms.LocalSearch-3.3.csproj", "{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.EvolutionStrategy-3.3", "HeuristicLab.Algorithms.EvolutionStrategy\3.3\HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj", "{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.TravelingSalesman-3.3", "HeuristicLab.Problems.TravelingSalesman\3.3\HeuristicLab.Problems.TravelingSalesman-3.3.csproj", "{D767C38D-8014-46B0-9A32-03A3AECCE34A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.TestFunctions-3.3", "HeuristicLab.Problems.TestFunctions\3.3\HeuristicLab.Problems.TestFunctions-3.3.csproj", "{88B9B0E3-344E-4196-82A3-0F9732506FE8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj", "{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3", "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm\3.3\HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj", "{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Common-3.3", "HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj", "{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.DebugEngine-3.3", "HeuristicLab.DebugEngine\3.3\HeuristicLab.DebugEngine-3.3.csproj", "{49F28045-7B5F-411B-8D59-16C846FA26E0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.NSGA2-3.3", "HeuristicLab.Algorithms.NSGA2\3.3\HeuristicLab.Algorithms.NSGA2-3.3.csproj", "{15452B9F-A436-4139-8EE7-DA72FB8D3664}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.ParallelEngine-3.3", "HeuristicLab.ParallelEngine\3.3\HeuristicLab.ParallelEngine-3.3.csproj", "{00814351-4AB8-4088-9B99-F62787B89E93}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3", "HeuristicLab.Algorithms.ParticleSwarmOptimization\3.3\HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj", "{2C429157-9C34-4DD3-9D5F-B444B751E39A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3", "HeuristicLab.Algorithms.VariableNeighborhoodSearch\3.3\HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj", "{E4CFB0C3-0589-4893-B38E-8BEDF885C765}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.DataAnalysis-3.4", "HeuristicLab.Algorithms.DataAnalysis\3.4\HeuristicLab.Algorithms.DataAnalysis-3.4.csproj", "{2E782078-FA81-4B70-B56F-74CE38DAC6C8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj", "{06D4A186-9319-48A0-BADE-A2058D462EEA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis-3.4", "HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj", "{DF87C13E-A889-46FF-8153-66DCAA8C5674}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj", "{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.csproj", "{05BAE4E1-A9FA-4644-AA77-42558720159E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj", "{5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.QuadraticAssignment-3.3", "HeuristicLab.Problems.QuadraticAssignment\3.3\HeuristicLab.Problems.QuadraticAssignment-3.3.csproj", "{79271BC8-4446-40E2-BB89-9BE4E17174FE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3", "HeuristicLab.Problems.QuadraticAssignment.Algorithms\3.3\HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3.csproj", "{5B9B9E8C-2706-43C2-80B8-A08341E431F7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Hive-3.3", "HeuristicLab.Hive\3.3\HeuristicLab.Hive-3.3.csproj", "{F98A1740-9AC9-4D36-A582-6A2D0D06978D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.Benchmarks-3.3", "HeuristicLab.Algorithms.Benchmarks\3.3\HeuristicLab.Algorithms.Benchmarks-3.3.csproj", "{068C70A7-8CAF-4AB6-8721-4564D62292BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances-3.3", "HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj", "{3540E29E-4793-49E7-8EE2-FEA7F61C3994}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.ElloumiCTAP-3.3", "HeuristicLab.Problems.Instances.ElloumiCTAP\3.3\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj", "{CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.QAPLIB-3.3", "HeuristicLab.Problems.Instances.QAPLIB\3.3\HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj", "{73F29D43-5714-4069-8FAB-0D18FEB5F175}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.TSPLIB-3.3", "HeuristicLab.Problems.Instances.TSPLIB\3.3\HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj", "{CE0F99D6-1C56-48A9-9B68-3E5B833703EF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.CordeauGQAP-3.3", "HeuristicLab.Problems.Instances.CordeauGQAP\3.3\HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj", "{1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.DataAnalysis-3.3", "HeuristicLab.Problems.Instances.DataAnalysis\3.3\HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj", "{94C7714E-29D4-4D6D-B213-2C18D627AB75}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.LinearAssignment-3.3", "HeuristicLab.Problems.LinearAssignment\3.3\HeuristicLab.Problems.LinearAssignment-3.3.csproj", "{7250653F-DE83-4069-8D34-8050E8E45EA1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.VehicleRouting-3.4", "HeuristicLab.Problems.VehicleRouting\3.4\HeuristicLab.Problems.VehicleRouting-3.4.csproj", "{B94FFB82-43D4-40AB-9980-B03470ADF221}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.VehicleRouting-3.4", "HeuristicLab.Problems.Instances.VehicleRouting\3.4\HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj", "{8C265E11-4F8D-4CED-9E6B-F400A0075C18}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ScatterSearch-3.3", "HeuristicLab.Algorithms.ScatterSearch\3.3\HeuristicLab.Algorithms.ScatterSearch-3.3.csproj", "{5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.GradientDescent-3.3", "HeuristicLab.Algorithms.GradientDescent\3.3\HeuristicLab.Algorithms.GradientDescent-3.3.csproj", "{1256B945-EEA9-4BE4-9880-76B5B113F089}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.RAPGA-3.3", "HeuristicLab.Algorithms.RAPGA\3.3\HeuristicLab.Algorithms.RAPGA-3.3.csproj", "{B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.ScheduleEncoding-3.3", "HeuristicLab.Encodings.ScheduleEncoding\3.3\HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj", "{17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Scheduling-3.3", "HeuristicLab.Problems.Scheduling\3.3\HeuristicLab.Problems.Scheduling-3.3.csproj", "{2BF1D639-1A74-44ED-AAAD-41ECD395AD93}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj", "{07486E68-1517-4B9D-A58D-A38E99AE71AB}" + ProjectSection(ProjectDependencies) = postProject + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2} = {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.Scheduling-3.3", "HeuristicLab.Problems.Instances.Scheduling\3.3\HeuristicLab.Problems.Instances.Scheduling-3.3.csproj", "{9D792B6D-836B-46DC-9D69-50B4B1E7B87F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Trading-3.4", "HeuristicLab.Problems.DataAnalysis.Trading\3.4\HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj", "{E4EE5AFB-D552-447B-8A16-6CBE7938AF32}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.ParameterOptimization-3.3", "HeuristicLab.Problems.ParameterOptimization\3.3\HeuristicLab.Problems.ParameterOptimization-3.3.csproj", "{D2C39FBA-A1D5-403A-9211-B0A299A76313}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3", "HeuristicLab.Algorithms.ParameterlessPopulationPyramid\3.3\HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3.csproj", "{9319C447-8183-4DBC-8145-0E3CF98084CC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Binary-3.3", "HeuristicLab.Problems.Binary\3.3\HeuristicLab.Problems.Binary-3.3.csproj", "{FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.NK-3.3", "HeuristicLab.Problems.NK\3.3\HeuristicLab.Problems.NK-3.3.csproj", "{C3AD50E6-E717-490E-ABC7-32EF7FB03C97}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OutdatedPlugins", "OutdatedPlugins", "{D1B1DE45-F9C7-4FBF-B73C-E759BC4223D5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4", "HeuristicLab.Algorithms.CMAEvolutionStrategy\3.4\HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4.csproj", "{291010E4-2F4E-4D29-A795-753CFF293FDB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.LinearLinkageEncoding-3.4", "HeuristicLab.Encodings.LinearLinkageEncoding\3.4\HeuristicLab.Encodings.LinearLinkageEncoding-3.4.csproj", "{BE698769-975A-429E-828C-72BB2B6182C8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.Orienteering-3.3", "HeuristicLab.Problems.Instances.Orienteering\3.3\HeuristicLab.Problems.Instances.Orienteering-3.3.csproj", "{B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.GeneticProgramming-3.3", "HeuristicLab.Problems.GeneticProgramming\3.3\HeuristicLab.Problems.GeneticProgramming-3.3.csproj", "{02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.GrammaticalEvolution-3.4", "HeuristicLab.Problems.GrammaticalEvolution\3.4\HeuristicLab.Problems.GrammaticalEvolution-3.4.csproj", "{9372D115-D933-40D2-BD29-A2C1EAC35874}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3", "HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy\3.3\HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3.csproj", "{1D41EAE6-CC79-41D4-858C-589C4DB5E50D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ALPS-3.3", "HeuristicLab.Algorithms.ALPS\3.3\HeuristicLab.Algorithms.ALPS-3.3.csproj", "{59F354CB-FE13-4253-AED2-AD86372BEC27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.PTSP-3.3", "HeuristicLab.Problems.PTSP\3.3\HeuristicLab.Problems.PTSP-3.3.csproj", "{97198965-AFEA-496B-B3B1-316905C43FD6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.RandomSearch-3.3", "HeuristicLab.Algorithms.RandomSearch\3.3\HeuristicLab.Algorithms.RandomSearch-3.3.csproj", "{4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.TestFunctions.MultiObjective-3.3", "HeuristicLab.Problems.TestFunctions.MultiObjective\3.3\HeuristicLab.Problems.TestFunctions.MultiObjective-3.3.csproj", "{D53E8E48-CFAA-4F57-AC35-63BEF4476159}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.BinPacking-3.3", "HeuristicLab.Problems.BinPacking\3.3\HeuristicLab.Problems.BinPacking-3.3.csproj", "{F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4", "HeuristicLab.Algorithms.DataAnalysis.Glmnet\3.4\HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4.csproj", "{4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.DIMACS-3.3", "HeuristicLab.Problems.Instances.DIMACS\3.3\HeuristicLab.Problems.Instances.DIMACS-3.3.csproj", "{9943FF23-8619-459C-B84A-E7FBDCBA04E6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.GraphColoring-3.3", "HeuristicLab.Problems.GraphColoring\3.3\HeuristicLab.Problems.GraphColoring-3.3.csproj", "{4B76E2CB-A990-4959-B080-1D81D418D325}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3", "HeuristicLab.Algorithms.MOCMAEvolutionStrategy\3.3\HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3.csproj", "{0E2E224F-E9B2-41F3-B510-09183EEBA2AF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4", "HeuristicLab.Algorithms.DataAnalysis.DecisionTrees\3.4\HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4.csproj", "{541A53F3-E6A7-402F-91BB-D76041CDD9FD}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.MultiObjectiveLocalSearch", "HeuristicLab.Algorithms.MultiObjectiveLocalSearch\3.3\HeuristicLab.Algorithms.MultiObjectiveLocalSearch.csproj", "{4CCDD23A-9FA3-4B36-9469-87D67E99225F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Common.Resources-3.3", "HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj", "{6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Operators.Programmable-3.3", "HeuristicLab.Operators.Programmable\3.3\HeuristicLab.Operators.Programmable-3.3.csproj", "{5BEDBE28-89B0-4176-989B-B4156DAC8191}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ALGLIB-3.17.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\3.17.0\ALGLIB-3.17.0\ALGLIB-3.17.0.csproj", "{A9CED8BA-9055-4DA6-A302-A4207C465AF0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.ALGLIB-3.17.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\3.17.0\HeuristicLab.ALGLIB-3.17.0\HeuristicLab.ALGLIB-3.17.0.csproj", "{8A56F216-2B71-4F72-B86B-2DE489D578DB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ALGLIB-3.15.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\3.15.0\ALGLIB-3.15.0\ALGLIB-3.15.0.csproj", "{BFFE7AFD-0996-4381-BF06-5D031B3E54A8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.ALGLIB-3.15.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\3.15.0\HeuristicLab.ALGLIB-3.15.0\HeuristicLab.ALGLIB-3.15.0.csproj", "{6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ALGLIB-3.7.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\3.7.0\ALGLIB-3.7.0\ALGLIB-3.7.0.csproj", "{AE723DEF-1A44-4F9C-8670-DBCAB79626A2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.ALGLIB-3.7.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\3.7.0\HeuristicLab.ALGLIB-3.7.0\HeuristicLab.ALGLIB-3.7.0.csproj", "{6F1D7847-D610-4E52-A184-405DAEFA41A9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoDiff-1.0", "HeuristicLab.ExtLibs\HeuristicLab.AutoDiff\1.0\AutoDiff-1.0\AutoDiff-1.0.csproj", "{62551FD3-C21F-4E16-A7FC-6A017508809C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.AutoDiff-1.0", "HeuristicLab.ExtLibs\HeuristicLab.AutoDiff\1.0\HeuristicLab.AutoDiff-1.0\HeuristicLab.AutoDiff-1.0.csproj", "{C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.NativeInterpreter-0.2", "HeuristicLab.ExtLibs\HeuristicLab.NativeInterpreter\0.2\HeuristicLab.NativeInterpreter-0.2\HeuristicLab.NativeInterpreter-0.2.csproj", "{E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibSVM-3.12", "HeuristicLab.ExtLibs\HeuristicLab.LibSVM\3.12\LibSVM-3.12\LibSVM-3.12.csproj", "{4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.LibSVM-3.12", "HeuristicLab.ExtLibs\HeuristicLab.LibSVM\3.12\HeuristicLab.LibSVM-3.12\HeuristicLab.LibSVM-3.12.csproj", "{005C27BE-ED6E-4602-8199-5F9EB7591CEB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Scripting-3.3", "HeuristicLab.Scripting\3.3\HeuristicLab.Scripting-3.3.csproj", "{7BBAF34F-EBBD-40C0-8880-630957FB581C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Programmable-3.3", "HeuristicLab.Problems.Programmable\3.3\HeuristicLab.Problems.Programmable-3.3.csproj", "{EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.ActiveCfg = Debug|x64 + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.Build.0 = Debug|x64 + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.ActiveCfg = Debug|x86 + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.Build.0 = Debug|x86 + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.Build.0 = Release|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.ActiveCfg = Release|x64 + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.Build.0 = Release|x64 + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.ActiveCfg = Release|x86 + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.Build.0 = Release|x86 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.ActiveCfg = Debug|x64 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.Build.0 = Debug|x64 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.ActiveCfg = Debug|x86 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.Build.0 = Debug|x86 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.Build.0 = Release|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.ActiveCfg = Release|x64 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.Build.0 = Release|x64 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.ActiveCfg = Release|x86 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.Build.0 = Release|x86 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.ActiveCfg = Debug|x64 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.Build.0 = Debug|x64 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.ActiveCfg = Debug|x86 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.Build.0 = Debug|x86 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.Build.0 = Release|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.ActiveCfg = Release|x64 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.Build.0 = Release|x64 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.ActiveCfg = Release|x86 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.Build.0 = Release|x86 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.ActiveCfg = Debug|x64 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.Build.0 = Debug|x64 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.ActiveCfg = Debug|x86 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.Build.0 = Debug|x86 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.Build.0 = Release|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.ActiveCfg = Release|x64 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.Build.0 = Release|x64 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.ActiveCfg = Release|x86 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.Build.0 = Release|x86 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.ActiveCfg = Debug|x64 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.Build.0 = Debug|x64 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.ActiveCfg = Debug|x86 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.Build.0 = Debug|x86 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.Build.0 = Release|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.ActiveCfg = Release|x64 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.Build.0 = Release|x64 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.ActiveCfg = Release|x86 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.Build.0 = Release|x86 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.ActiveCfg = Debug|x64 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.Build.0 = Debug|x64 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.ActiveCfg = Debug|x86 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.Build.0 = Debug|x86 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.Build.0 = Release|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.ActiveCfg = Release|x64 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.Build.0 = Release|x64 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.ActiveCfg = Release|x86 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.Build.0 = Release|x86 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.ActiveCfg = Debug|x64 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.Build.0 = Debug|x64 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.ActiveCfg = Debug|x86 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.Build.0 = Debug|x86 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.Build.0 = Release|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.ActiveCfg = Release|x64 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.Build.0 = Release|x64 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.ActiveCfg = Release|x86 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.Build.0 = Release|x86 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.ActiveCfg = Debug|x64 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.Build.0 = Debug|x64 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.ActiveCfg = Debug|x86 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.Build.0 = Debug|x86 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.Build.0 = Release|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.ActiveCfg = Release|x64 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.Build.0 = Release|x64 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.ActiveCfg = Release|x86 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.Build.0 = Release|x86 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.ActiveCfg = Debug|x64 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.Build.0 = Debug|x64 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.ActiveCfg = Debug|x86 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.Build.0 = Debug|x86 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.Build.0 = Release|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.ActiveCfg = Release|x64 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.Build.0 = Release|x64 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.ActiveCfg = Release|x86 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.Build.0 = Release|x86 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.ActiveCfg = Debug|x64 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.Build.0 = Debug|x64 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.ActiveCfg = Debug|x86 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.Build.0 = Debug|x86 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.Build.0 = Release|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.ActiveCfg = Release|x64 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.Build.0 = Release|x64 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.ActiveCfg = Release|x86 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.Build.0 = Release|x86 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.ActiveCfg = Debug|x64 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.Build.0 = Debug|x64 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.ActiveCfg = Debug|x86 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.Build.0 = Debug|x86 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.Build.0 = Release|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.ActiveCfg = Release|x64 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.Build.0 = Release|x64 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.ActiveCfg = Release|x86 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.Build.0 = Release|x86 + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.ActiveCfg = Debug|x64 + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.Build.0 = Debug|x64 + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.ActiveCfg = Debug|x86 + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.Build.0 = Debug|x86 + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.Build.0 = Release|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.ActiveCfg = Release|x64 + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.Build.0 = Release|x64 + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.ActiveCfg = Release|x86 + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.Build.0 = Release|x86 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.ActiveCfg = Debug|x64 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.Build.0 = Debug|x64 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.ActiveCfg = Debug|x86 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.Build.0 = Debug|x86 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.Build.0 = Release|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.ActiveCfg = Release|x64 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.Build.0 = Release|x64 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.ActiveCfg = Release|x86 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.Build.0 = Release|x86 + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.ActiveCfg = Debug|x64 + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.Build.0 = Debug|x64 + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.ActiveCfg = Debug|x86 + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.Build.0 = Debug|x86 + {25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.Build.0 = Release|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.ActiveCfg = Release|x64 + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.Build.0 = Release|x64 + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.ActiveCfg = Release|x86 + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.Build.0 = Release|x86 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.ActiveCfg = Debug|x64 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.Build.0 = Debug|x64 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.ActiveCfg = Debug|x86 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.Build.0 = Debug|x86 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.Build.0 = Release|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.ActiveCfg = Release|x64 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.Build.0 = Release|x64 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.ActiveCfg = Release|x86 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.Build.0 = Release|x86 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.ActiveCfg = Debug|x64 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.Build.0 = Debug|x64 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.ActiveCfg = Debug|x86 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.Build.0 = Debug|x86 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.Build.0 = Release|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.ActiveCfg = Release|x64 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.Build.0 = Release|x64 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.ActiveCfg = Release|x86 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.Build.0 = Release|x86 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.ActiveCfg = Debug|x64 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.Build.0 = Debug|x64 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.ActiveCfg = Debug|x86 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.Build.0 = Debug|x86 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.Build.0 = Release|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.ActiveCfg = Release|x64 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.Build.0 = Release|x64 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.ActiveCfg = Release|x86 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.Build.0 = Release|x86 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.ActiveCfg = Debug|x64 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.Build.0 = Debug|x64 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.ActiveCfg = Debug|x86 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.Build.0 = Debug|x86 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.Build.0 = Release|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.ActiveCfg = Release|x64 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.Build.0 = Release|x64 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.ActiveCfg = Release|x86 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.Build.0 = Release|x86 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.ActiveCfg = Debug|x64 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.Build.0 = Debug|x64 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.ActiveCfg = Debug|x86 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.Build.0 = Debug|x86 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.Build.0 = Release|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.ActiveCfg = Release|x64 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.Build.0 = Release|x64 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.ActiveCfg = Release|x86 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.Build.0 = Release|x86 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.ActiveCfg = Debug|x64 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.Build.0 = Debug|x64 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.ActiveCfg = Debug|x86 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.Build.0 = Debug|x86 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.Build.0 = Release|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.ActiveCfg = Release|x64 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.Build.0 = Release|x64 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.ActiveCfg = Release|x86 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.Build.0 = Release|x86 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.ActiveCfg = Debug|x64 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.Build.0 = Debug|x64 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.ActiveCfg = Debug|x86 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.Build.0 = Debug|x86 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.Build.0 = Release|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.ActiveCfg = Release|x64 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.Build.0 = Release|x64 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.ActiveCfg = Release|x86 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.Build.0 = Release|x86 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.ActiveCfg = Debug|x64 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.Build.0 = Debug|x64 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.ActiveCfg = Debug|x86 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.Build.0 = Debug|x86 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.Build.0 = Release|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.ActiveCfg = Release|x64 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.Build.0 = Release|x64 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.ActiveCfg = Release|x86 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.Build.0 = Release|x86 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.ActiveCfg = Debug|x64 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.Build.0 = Debug|x64 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.ActiveCfg = Debug|x86 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.Build.0 = Debug|x86 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.Build.0 = Release|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.ActiveCfg = Release|x64 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.Build.0 = Release|x64 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.ActiveCfg = Release|x86 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.Build.0 = Release|x86 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.ActiveCfg = Debug|x64 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.Build.0 = Debug|x64 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.ActiveCfg = Debug|x86 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.Build.0 = Debug|x86 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.Build.0 = Release|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.ActiveCfg = Release|x64 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.Build.0 = Release|x64 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.ActiveCfg = Release|x86 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.Build.0 = Release|x86 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.ActiveCfg = Debug|x64 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.Build.0 = Debug|x64 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.ActiveCfg = Debug|x86 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.Build.0 = Debug|x86 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.Build.0 = Release|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.ActiveCfg = Release|x64 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.Build.0 = Release|x64 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.ActiveCfg = Release|x86 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.Build.0 = Release|x86 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.ActiveCfg = Debug|x64 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.Build.0 = Debug|x64 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.ActiveCfg = Debug|x86 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.Build.0 = Debug|x86 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.Build.0 = Release|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.ActiveCfg = Release|x64 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.Build.0 = Release|x64 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.ActiveCfg = Release|x86 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.Build.0 = Release|x86 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.ActiveCfg = Debug|x64 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.Build.0 = Debug|x64 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.ActiveCfg = Debug|x86 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.Build.0 = Debug|x86 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.Build.0 = Release|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.ActiveCfg = Release|x64 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.Build.0 = Release|x64 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.ActiveCfg = Release|x86 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.Build.0 = Release|x86 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.ActiveCfg = Debug|x64 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.Build.0 = Debug|x64 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.ActiveCfg = Debug|x86 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.Build.0 = Debug|x86 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.Build.0 = Release|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.ActiveCfg = Release|x64 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.Build.0 = Release|x64 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.ActiveCfg = Release|x86 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.Build.0 = Release|x86 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x64.ActiveCfg = Debug|x64 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x64.Build.0 = Debug|x64 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x86.ActiveCfg = Debug|x86 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x86.Build.0 = Debug|x86 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|Any CPU.Build.0 = Release|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x64.ActiveCfg = Release|x64 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x64.Build.0 = Release|x64 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x86.ActiveCfg = Release|x86 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x86.Build.0 = Release|x86 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.ActiveCfg = Debug|x64 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.Build.0 = Debug|x64 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.ActiveCfg = Debug|x86 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.Build.0 = Debug|x86 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.Build.0 = Release|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.ActiveCfg = Release|x64 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.Build.0 = Release|x64 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.ActiveCfg = Release|x86 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.Build.0 = Release|x86 + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x64.ActiveCfg = Debug|x64 + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x64.Build.0 = Debug|x64 + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x86.ActiveCfg = Debug|x86 + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x86.Build.0 = Debug|x86 + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|Any CPU.Build.0 = Release|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x64.ActiveCfg = Release|x64 + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x64.Build.0 = Release|x64 + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x86.ActiveCfg = Release|x86 + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x86.Build.0 = Release|x86 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.ActiveCfg = Debug|x64 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.Build.0 = Debug|x64 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.ActiveCfg = Debug|x86 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.Build.0 = Debug|x86 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.Build.0 = Release|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.ActiveCfg = Release|x64 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.Build.0 = Release|x64 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.ActiveCfg = Release|x86 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.Build.0 = Release|x86 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.ActiveCfg = Debug|x64 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.Build.0 = Debug|x64 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.ActiveCfg = Debug|x86 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.Build.0 = Debug|x86 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|Any CPU.Build.0 = Release|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.ActiveCfg = Release|x64 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.Build.0 = Release|x64 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.ActiveCfg = Release|x86 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.Build.0 = Release|x86 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.ActiveCfg = Debug|x64 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.Build.0 = Debug|x64 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.ActiveCfg = Debug|x86 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.Build.0 = Debug|x86 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|Any CPU.Build.0 = Release|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.ActiveCfg = Release|x64 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.Build.0 = Release|x64 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.ActiveCfg = Release|x86 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.Build.0 = Release|x86 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.ActiveCfg = Debug|x64 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.Build.0 = Debug|x64 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.ActiveCfg = Debug|x86 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.Build.0 = Debug|x86 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Any CPU.Build.0 = Release|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.ActiveCfg = Release|x64 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.Build.0 = Release|x64 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.ActiveCfg = Release|x86 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.Build.0 = Release|x86 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x64.ActiveCfg = Debug|x64 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x64.Build.0 = Debug|x64 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x86.ActiveCfg = Debug|x86 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x86.Build.0 = Debug|x86 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|Any CPU.Build.0 = Release|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x64.ActiveCfg = Release|x64 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x64.Build.0 = Release|x64 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.ActiveCfg = Release|x86 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.Build.0 = Release|x86 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.ActiveCfg = Debug|x64 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.Build.0 = Debug|x64 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.ActiveCfg = Debug|x86 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.Build.0 = Debug|x86 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Any CPU.Build.0 = Release|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.ActiveCfg = Release|x64 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.Build.0 = Release|x64 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.ActiveCfg = Release|x86 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.Build.0 = Release|x86 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x64.ActiveCfg = Debug|x64 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x64.Build.0 = Debug|x64 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x86.ActiveCfg = Debug|x86 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x86.Build.0 = Debug|x86 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|Any CPU.Build.0 = Release|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x64.ActiveCfg = Release|x64 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x64.Build.0 = Release|x64 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x86.ActiveCfg = Release|x86 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x86.Build.0 = Release|x86 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x64.ActiveCfg = Debug|x64 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x64.Build.0 = Debug|x64 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x86.ActiveCfg = Debug|x86 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x86.Build.0 = Debug|x86 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|Any CPU.Build.0 = Release|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x64.ActiveCfg = Release|x64 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x64.Build.0 = Release|x64 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x86.ActiveCfg = Release|x86 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x86.Build.0 = Release|x86 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x64.ActiveCfg = Debug|x64 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x64.Build.0 = Debug|x64 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x86.ActiveCfg = Debug|x86 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x86.Build.0 = Debug|x86 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|Any CPU.Build.0 = Release|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x64.ActiveCfg = Release|x64 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x64.Build.0 = Release|x64 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x86.ActiveCfg = Release|x86 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x86.Build.0 = Release|x86 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x64.ActiveCfg = Debug|x64 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x64.Build.0 = Debug|x64 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x86.ActiveCfg = Debug|x86 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x86.Build.0 = Debug|x86 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|Any CPU.Build.0 = Release|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x64.ActiveCfg = Release|x64 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x64.Build.0 = Release|x64 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x86.ActiveCfg = Release|x86 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x86.Build.0 = Release|x86 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x64.ActiveCfg = Debug|x64 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x64.Build.0 = Debug|x64 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x86.ActiveCfg = Debug|x86 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x86.Build.0 = Debug|x86 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|Any CPU.Build.0 = Release|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x64.ActiveCfg = Release|x64 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x64.Build.0 = Release|x64 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x86.ActiveCfg = Release|x86 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x86.Build.0 = Release|x86 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x64.ActiveCfg = Debug|x64 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x64.Build.0 = Debug|x64 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x86.ActiveCfg = Debug|x86 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x86.Build.0 = Debug|x86 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|Any CPU.Build.0 = Release|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x64.ActiveCfg = Release|x64 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x64.Build.0 = Release|x64 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x86.ActiveCfg = Release|x86 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x86.Build.0 = Release|x86 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.ActiveCfg = Debug|x64 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.Build.0 = Debug|x64 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.ActiveCfg = Debug|x86 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.Build.0 = Debug|x86 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.Build.0 = Release|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.ActiveCfg = Release|x64 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.Build.0 = Release|x64 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.ActiveCfg = Release|x86 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.Build.0 = Release|x86 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x64.ActiveCfg = Debug|x64 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x64.Build.0 = Debug|x64 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x86.ActiveCfg = Debug|x86 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x86.Build.0 = Debug|x86 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|Any CPU.Build.0 = Release|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x64.ActiveCfg = Release|x64 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x64.Build.0 = Release|x64 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x86.ActiveCfg = Release|x86 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x86.Build.0 = Release|x86 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x64.ActiveCfg = Debug|x64 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x64.Build.0 = Debug|x64 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x86.ActiveCfg = Debug|x86 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x86.Build.0 = Debug|x86 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|Any CPU.Build.0 = Release|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x64.ActiveCfg = Release|x64 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x64.Build.0 = Release|x64 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x86.ActiveCfg = Release|x86 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x86.Build.0 = Release|x86 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x64.ActiveCfg = Debug|x64 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x64.Build.0 = Debug|x64 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x86.ActiveCfg = Debug|x86 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x86.Build.0 = Debug|x86 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|Any CPU.Build.0 = Release|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x64.ActiveCfg = Release|x64 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x64.Build.0 = Release|x64 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x86.ActiveCfg = Release|x86 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x86.Build.0 = Release|x86 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x64.ActiveCfg = Debug|x64 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x64.Build.0 = Debug|x64 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x86.ActiveCfg = Debug|x86 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x86.Build.0 = Debug|x86 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|Any CPU.Build.0 = Release|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x64.ActiveCfg = Release|x64 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x64.Build.0 = Release|x64 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x86.ActiveCfg = Release|x86 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x86.Build.0 = Release|x86 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Any CPU.Build.0 = Debug|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.ActiveCfg = Debug|x64 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.Build.0 = Debug|x64 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x86.ActiveCfg = Debug|x86 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x86.Build.0 = Debug|x86 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Any CPU.ActiveCfg = Release|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Any CPU.Build.0 = Release|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.ActiveCfg = Release|x64 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.Build.0 = Release|x64 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x86.ActiveCfg = Release|x86 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x86.Build.0 = Release|x86 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x64.ActiveCfg = Debug|x64 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x64.Build.0 = Debug|x64 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x86.ActiveCfg = Debug|x86 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x86.Build.0 = Debug|x86 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|Any CPU.Build.0 = Release|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x64.ActiveCfg = Release|x64 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x64.Build.0 = Release|x64 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x86.ActiveCfg = Release|x86 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x86.Build.0 = Release|x86 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x64.ActiveCfg = Debug|x64 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x64.Build.0 = Debug|x64 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x86.ActiveCfg = Debug|x86 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x86.Build.0 = Debug|x86 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|Any CPU.Build.0 = Release|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x64.ActiveCfg = Release|x64 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x64.Build.0 = Release|x64 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x86.ActiveCfg = Release|x86 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x86.Build.0 = Release|x86 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x64.ActiveCfg = Debug|x64 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x64.Build.0 = Debug|x64 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x86.ActiveCfg = Debug|x86 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x86.Build.0 = Debug|x86 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|Any CPU.Build.0 = Release|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x64.ActiveCfg = Release|x64 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x64.Build.0 = Release|x64 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x86.ActiveCfg = Release|x86 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x86.Build.0 = Release|x86 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x64.ActiveCfg = Debug|x64 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x64.Build.0 = Debug|x64 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x86.ActiveCfg = Debug|x86 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x86.Build.0 = Debug|x86 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|Any CPU.Build.0 = Release|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x64.ActiveCfg = Release|x64 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x64.Build.0 = Release|x64 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x86.ActiveCfg = Release|x86 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x86.Build.0 = Release|x86 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x64.ActiveCfg = Debug|x64 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x64.Build.0 = Debug|x64 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x86.ActiveCfg = Debug|x86 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x86.Build.0 = Debug|x86 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|Any CPU.Build.0 = Release|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x64.ActiveCfg = Release|x64 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x64.Build.0 = Release|x64 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x86.ActiveCfg = Release|x86 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x86.Build.0 = Release|x86 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x64.ActiveCfg = Debug|x64 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x64.Build.0 = Debug|x64 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x86.ActiveCfg = Debug|x86 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x86.Build.0 = Debug|x86 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|Any CPU.Build.0 = Release|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x64.ActiveCfg = Release|x64 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x64.Build.0 = Release|x64 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x86.ActiveCfg = Release|x86 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x86.Build.0 = Release|x86 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x64.ActiveCfg = Debug|x64 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x64.Build.0 = Debug|x64 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x86.ActiveCfg = Debug|x86 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x86.Build.0 = Debug|x86 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|Any CPU.Build.0 = Release|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x64.ActiveCfg = Release|x64 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x64.Build.0 = Release|x64 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x86.ActiveCfg = Release|x86 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x86.Build.0 = Release|x86 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x64.ActiveCfg = Debug|x64 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x64.Build.0 = Debug|x64 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x86.ActiveCfg = Debug|x86 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x86.Build.0 = Debug|x86 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|Any CPU.Build.0 = Release|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x64.ActiveCfg = Release|x64 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x64.Build.0 = Release|x64 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x86.ActiveCfg = Release|x86 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x86.Build.0 = Release|x86 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.ActiveCfg = Debug|x64 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.Build.0 = Debug|x64 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.ActiveCfg = Debug|x86 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.Build.0 = Debug|x86 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|Any CPU.Build.0 = Release|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.ActiveCfg = Release|x64 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.Build.0 = Release|x64 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.ActiveCfg = Release|x86 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.Build.0 = Release|x86 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x64.ActiveCfg = Debug|x64 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x64.Build.0 = Debug|x64 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x86.ActiveCfg = Debug|x86 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x86.Build.0 = Debug|x86 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|Any CPU.Build.0 = Release|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x64.ActiveCfg = Release|x64 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x64.Build.0 = Release|x64 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x86.ActiveCfg = Release|x86 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x86.Build.0 = Release|x86 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x64.ActiveCfg = Debug|x64 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x64.Build.0 = Debug|x64 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x86.ActiveCfg = Debug|x86 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x86.Build.0 = Debug|x86 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|Any CPU.Build.0 = Release|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x64.ActiveCfg = Release|x64 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x64.Build.0 = Release|x64 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x86.ActiveCfg = Release|x86 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x86.Build.0 = Release|x86 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x64.ActiveCfg = Debug|x64 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x64.Build.0 = Debug|x64 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x86.ActiveCfg = Debug|x86 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x86.Build.0 = Debug|x86 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|Any CPU.Build.0 = Release|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x64.ActiveCfg = Release|x64 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x64.Build.0 = Release|x64 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x86.ActiveCfg = Release|x86 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x86.Build.0 = Release|x86 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x64.ActiveCfg = Debug|x64 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x64.Build.0 = Debug|x64 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x86.ActiveCfg = Debug|x86 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x86.Build.0 = Debug|x86 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|Any CPU.Build.0 = Release|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x64.ActiveCfg = Release|x64 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x64.Build.0 = Release|x64 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x86.ActiveCfg = Release|x86 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x86.Build.0 = Release|x86 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x64.ActiveCfg = Debug|x64 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x64.Build.0 = Debug|x64 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x86.ActiveCfg = Debug|x86 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x86.Build.0 = Debug|x86 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|Any CPU.Build.0 = Release|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x64.ActiveCfg = Release|x64 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x64.Build.0 = Release|x64 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x86.ActiveCfg = Release|x86 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x86.Build.0 = Release|x86 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x64.ActiveCfg = Debug|x64 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x64.Build.0 = Debug|x64 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x86.ActiveCfg = Debug|x86 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x86.Build.0 = Debug|x86 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|Any CPU.Build.0 = Release|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x64.ActiveCfg = Release|x64 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x64.Build.0 = Release|x64 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x86.ActiveCfg = Release|x86 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x86.Build.0 = Release|x86 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x64.ActiveCfg = Debug|x64 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x64.Build.0 = Debug|x64 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x86.ActiveCfg = Debug|x86 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x86.Build.0 = Debug|x86 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|Any CPU.Build.0 = Release|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x64.ActiveCfg = Release|x64 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x64.Build.0 = Release|x64 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x86.ActiveCfg = Release|x86 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x86.Build.0 = Release|x86 + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x64.ActiveCfg = Debug|x64 + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x64.Build.0 = Debug|x64 + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x86.ActiveCfg = Debug|x86 + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x86.Build.0 = Debug|x86 + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|Any CPU.Build.0 = Release|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x64.ActiveCfg = Release|x64 + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x64.Build.0 = Release|x64 + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x86.ActiveCfg = Release|x86 + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x86.Build.0 = Release|x86 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x64.ActiveCfg = Debug|x64 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x64.Build.0 = Debug|x64 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x86.ActiveCfg = Debug|x86 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x86.Build.0 = Debug|x86 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|Any CPU.Build.0 = Release|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x64.ActiveCfg = Release|x64 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x64.Build.0 = Release|x64 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x86.ActiveCfg = Release|x86 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x86.Build.0 = Release|x86 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x64.ActiveCfg = Debug|x64 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x64.Build.0 = Debug|x64 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x86.ActiveCfg = Debug|x86 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x86.Build.0 = Debug|x86 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|Any CPU.Build.0 = Release|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x64.ActiveCfg = Release|x64 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x64.Build.0 = Release|x64 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x86.ActiveCfg = Release|x86 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x86.Build.0 = Release|x86 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x64.ActiveCfg = Debug|x64 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x64.Build.0 = Debug|x64 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x86.ActiveCfg = Debug|x86 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x86.Build.0 = Debug|x86 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|Any CPU.Build.0 = Release|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x64.ActiveCfg = Release|x64 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x64.Build.0 = Release|x64 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x86.ActiveCfg = Release|x86 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x86.Build.0 = Release|x86 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x64.ActiveCfg = Debug|x64 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x64.Build.0 = Debug|x64 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x86.ActiveCfg = Debug|x86 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x86.Build.0 = Debug|x86 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|Any CPU.Build.0 = Release|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x64.ActiveCfg = Release|x64 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x64.Build.0 = Release|x64 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x86.ActiveCfg = Release|x86 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x86.Build.0 = Release|x86 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x64.ActiveCfg = Debug|x64 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x64.Build.0 = Debug|x64 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x86.ActiveCfg = Debug|x86 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x86.Build.0 = Debug|x86 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|Any CPU.Build.0 = Release|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x64.ActiveCfg = Release|x64 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x64.Build.0 = Release|x64 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x86.ActiveCfg = Release|x86 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x86.Build.0 = Release|x86 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x64.ActiveCfg = Debug|x64 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x64.Build.0 = Debug|x64 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x86.ActiveCfg = Debug|x86 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x86.Build.0 = Debug|x86 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|Any CPU.Build.0 = Release|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x64.ActiveCfg = Release|x64 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x64.Build.0 = Release|x64 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x86.ActiveCfg = Release|x86 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x86.Build.0 = Release|x86 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x64.ActiveCfg = Debug|x64 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x64.Build.0 = Debug|x64 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x86.ActiveCfg = Debug|x86 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x86.Build.0 = Debug|x86 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|Any CPU.Build.0 = Release|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x64.ActiveCfg = Release|x64 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x64.Build.0 = Release|x64 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x86.ActiveCfg = Release|x86 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x86.Build.0 = Release|x86 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x64.ActiveCfg = Debug|x64 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x64.Build.0 = Debug|x64 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x86.ActiveCfg = Debug|x86 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x86.Build.0 = Debug|x86 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|Any CPU.Build.0 = Release|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x64.ActiveCfg = Release|x64 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x64.Build.0 = Release|x64 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x86.ActiveCfg = Release|x86 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x86.Build.0 = Release|x86 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x64.ActiveCfg = Debug|x64 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x64.Build.0 = Debug|x64 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x86.ActiveCfg = Debug|x86 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x86.Build.0 = Debug|x86 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|Any CPU.Build.0 = Release|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x64.ActiveCfg = Release|x64 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x64.Build.0 = Release|x64 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x86.ActiveCfg = Release|x86 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x86.Build.0 = Release|x86 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x64.ActiveCfg = Debug|x64 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x64.Build.0 = Debug|x64 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x86.ActiveCfg = Debug|x86 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x86.Build.0 = Debug|x86 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|Any CPU.Build.0 = Release|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x64.ActiveCfg = Release|x64 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x64.Build.0 = Release|x64 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x86.ActiveCfg = Release|x86 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x86.Build.0 = Release|x86 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x64.ActiveCfg = Debug|x64 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x64.Build.0 = Debug|x64 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x86.ActiveCfg = Debug|x86 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x86.Build.0 = Debug|x86 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|Any CPU.Build.0 = Release|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x64.ActiveCfg = Release|x64 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x64.Build.0 = Release|x64 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x86.ActiveCfg = Release|x86 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x86.Build.0 = Release|x86 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x64.ActiveCfg = Debug|x64 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x64.Build.0 = Debug|x64 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x86.ActiveCfg = Debug|x86 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x86.Build.0 = Debug|x86 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|Any CPU.Build.0 = Release|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x64.ActiveCfg = Release|x64 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x64.Build.0 = Release|x64 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x86.ActiveCfg = Release|x86 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x86.Build.0 = Release|x86 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x64.ActiveCfg = Debug|x64 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x64.Build.0 = Debug|x64 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x86.ActiveCfg = Debug|x86 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x86.Build.0 = Debug|x86 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|Any CPU.Build.0 = Release|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x64.ActiveCfg = Release|x64 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x64.Build.0 = Release|x64 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x86.ActiveCfg = Release|x86 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x86.Build.0 = Release|x86 + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|x64.ActiveCfg = Debug|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|x64.Build.0 = Debug|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|x86.ActiveCfg = Debug|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|x86.Build.0 = Debug|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Release|Any CPU.Build.0 = Release|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Release|x64.ActiveCfg = Release|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Release|x64.Build.0 = Release|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Release|x86.ActiveCfg = Release|Any CPU + {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Release|x86.Build.0 = Release|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x64.ActiveCfg = Debug|x64 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x64.Build.0 = Debug|x64 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x86.ActiveCfg = Debug|x86 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x86.Build.0 = Debug|x86 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|Any CPU.Build.0 = Release|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x64.ActiveCfg = Release|x64 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x64.Build.0 = Release|x64 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x86.ActiveCfg = Release|x86 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x86.Build.0 = Release|x86 + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Debug|x64.ActiveCfg = Debug|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Debug|x64.Build.0 = Debug|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Debug|x86.ActiveCfg = Debug|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Debug|x86.Build.0 = Debug|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Release|Any CPU.Build.0 = Release|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Release|x64.ActiveCfg = Release|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Release|x64.Build.0 = Release|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Release|x86.ActiveCfg = Release|Any CPU + {6C2F3463-5E01-4BF8-B5AC-3600435FE2A9}.Release|x86.Build.0 = Release|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Debug|x64.Build.0 = Debug|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Debug|x86.Build.0 = Debug|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Release|Any CPU.Build.0 = Release|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Release|x64.ActiveCfg = Release|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Release|x64.Build.0 = Release|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Release|x86.ActiveCfg = Release|Any CPU + {5BEDBE28-89B0-4176-989B-B4156DAC8191}.Release|x86.Build.0 = Release|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Debug|x64.ActiveCfg = Debug|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Debug|x64.Build.0 = Debug|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Debug|x86.ActiveCfg = Debug|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Debug|x86.Build.0 = Debug|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Release|Any CPU.Build.0 = Release|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Release|x64.ActiveCfg = Release|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Release|x64.Build.0 = Release|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Release|x86.ActiveCfg = Release|Any CPU + {A9CED8BA-9055-4DA6-A302-A4207C465AF0}.Release|x86.Build.0 = Release|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Debug|x64.ActiveCfg = Debug|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Debug|x64.Build.0 = Debug|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Debug|x86.ActiveCfg = Debug|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Debug|x86.Build.0 = Debug|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Release|Any CPU.Build.0 = Release|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Release|x64.ActiveCfg = Release|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Release|x64.Build.0 = Release|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Release|x86.ActiveCfg = Release|Any CPU + {8A56F216-2B71-4F72-B86B-2DE489D578DB}.Release|x86.Build.0 = Release|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Debug|x64.ActiveCfg = Debug|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Debug|x64.Build.0 = Debug|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Debug|x86.ActiveCfg = Debug|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Debug|x86.Build.0 = Debug|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Release|Any CPU.Build.0 = Release|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Release|x64.ActiveCfg = Release|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Release|x64.Build.0 = Release|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Release|x86.ActiveCfg = Release|Any CPU + {BFFE7AFD-0996-4381-BF06-5D031B3E54A8}.Release|x86.Build.0 = Release|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Debug|x64.ActiveCfg = Debug|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Debug|x64.Build.0 = Debug|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Debug|x86.ActiveCfg = Debug|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Debug|x86.Build.0 = Debug|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Release|Any CPU.Build.0 = Release|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Release|x64.ActiveCfg = Release|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Release|x64.Build.0 = Release|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Release|x86.ActiveCfg = Release|Any CPU + {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65}.Release|x86.Build.0 = Release|Any CPU + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Debug|x64.ActiveCfg = Debug|x64 + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Debug|x64.Build.0 = Debug|x64 + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Debug|x86.ActiveCfg = Debug|x86 + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Debug|x86.Build.0 = Debug|x86 + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Release|Any CPU.Build.0 = Release|Any CPU + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Release|x64.ActiveCfg = Release|x64 + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Release|x64.Build.0 = Release|x64 + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Release|x86.ActiveCfg = Release|x86 + {AE723DEF-1A44-4F9C-8670-DBCAB79626A2}.Release|x86.Build.0 = Release|x86 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Debug|x64.ActiveCfg = Debug|x64 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Debug|x64.Build.0 = Debug|x64 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Debug|x86.ActiveCfg = Debug|x86 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Debug|x86.Build.0 = Debug|x86 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Release|Any CPU.Build.0 = Release|Any CPU + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Release|x64.ActiveCfg = Release|x64 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Release|x64.Build.0 = Release|x64 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Release|x86.ActiveCfg = Release|x86 + {6F1D7847-D610-4E52-A184-405DAEFA41A9}.Release|x86.Build.0 = Release|x86 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Debug|x64.ActiveCfg = Debug|x64 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Debug|x64.Build.0 = Debug|x64 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Debug|x86.ActiveCfg = Debug|x86 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Debug|x86.Build.0 = Debug|x86 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Release|Any CPU.Build.0 = Release|Any CPU + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Release|x64.ActiveCfg = Release|x64 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Release|x64.Build.0 = Release|x64 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Release|x86.ActiveCfg = Release|x86 + {62551FD3-C21F-4E16-A7FC-6A017508809C}.Release|x86.Build.0 = Release|x86 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Debug|x64.ActiveCfg = Debug|x64 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Debug|x64.Build.0 = Debug|x64 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Debug|x86.ActiveCfg = Debug|x86 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Debug|x86.Build.0 = Debug|x86 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Release|Any CPU.Build.0 = Release|Any CPU + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Release|x64.ActiveCfg = Release|x64 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Release|x64.Build.0 = Release|x64 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Release|x86.ActiveCfg = Release|x86 + {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49}.Release|x86.Build.0 = Release|x86 + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Debug|x64.ActiveCfg = Debug|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Debug|x64.Build.0 = Debug|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Debug|x86.ActiveCfg = Debug|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Debug|x86.Build.0 = Debug|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Release|Any CPU.Build.0 = Release|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Release|x64.ActiveCfg = Release|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Release|x64.Build.0 = Release|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Release|x86.ActiveCfg = Release|Any CPU + {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8}.Release|x86.Build.0 = Release|Any CPU + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Debug|x64.ActiveCfg = Debug|x64 + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Debug|x64.Build.0 = Debug|x64 + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Debug|x86.ActiveCfg = Debug|x86 + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Debug|x86.Build.0 = Debug|x86 + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Release|Any CPU.Build.0 = Release|Any CPU + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Release|x64.ActiveCfg = Release|x64 + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Release|x64.Build.0 = Release|x64 + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Release|x86.ActiveCfg = Release|x86 + {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE}.Release|x86.Build.0 = Release|x86 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Debug|x64.ActiveCfg = Debug|x64 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Debug|x64.Build.0 = Debug|x64 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Debug|x86.ActiveCfg = Debug|x86 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Debug|x86.Build.0 = Debug|x86 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Release|Any CPU.Build.0 = Release|Any CPU + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Release|x64.ActiveCfg = Release|x64 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Release|x64.Build.0 = Release|x64 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Release|x86.ActiveCfg = Release|x86 + {005C27BE-ED6E-4602-8199-5F9EB7591CEB}.Release|x86.Build.0 = Release|x86 + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Debug|x64.ActiveCfg = Debug|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Debug|x64.Build.0 = Debug|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Debug|x86.ActiveCfg = Debug|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Debug|x86.Build.0 = Debug|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Release|Any CPU.Build.0 = Release|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Release|x64.ActiveCfg = Release|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Release|x64.Build.0 = Release|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Release|x86.ActiveCfg = Release|Any CPU + {7BBAF34F-EBBD-40C0-8880-630957FB581C}.Release|x86.Build.0 = Release|Any CPU + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|x64.ActiveCfg = Debug|x64 + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|x64.Build.0 = Debug|x64 + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|x86.ActiveCfg = Debug|x86 + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|x86.Build.0 = Debug|x86 + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Release|Any CPU.Build.0 = Release|Any CPU + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Release|x64.ActiveCfg = Release|x64 + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Release|x64.Build.0 = Release|x64 + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Release|x86.ActiveCfg = Release|x86 + {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {7AA47EB2-2C43-49F3-AF26-E2D9A5F0577D} + EndGlobalSection +EndGlobal diff --git a/HeuristicLab 3.3 Tests DotNetStandard.sln b/HeuristicLab 3.3 Tests DotNetStandard.sln new file mode 100644 index 0000000000..ed1eae6584 --- /dev/null +++ b/HeuristicLab 3.3 Tests DotNetStandard.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Tests", "HeuristicLab.Tests\HeuristicLab.Tests.csproj", "{B62872C1-6752-4758-9823-751A2D28C388}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4880EC01-2CAD-4291-BBC1-B269AD67D4FA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B62872C1-6752-4758-9823-751A2D28C388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B62872C1-6752-4758-9823-751A2D28C388}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B62872C1-6752-4758-9823-751A2D28C388}.Debug|x64.ActiveCfg = Debug|x64 + {B62872C1-6752-4758-9823-751A2D28C388}.Debug|x64.Build.0 = Debug|x64 + {B62872C1-6752-4758-9823-751A2D28C388}.Debug|x86.ActiveCfg = Debug|x86 + {B62872C1-6752-4758-9823-751A2D28C388}.Debug|x86.Build.0 = Debug|x86 + {B62872C1-6752-4758-9823-751A2D28C388}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B62872C1-6752-4758-9823-751A2D28C388}.Release|Any CPU.Build.0 = Release|Any CPU + {B62872C1-6752-4758-9823-751A2D28C388}.Release|x64.ActiveCfg = Release|x64 + {B62872C1-6752-4758-9823-751A2D28C388}.Release|x64.Build.0 = Release|x64 + {B62872C1-6752-4758-9823-751A2D28C388}.Release|x86.ActiveCfg = Release|x86 + {B62872C1-6752-4758-9823-751A2D28C388}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/HeuristicLab 3.3.sln b/HeuristicLab 3.3.sln index f8e9363351..eb453429a1 100644 --- a/HeuristicLab 3.3.sln +++ b/HeuristicLab 3.3.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30907.101 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32825.248 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{96396439-A764-4022-A8D2-BE021449B8D1}" ProjectSection(SolutionItems) = preProject @@ -9,6 +9,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Build.cmd = Build.cmd ConfigMerger.exe = ConfigMerger.exe ..\documentation\License\gpl-3.0.txt = ..\documentation\License\gpl-3.0.txt + Directory.Build.props = Directory.Build.props MergeConfigs.cmd = MergeConfigs.cmd PreBuildEvent.cmd = PreBuildEvent.cmd EndProjectSection @@ -166,89 +167,89 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab-3.3", "Heurist {E4EE5AFB-D552-447B-8A16-6CBE7938AF32} = {E4EE5AFB-D552-447B-8A16-6CBE7938AF32} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.PluginInfrastructure-3.3", "HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj", "{94186A6A-5176-4402-AE83-886557B53CCA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.PluginInfrastructure-3.3", "HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj", "{94186A6A-5176-4402-AE83-886557B53CCA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence-3.3", "HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj", "{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Persistence-3.3", "HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj", "{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Persistence.GUI-3.3", "HeuristicLab.Persistence.GUI\3.3\HeuristicLab.Persistence.GUI-3.3.csproj", "{A9E282EA-180F-4233-B809-AEDF0787545C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Core-3.3", "HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj", "{C36BD924-A541-4A00-AFA8-41701378DDC5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Core-3.3", "HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj", "{C36BD924-A541-4A00-AFA8-41701378DDC5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Data-3.3", "HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj", "{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Data-3.3", "HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj", "{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators-3.3", "HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj", "{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Operators-3.3", "HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj", "{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.SequentialEngine-3.3", "HeuristicLab.SequentialEngine\3.3\HeuristicLab.SequentialEngine-3.3.csproj", "{DC3D7072-7999-4719-B65D-3997744D5DC1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.SequentialEngine-3.3", "HeuristicLab.SequentialEngine\3.3\HeuristicLab.SequentialEngine-3.3.csproj", "{DC3D7072-7999-4719-B65D-3997744D5DC1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Random-3.3", "HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj", "{F4539FB6-4708-40C9-BE64-0A1390AEA197}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Random-3.3", "HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj", "{F4539FB6-4708-40C9-BE64-0A1390AEA197}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Selection-3.3", "HeuristicLab.Selection\3.3\HeuristicLab.Selection-3.3.csproj", "{2C36CD4F-E5F5-43A4-801A-201EA895FE17}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Selection-3.3", "HeuristicLab.Selection\3.3\HeuristicLab.Selection-3.3.csproj", "{2C36CD4F-E5F5-43A4-801A-201EA895FE17}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Programmable-3.3", "HeuristicLab.Operators.Programmable\3.3\HeuristicLab.Operators.Programmable-3.3.csproj", "{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Operators.Programmable-3.3", "HeuristicLab.Operators.Programmable\3.3\HeuristicLab.Operators.Programmable-3.3.csproj", "{6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Tracing-3.3", "HeuristicLab.Tracing\3.3\HeuristicLab.Tracing-3.3.csproj", "{EE2034D9-6E27-48A1-B855-42D45F69A4FC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Tracing-3.3", "HeuristicLab.Tracing\3.3\HeuristicLab.Tracing-3.3.csproj", "{EE2034D9-6E27-48A1-B855-42D45F69A4FC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Common.Resources-3.3", "HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj", "{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Common.Resources-3.3", "HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj", "{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimizer-3.3", "HeuristicLab.Optimizer\3.3\HeuristicLab.Optimizer-3.3.csproj", "{C664305E-497C-4533-A140-967DEDB05C19}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Core.Views-3.3", "HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj", "{E226881D-315F-423D-B419-A766FE0D8685}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Collections-3.3", "HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj", "{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Collections-3.3", "HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj", "{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Data.Views-3.3", "HeuristicLab.Data.Views\3.3\HeuristicLab.Data.Views-3.3.csproj", "{72104A0B-90E7-42F3-9ABE-9BBBADD4B943}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Views-3.3", "HeuristicLab.Operators.Views\3.3\HeuristicLab.Operators.Views-3.3.csproj", "{C49CB749-8B24-4628-8003-E86475749410}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Parameters-3.3", "HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj", "{56F9106A-079F-4C61-92F6-86A84C2D84B7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Parameters-3.3", "HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj", "{56F9106A-079F-4C61-92F6-86A84C2D84B7}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Parameters.Views-3.3", "HeuristicLab.Parameters.Views\3.3\HeuristicLab.Parameters.Views-3.3.csproj", "{AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Views.GraphVisualization-3.3", "HeuristicLab.Operators.Views.GraphVisualization\3.3\HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj", "{57F38579-409D-4DD8-AB19-3F2C4A665126}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization-3.3", "HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj", "{14AB8D24-25BC-400C-A846-4627AA945192}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Optimization-3.3", "HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj", "{14AB8D24-25BC-400C-A846-4627AA945192}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization.Views-3.3", "HeuristicLab.Optimization.Views\3.3\HeuristicLab.Optimization.Views-3.3.csproj", "{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis-3.3", "HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj", "{887425B4-4348-49ED-A457-B7D2C26DDBF9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Analysis-3.3", "HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj", "{887425B4-4348-49ED-A457-B7D2C26DDBF9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis.Views-3.3", "HeuristicLab.Analysis.Views\3.3\HeuristicLab.Analysis.Views-3.3.csproj", "{76945D76-CA61-4147-9DC2-0ACDCDDF87F9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Optimization.Operators-3.3", "HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj", "{25087811-F74C-4128-BC86-8324271DA13E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Optimization.Operators-3.3", "HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj", "{25087811-F74C-4128-BC86-8324271DA13E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding-3.3", "HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj", "{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.PermutationEncoding-3.3", "HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj", "{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3", "HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj", "{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3", "HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj", "{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj", "{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj", "{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj", "{66D249C3-A01D-42A8-82A2-919BC8EC3D83}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj", "{66D249C3-A01D-42A8-82A2-919BC8EC3D83}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Knapsack-3.3", "HeuristicLab.Problems.Knapsack\3.3\HeuristicLab.Problems.Knapsack-3.3.csproj", "{E10F395F-C8A6-48AD-B470-9AA7A1F43809}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Knapsack-3.3", "HeuristicLab.Problems.Knapsack\3.3\HeuristicLab.Problems.Knapsack-3.3.csproj", "{E10F395F-C8A6-48AD-B470-9AA7A1F43809}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Knapsack.Views-3.3", "HeuristicLab.Problems.Knapsack.Views\3.3\HeuristicLab.Problems.Knapsack.Views-3.3.csproj", "{A9EE65D9-405B-4C9C-B470-FC911AAC541B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.SimulatedAnnealing-3.3", "HeuristicLab.Algorithms.SimulatedAnnealing\3.3\HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj", "{96E5ED5B-187D-4012-9CDA-D85CDAD38342}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.SimulatedAnnealing-3.3", "HeuristicLab.Algorithms.SimulatedAnnealing\3.3\HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj", "{96E5ED5B-187D-4012-9CDA-D85CDAD38342}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.TabuSearch-3.3", "HeuristicLab.Algorithms.TabuSearch\3.3\HeuristicLab.Algorithms.TabuSearch-3.3.csproj", "{D58A232D-04BA-4186-B73E-0EC86FD31ABE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.TabuSearch-3.3", "HeuristicLab.Algorithms.TabuSearch\3.3\HeuristicLab.Algorithms.TabuSearch-3.3.csproj", "{D58A232D-04BA-4186-B73E-0EC86FD31ABE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.LocalSearch-3.3", "HeuristicLab.Algorithms.LocalSearch\3.3\HeuristicLab.Algorithms.LocalSearch-3.3.csproj", "{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.LocalSearch-3.3", "HeuristicLab.Algorithms.LocalSearch\3.3\HeuristicLab.Algorithms.LocalSearch-3.3.csproj", "{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.EvolutionStrategy-3.3", "HeuristicLab.Algorithms.EvolutionStrategy\3.3\HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj", "{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.EvolutionStrategy-3.3", "HeuristicLab.Algorithms.EvolutionStrategy\3.3\HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj", "{E0B45023-CB84-48A1-A1B7-8295B64B7BAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TravelingSalesman-3.3", "HeuristicLab.Problems.TravelingSalesman\3.3\HeuristicLab.Problems.TravelingSalesman-3.3.csproj", "{D767C38D-8014-46B0-9A32-03A3AECCE34A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.TravelingSalesman-3.3", "HeuristicLab.Problems.TravelingSalesman\3.3\HeuristicLab.Problems.TravelingSalesman-3.3.csproj", "{D767C38D-8014-46B0-9A32-03A3AECCE34A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TravelingSalesman.Views-3.3", "HeuristicLab.Problems.TravelingSalesman.Views\3.3\HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj", "{CDA28124-ACD0-4231-8EB0-C510B361F84E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions-3.3", "HeuristicLab.Problems.TestFunctions\3.3\HeuristicLab.Problems.TestFunctions-3.3.csproj", "{88B9B0E3-344E-4196-82A3-0F9732506FE8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.TestFunctions-3.3", "HeuristicLab.Problems.TestFunctions\3.3\HeuristicLab.Problems.TestFunctions-3.3.csproj", "{88B9B0E3-344E-4196-82A3-0F9732506FE8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions.Views-3.3", "HeuristicLab.Problems.TestFunctions.Views\3.3\HeuristicLab.Problems.TestFunctions.Views-3.3.csproj", "{6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj", "{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj", "{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3", "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm\3.3\HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj", "{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3", "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm\3.3\HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj", "{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Common-3.3", "HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj", "{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Common-3.3", "HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj", "{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding.Views-3.3", "HeuristicLab.Encodings.PermutationEncoding.Views\3.3\HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj", "{3EAF1454-086D-44A2-8509-B1BA24DB1865}" EndProject @@ -260,33 +261,33 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.Common EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Visualization.ChartControlsExtensions-3.3", "HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj", "{315BDA09-3F4F-49B3-9790-B37CFC1C5750}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DebugEngine-3.3", "HeuristicLab.DebugEngine\3.3\HeuristicLab.DebugEngine-3.3.csproj", "{49F28045-7B5F-411B-8D59-16C846FA26E0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.DebugEngine-3.3", "HeuristicLab.DebugEngine\3.3\HeuristicLab.DebugEngine-3.3.csproj", "{49F28045-7B5F-411B-8D59-16C846FA26E0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.NSGA2-3.3", "HeuristicLab.Algorithms.NSGA2\3.3\HeuristicLab.Algorithms.NSGA2-3.3.csproj", "{15452B9F-A436-4139-8EE7-DA72FB8D3664}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.NSGA2-3.3", "HeuristicLab.Algorithms.NSGA2\3.3\HeuristicLab.Algorithms.NSGA2-3.3.csproj", "{15452B9F-A436-4139-8EE7-DA72FB8D3664}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ParallelEngine-3.3", "HeuristicLab.ParallelEngine\3.3\HeuristicLab.ParallelEngine-3.3.csproj", "{00814351-4AB8-4088-9B99-F62787B89E93}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.ParallelEngine-3.3", "HeuristicLab.ParallelEngine\3.3\HeuristicLab.ParallelEngine-3.3.csproj", "{00814351-4AB8-4088-9B99-F62787B89E93}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3", "HeuristicLab.Algorithms.ParticleSwarmOptimization\3.3\HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj", "{2C429157-9C34-4DD3-9D5F-B444B751E39A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3", "HeuristicLab.Algorithms.ParticleSwarmOptimization\3.3\HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj", "{2C429157-9C34-4DD3-9D5F-B444B751E39A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3", "HeuristicLab.Algorithms.VariableNeighborhoodSearch\3.3\HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj", "{E4CFB0C3-0589-4893-B38E-8BEDF885C765}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3", "HeuristicLab.Algorithms.VariableNeighborhoodSearch\3.3\HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj", "{E4CFB0C3-0589-4893-B38E-8BEDF885C765}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis-3.4", "HeuristicLab.Algorithms.DataAnalysis\3.4\HeuristicLab.Algorithms.DataAnalysis-3.4.csproj", "{2E782078-FA81-4B70-B56F-74CE38DAC6C8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.DataAnalysis-3.4", "HeuristicLab.Algorithms.DataAnalysis\3.4\HeuristicLab.Algorithms.DataAnalysis-3.4.csproj", "{2E782078-FA81-4B70-B56F-74CE38DAC6C8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis.Views-3.4", "HeuristicLab.Algorithms.DataAnalysis.Views\3.4\HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj", "{A2330DB0-413D-4424-B4E6-591118E2B9F8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj", "{06D4A186-9319-48A0-BADE-A2058D462EEA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj", "{06D4A186-9319-48A0-BADE-A2058D462EEA}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj", "{423BD94F-963A-438E-BA45-3BB3D61CD03B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis-3.4", "HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj", "{DF87C13E-A889-46FF-8153-66DCAA8C5674}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis-3.4", "HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj", "{DF87C13E-A889-46FF-8153-66DCAA8C5674}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj", "{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj", "{3D28463F-EC96-4D82-AFEE-38BE91A0CA00}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.csproj", "{05BAE4E1-A9FA-4644-AA77-42558720159E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4.csproj", "{05BAE4E1-A9FA-4644-AA77-42558720159E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views-3.4.csproj", "{BF1E4DF4-A4CC-451F-9D50-303F405E265E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj", "{5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj", "{5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj", "{20831A74-D18F-42D9-A667-1CE3AF53DF93}" EndProject @@ -294,15 +295,15 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataA EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Views-3.4", "HeuristicLab.Problems.DataAnalysis.Views\3.4\HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj", "{3E9E8944-44FF-40BB-A622-3A4A7DD0F198}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.QuadraticAssignment-3.3", "HeuristicLab.Problems.QuadraticAssignment\3.3\HeuristicLab.Problems.QuadraticAssignment-3.3.csproj", "{79271BC8-4446-40E2-BB89-9BE4E17174FE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.QuadraticAssignment-3.3", "HeuristicLab.Problems.QuadraticAssignment\3.3\HeuristicLab.Problems.QuadraticAssignment-3.3.csproj", "{79271BC8-4446-40E2-BB89-9BE4E17174FE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.QuadraticAssignment.Views-3.3", "HeuristicLab.Problems.QuadraticAssignment.Views\3.3\HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj", "{997F018D-AEA2-4F21-9301-82FAF6A5612D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Views.GraphVisualization.Views-3.3", "HeuristicLab.Operators.Views.GraphVisualization.Views\3.3\HeuristicLab.Operators.Views.GraphVisualization.Views-3.3.csproj", "{0C39A349-1979-419A-89BD-E4E2F26BD287}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3", "HeuristicLab.Problems.QuadraticAssignment.Algorithms\3.3\HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3.csproj", "{5B9B9E8C-2706-43C2-80B8-A08341E431F7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3", "HeuristicLab.Problems.QuadraticAssignment.Algorithms\3.3\HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3.csproj", "{5B9B9E8C-2706-43C2-80B8-A08341E431F7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Hive-3.3", "HeuristicLab.Hive\3.3\HeuristicLab.Hive-3.3.csproj", "{F98A1740-9AC9-4D36-A582-6A2D0D06978D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Hive-3.3", "HeuristicLab.Hive\3.3\HeuristicLab.Hive-3.3.csproj", "{F98A1740-9AC9-4D36-A582-6A2D0D06978D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.Hive-3.3", "HeuristicLab.Clients.Hive\3.3\HeuristicLab.Clients.Hive-3.3.csproj", "{B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB}" EndProject @@ -310,37 +311,37 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.Hive.V EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.Hive.Administrator-3.3", "HeuristicLab.Clients.Hive.Administrator\3.3\HeuristicLab.Clients.Hive.Administrator-3.3.csproj", "{5211F1AD-BBA2-4C62-8749-DCA0A25CF5D8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.Benchmarks-3.3", "HeuristicLab.Algorithms.Benchmarks\3.3\HeuristicLab.Algorithms.Benchmarks-3.3.csproj", "{068C70A7-8CAF-4AB6-8721-4564D62292BC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.Benchmarks-3.3", "HeuristicLab.Algorithms.Benchmarks\3.3\HeuristicLab.Algorithms.Benchmarks-3.3.csproj", "{068C70A7-8CAF-4AB6-8721-4564D62292BC}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.Benchmarks.Views-3.3", "HeuristicLab.Algorithms.Benchmarks.Views\3.3\HeuristicLab.Algorithms.Benchmarks.Views-3.3.csproj", "{3C906172-E044-4DF0-B4FD-AA21192D5D3E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances-3.3", "HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj", "{3540E29E-4793-49E7-8EE2-FEA7F61C3994}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances-3.3", "HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj", "{3540E29E-4793-49E7-8EE2-FEA7F61C3994}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.ElloumiCTAP-3.3", "HeuristicLab.Problems.Instances.ElloumiCTAP\3.3\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj", "{CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.ElloumiCTAP-3.3", "HeuristicLab.Problems.Instances.ElloumiCTAP\3.3\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj", "{CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.QAPLIB-3.3", "HeuristicLab.Problems.Instances.QAPLIB\3.3\HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj", "{73F29D43-5714-4069-8FAB-0D18FEB5F175}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.QAPLIB-3.3", "HeuristicLab.Problems.Instances.QAPLIB\3.3\HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj", "{73F29D43-5714-4069-8FAB-0D18FEB5F175}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.TSPLIB-3.3", "HeuristicLab.Problems.Instances.TSPLIB\3.3\HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj", "{CE0F99D6-1C56-48A9-9B68-3E5B833703EF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.TSPLIB-3.3", "HeuristicLab.Problems.Instances.TSPLIB\3.3\HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj", "{CE0F99D6-1C56-48A9-9B68-3E5B833703EF}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Operators.Programmable.Views-3.3", "HeuristicLab.Operators.Programmable.Views\3.3\HeuristicLab.Operators.Programmable.Views-3.3.csproj", "{8C426FA3-6614-412C-B669-BCE58DB9710E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.TSPLIB.Views-3.3", "HeuristicLab.Problems.Instances.TSPLIB.Views\3.3\HeuristicLab.Problems.Instances.TSPLIB.Views-3.3.csproj", "{B7FA451C-26BF-4EE5-8E0E-BECAADA5B8E9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.CordeauGQAP-3.3", "HeuristicLab.Problems.Instances.CordeauGQAP\3.3\HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj", "{1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.CordeauGQAP-3.3", "HeuristicLab.Problems.Instances.CordeauGQAP\3.3\HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj", "{1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.Views-3.3", "HeuristicLab.Problems.Instances.Views\3.3\HeuristicLab.Problems.Instances.Views-3.3.csproj", "{B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.DataAnalysis-3.3", "HeuristicLab.Problems.Instances.DataAnalysis\3.3\HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj", "{94C7714E-29D4-4D6D-B213-2C18D627AB75}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.DataAnalysis-3.3", "HeuristicLab.Problems.Instances.DataAnalysis\3.3\HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj", "{94C7714E-29D4-4D6D-B213-2C18D627AB75}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.LinearAssignment-3.3", "HeuristicLab.Problems.LinearAssignment\3.3\HeuristicLab.Problems.LinearAssignment-3.3.csproj", "{7250653F-DE83-4069-8D34-8050E8E45EA1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.LinearAssignment-3.3", "HeuristicLab.Problems.LinearAssignment\3.3\HeuristicLab.Problems.LinearAssignment-3.3.csproj", "{7250653F-DE83-4069-8D34-8050E8E45EA1}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.LinearAssignment.Views-3.3", "HeuristicLab.Problems.LinearAssignment.Views\3.3\HeuristicLab.Problems.LinearAssignment.Views-3.3.csproj", "{8A7C524C-4B72-45FD-8274-EFB67C27C169}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting-3.4", "HeuristicLab.Problems.VehicleRouting\3.4\HeuristicLab.Problems.VehicleRouting-3.4.csproj", "{B94FFB82-43D4-40AB-9980-B03470ADF221}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.VehicleRouting-3.4", "HeuristicLab.Problems.VehicleRouting\3.4\HeuristicLab.Problems.VehicleRouting-3.4.csproj", "{B94FFB82-43D4-40AB-9980-B03470ADF221}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting.Views-3.4", "HeuristicLab.Problems.VehicleRouting.Views\3.4\HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj", "{7EA0985E-A1D6-4FA7-B30A-2633FDFB01F0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.VehicleRouting-3.4", "HeuristicLab.Problems.Instances.VehicleRouting\3.4\HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj", "{8C265E11-4F8D-4CED-9E6B-F400A0075C18}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.VehicleRouting-3.4", "HeuristicLab.Problems.Instances.VehicleRouting\3.4\HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj", "{8C265E11-4F8D-4CED-9E6B-F400A0075C18}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.VehicleRouting.Views-3.4", "HeuristicLab.Problems.Instances.VehicleRouting.Views\3.4\HeuristicLab.Problems.Instances.VehicleRouting.Views-3.4.csproj", "{E2419315-B10A-4BC1-B517-A24DCF4C59AC}" EndProject @@ -358,34 +359,34 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.OKB-3. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Clients.OKB.Views-3.3", "HeuristicLab.Clients.OKB.Views\3.3\HeuristicLab.Clients.OKB.Views-3.3.csproj", "{399EBB6E-37A1-4AE4-B8CD-0D461FF286A3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.ScatterSearch-3.3", "HeuristicLab.Algorithms.ScatterSearch\3.3\HeuristicLab.Algorithms.ScatterSearch-3.3.csproj", "{5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ScatterSearch-3.3", "HeuristicLab.Algorithms.ScatterSearch\3.3\HeuristicLab.Algorithms.ScatterSearch-3.3.csproj", "{5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GradientDescent-3.3", "HeuristicLab.Algorithms.GradientDescent\3.3\HeuristicLab.Algorithms.GradientDescent-3.3.csproj", "{1256B945-EEA9-4BE4-9880-76B5B113F089}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.GradientDescent-3.3", "HeuristicLab.Algorithms.GradientDescent\3.3\HeuristicLab.Algorithms.GradientDescent-3.3.csproj", "{1256B945-EEA9-4BE4-9880-76B5B113F089}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3", "HeuristicLab.Problems.Instances.DataAnalysis.Views\3.3\HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj", "{72232235-B6CF-4E6C-B086-9E9E11AA0717}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.RAPGA-3.3", "HeuristicLab.Algorithms.RAPGA\3.3\HeuristicLab.Algorithms.RAPGA-3.3.csproj", "{B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.RAPGA-3.3", "HeuristicLab.Algorithms.RAPGA\3.3\HeuristicLab.Algorithms.RAPGA-3.3.csproj", "{B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.ScheduleEncoding-3.3", "HeuristicLab.Encodings.ScheduleEncoding\3.3\HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj", "{17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.ScheduleEncoding-3.3", "HeuristicLab.Encodings.ScheduleEncoding\3.3\HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj", "{17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.ScheduleEncoding.Views-3.3", "HeuristicLab.Encodings.ScheduleEncoding.Views\3.3\HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.csproj", "{0C378762-D5DB-488A-8931-2BA42B1B7CBF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Scheduling-3.3", "HeuristicLab.Problems.Scheduling\3.3\HeuristicLab.Problems.Scheduling-3.3.csproj", "{2BF1D639-1A74-44ED-AAAD-41ECD395AD93}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Scheduling-3.3", "HeuristicLab.Problems.Scheduling\3.3\HeuristicLab.Problems.Scheduling-3.3.csproj", "{2BF1D639-1A74-44ED-AAAD-41ECD395AD93}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Scheduling.Views-3.3", "HeuristicLab.Problems.Scheduling.Views\3.3\HeuristicLab.Problems.Scheduling.Views-3.3.csproj", "{78763A4E-E163-48C2-98EB-709760D06F25}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj", "{07486E68-1517-4B9D-A58D-A38E99AE71AB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj", "{07486E68-1517-4B9D-A58D-A38E99AE71AB}" ProjectSection(ProjectDependencies) = postProject {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2} = {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4", "HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views\3.4\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4.csproj", "{E6CB1FC5-78EC-4EB8-BF12-35303C36F962}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.Scheduling-3.3", "HeuristicLab.Problems.Instances.Scheduling\3.3\HeuristicLab.Problems.Instances.Scheduling-3.3.csproj", "{9D792B6D-836B-46DC-9D69-50B4B1E7B87F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.Scheduling-3.3", "HeuristicLab.Problems.Instances.Scheduling\3.3\HeuristicLab.Problems.Instances.Scheduling-3.3.csproj", "{9D792B6D-836B-46DC-9D69-50B4B1E7B87F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ParallelEngine.Views-3.3", "HeuristicLab.ParallelEngine.Views\3.3\HeuristicLab.ParallelEngine.Views-3.3.csproj", "{D34A7620-3E23-40D9-8647-637BE901F271}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Trading-3.4", "HeuristicLab.Problems.DataAnalysis.Trading\3.4\HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj", "{E4EE5AFB-D552-447B-8A16-6CBE7938AF32}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.DataAnalysis.Trading-3.4", "HeuristicLab.Problems.DataAnalysis.Trading\3.4\HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj", "{E4EE5AFB-D552-447B-8A16-6CBE7938AF32}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4", "HeuristicLab.Problems.DataAnalysis.Trading.Views\3.4\HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4.csproj", "{CB3D0A1E-1BE8-476B-A53C-2B189E30064F}" EndProject @@ -393,23 +394,21 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Scripting-3.3" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Scripting.Views-3.3", "HeuristicLab.Scripting.Views\3.3\HeuristicLab.Scripting.Views-3.3.csproj", "{0C2917C8-7AA8-4E18-800A-C4D064F992ED}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ParameterOptimization-3.3", "HeuristicLab.Problems.ParameterOptimization\3.3\HeuristicLab.Problems.ParameterOptimization-3.3.csproj", "{D2C39FBA-A1D5-403A-9211-B0A299A76313}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.ParameterOptimization-3.3", "HeuristicLab.Problems.ParameterOptimization\3.3\HeuristicLab.Problems.ParameterOptimization-3.3.csproj", "{D2C39FBA-A1D5-403A-9211-B0A299A76313}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.Scilab-3.3", "HeuristicLab.Problems.ExternalEvaluation.Scilab\3.3\HeuristicLab.Problems.ExternalEvaluation.Scilab-3.3.csproj", "{C633FB23-BAE6-448E-BF5D-E1F9A839B5ED}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.Matlab-3.3", "HeuristicLab.Problems.ExternalEvaluation.Matlab\3.3\HeuristicLab.Problems.ExternalEvaluation.Matlab-3.3.csproj", "{362A5DC3-969D-43FB-A552-D2F52B780188}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DataPreprocessing-3.4", "HeuristicLab.DataPreprocessing\3.4\HeuristicLab.DataPreprocessing-3.4.csproj", "{3B90F866-70F8-43EF-A541-51819D255B7B}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DataPreprocessing.Views-3.4", "HeuristicLab.DataPreprocessing.Views\3.4\HeuristicLab.DataPreprocessing.Views-3.4.csproj", "{3FC7515E-D8A0-41FE-8CFA-50E3ADA61A1E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Analysis.Statistics.Views-3.3", "HeuristicLab.Analysis.Statistics.Views\3.3\HeuristicLab.Analysis.Statistics.Views-3.3.csproj", "{052881B5-4D5D-41C5-9555-FECA01E0BAC8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.CodeEditor-3.4", "HeuristicLab.CodeEditor\3.4\HeuristicLab.CodeEditor-3.4.csproj", "{C38691AE-ECB4-489A-A05D-B035554E0168}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3", "HeuristicLab.Algorithms.ParameterlessPopulationPyramid\3.3\HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3.csproj", "{9319C447-8183-4DBC-8145-0E3CF98084CC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3", "HeuristicLab.Algorithms.ParameterlessPopulationPyramid\3.3\HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3.csproj", "{9319C447-8183-4DBC-8145-0E3CF98084CC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Binary-3.3", "HeuristicLab.Problems.Binary\3.3\HeuristicLab.Problems.Binary-3.3.csproj", "{FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Binary-3.3", "HeuristicLab.Problems.Binary\3.3\HeuristicLab.Problems.Binary-3.3.csproj", "{FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Programmable-3.3", "HeuristicLab.Problems.Programmable\3.3\HeuristicLab.Problems.Programmable-3.3.csproj", "{EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}" EndProject @@ -421,57 +420,61 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Exter EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.Views-3.4", "HeuristicLab.Problems.ExternalEvaluation.Views\3.4\HeuristicLab.Problems.ExternalEvaluation.Views-3.4.csproj", "{F7E5B975-FDF2-45A4-91CB-FF6D3C33D65E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.NK-3.3", "HeuristicLab.Problems.NK\3.3\HeuristicLab.Problems.NK-3.3.csproj", "{C3AD50E6-E717-490E-ABC7-32EF7FB03C97}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.NK-3.3", "HeuristicLab.Problems.NK\3.3\HeuristicLab.Problems.NK-3.3.csproj", "{C3AD50E6-E717-490E-ABC7-32EF7FB03C97}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OutdatedPlugins", "OutdatedPlugins", "{D1B1DE45-F9C7-4FBF-B73C-E759BC4223D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4", "HeuristicLab.Algorithms.CMAEvolutionStrategy\3.4\HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4.csproj", "{291010E4-2F4E-4D29-A795-753CFF293FDB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4", "HeuristicLab.Algorithms.CMAEvolutionStrategy\3.4\HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4.csproj", "{291010E4-2F4E-4D29-A795-753CFF293FDB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.LinearLinkageEncoding-3.4", "HeuristicLab.Encodings.LinearLinkageEncoding\3.4\HeuristicLab.Encodings.LinearLinkageEncoding-3.4.csproj", "{BE698769-975A-429E-828C-72BB2B6182C8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Orienteering-3.3", "HeuristicLab.Problems.Orienteering\3.3\HeuristicLab.Problems.Orienteering-3.3.csproj", "{D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Encodings.LinearLinkageEncoding-3.4", "HeuristicLab.Encodings.LinearLinkageEncoding\3.4\HeuristicLab.Encodings.LinearLinkageEncoding-3.4.csproj", "{BE698769-975A-429E-828C-72BB2B6182C8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Orienteering.Views-3.3", "HeuristicLab.Problems.Orienteering.Views\3.3\HeuristicLab.Problems.Orienteering.Views-3.3.csproj", "{BBF2CCC8-4D87-4297-8E18-8241FF93F966}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.Orienteering-3.3", "HeuristicLab.Problems.Instances.Orienteering\3.3\HeuristicLab.Problems.Instances.Orienteering-3.3.csproj", "{B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.Orienteering-3.3", "HeuristicLab.Problems.Instances.Orienteering\3.3\HeuristicLab.Problems.Instances.Orienteering-3.3.csproj", "{B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.GeneticProgramming-3.3", "HeuristicLab.Problems.GeneticProgramming\3.3\HeuristicLab.Problems.GeneticProgramming-3.3.csproj", "{02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.GeneticProgramming-3.3", "HeuristicLab.Problems.GeneticProgramming\3.3\HeuristicLab.Problems.GeneticProgramming-3.3.csproj", "{02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.GrammaticalEvolution-3.4", "HeuristicLab.Problems.GrammaticalEvolution\3.4\HeuristicLab.Problems.GrammaticalEvolution-3.4.csproj", "{9372D115-D933-40D2-BD29-A2C1EAC35874}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.GrammaticalEvolution-3.4", "HeuristicLab.Problems.GrammaticalEvolution\3.4\HeuristicLab.Problems.GrammaticalEvolution-3.4.csproj", "{9372D115-D933-40D2-BD29-A2C1EAC35874}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.GeneticProgramming.Views-3.3", "HeuristicLab.Problems.GeneticProgramming.Views\3.3\HeuristicLab.Problems.GeneticProgramming.Views-3.3.csproj", "{26349C8D-72A1-4BAE-95A3-14E96A3B4AE8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3", "HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy\3.3\HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3.csproj", "{1D41EAE6-CC79-41D4-858C-589C4DB5E50D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3", "HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy\3.3\HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3.csproj", "{1D41EAE6-CC79-41D4-858C-589C4DB5E50D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.ALPS-3.3", "HeuristicLab.Algorithms.ALPS\3.3\HeuristicLab.Algorithms.ALPS-3.3.csproj", "{59F354CB-FE13-4253-AED2-AD86372BEC27}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.ALPS-3.3", "HeuristicLab.Algorithms.ALPS\3.3\HeuristicLab.Algorithms.ALPS-3.3.csproj", "{59F354CB-FE13-4253-AED2-AD86372BEC27}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.PTSP-3.3", "HeuristicLab.Problems.PTSP\3.3\HeuristicLab.Problems.PTSP-3.3.csproj", "{97198965-AFEA-496B-B3B1-316905C43FD6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.PTSP-3.3", "HeuristicLab.Problems.PTSP\3.3\HeuristicLab.Problems.PTSP-3.3.csproj", "{97198965-AFEA-496B-B3B1-316905C43FD6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.PTSP.Views-3.3", "HeuristicLab.Problems.PTSP.Views\3.3\HeuristicLab.Problems.PTSP.Views-3.3.csproj", "{90B6CA12-9791-4430-B2D7-CD3ED7F75E2B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.RandomSearch-3.3", "HeuristicLab.Algorithms.RandomSearch\3.3\HeuristicLab.Algorithms.RandomSearch-3.3.csproj", "{4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.RandomSearch-3.3", "HeuristicLab.Algorithms.RandomSearch\3.3\HeuristicLab.Algorithms.RandomSearch-3.3.csproj", "{4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions.MultiObjective-3.3", "HeuristicLab.Problems.TestFunctions.MultiObjective\3.3\HeuristicLab.Problems.TestFunctions.MultiObjective-3.3.csproj", "{D53E8E48-CFAA-4F57-AC35-63BEF4476159}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.TestFunctions.MultiObjective-3.3", "HeuristicLab.Problems.TestFunctions.MultiObjective\3.3\HeuristicLab.Problems.TestFunctions.MultiObjective-3.3.csproj", "{D53E8E48-CFAA-4F57-AC35-63BEF4476159}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.BinPacking.Views-3.3", "HeuristicLab.Problems.BinPacking.Views\3.3\HeuristicLab.Problems.BinPacking.Views-3.3.csproj", "{8CFC7A61-E214-44DC-96B3-4CEA9B8E958E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.BinPacking-3.3", "HeuristicLab.Problems.BinPacking\3.3\HeuristicLab.Problems.BinPacking-3.3.csproj", "{F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.BinPacking-3.3", "HeuristicLab.Problems.BinPacking\3.3\HeuristicLab.Problems.BinPacking-3.3.csproj", "{F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4", "HeuristicLab.Algorithms.DataAnalysis.Glmnet\3.4\HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4.csproj", "{4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4", "HeuristicLab.Algorithms.DataAnalysis.Glmnet\3.4\HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4.csproj", "{4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Instances.DIMACS-3.3", "HeuristicLab.Problems.Instances.DIMACS\3.3\HeuristicLab.Problems.Instances.DIMACS-3.3.csproj", "{9943FF23-8619-459C-B84A-E7FBDCBA04E6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.Instances.DIMACS-3.3", "HeuristicLab.Problems.Instances.DIMACS\3.3\HeuristicLab.Problems.Instances.DIMACS-3.3.csproj", "{9943FF23-8619-459C-B84A-E7FBDCBA04E6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.GraphColoring-3.3", "HeuristicLab.Problems.GraphColoring\3.3\HeuristicLab.Problems.GraphColoring-3.3.csproj", "{4B76E2CB-A990-4959-B080-1D81D418D325}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Problems.GraphColoring-3.3", "HeuristicLab.Problems.GraphColoring\3.3\HeuristicLab.Problems.GraphColoring-3.3.csproj", "{4B76E2CB-A990-4959-B080-1D81D418D325}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3", "HeuristicLab.Algorithms.MOCMAEvolutionStrategy\3.3\HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3.csproj", "{0E2E224F-E9B2-41F3-B510-09183EEBA2AF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3", "HeuristicLab.Algorithms.MOCMAEvolutionStrategy\3.3\HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3.csproj", "{0E2E224F-E9B2-41F3-B510-09183EEBA2AF}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ExactOptimization-3.3", "HeuristicLab.ExactOptimization\3.3\HeuristicLab.ExactOptimization-3.3.csproj", "{FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.ExactOptimization.Views-3.3", "HeuristicLab.ExactOptimization.Views\3.3\HeuristicLab.ExactOptimization.Views-3.3.csproj", "{D1D69043-17E6-4B8C-BF41-0799C7E56032}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4", "HeuristicLab.Algorithms.DataAnalysis.DecisionTrees\3.4\HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4.csproj", "{541A53F3-E6A7-402F-91BB-D76041CDD9FD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4", "HeuristicLab.Algorithms.DataAnalysis.DecisionTrees\3.4\HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4.csproj", "{541A53F3-E6A7-402F-91BB-D76041CDD9FD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.MultiObjectiveLocalSearch", "HeuristicLab.Algorithms.MultiObjectiveLocalSearch\3.3\HeuristicLab.Algorithms.MultiObjectiveLocalSearch.csproj", "{4CCDD23A-9FA3-4B36-9469-87D67E99225F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HeuristicLab.Algorithms.MultiObjectiveLocalSearch", "HeuristicLab.Algorithms.MultiObjectiveLocalSearch\3.3\HeuristicLab.Algorithms.MultiObjectiveLocalSearch.csproj", "{4CCDD23A-9FA3-4B36-9469-87D67E99225F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.PluginInfrastructure.Extension-3.3", "HeuristicLab.PluginInfrastructure.Extension\3.3\HeuristicLab.PluginInfrastructure.Extension-3.3.csproj", "{D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.DataPreprocessing-3.4", "HeuristicLab.DataPreprocessing\3.4\HeuristicLab.DataPreprocessing-3.4.csproj", "{3B90F866-70F8-43EF-A541-51819D255B7B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.Orienteering-3.3", "HeuristicLab.Problems.Orienteering\3.3\HeuristicLab.Problems.Orienteering-3.3.csproj", "{D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -497,28 +500,28 @@ Global {B1DCDECA-B56E-41D5-9850-EF0D3A77DEAF}.Release|x86.Build.0 = Release|x86 {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.ActiveCfg = Debug|x64 - {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.Build.0 = Debug|x64 - {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.ActiveCfg = Debug|x86 - {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.Build.0 = Debug|x86 + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.ActiveCfg = Debug|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x64.Build.0 = Debug|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.ActiveCfg = Debug|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Debug|x86.Build.0 = Debug|Any CPU {94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.ActiveCfg = Release|Any CPU {94186A6A-5176-4402-AE83-886557B53CCA}.Release|Any CPU.Build.0 = Release|Any CPU - {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.ActiveCfg = Release|x64 - {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.Build.0 = Release|x64 - {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.ActiveCfg = Release|x86 - {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.Build.0 = Release|x86 + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.ActiveCfg = Release|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x64.Build.0 = Release|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.ActiveCfg = Release|Any CPU + {94186A6A-5176-4402-AE83-886557B53CCA}.Release|x86.Build.0 = Release|Any CPU {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.ActiveCfg = Debug|x64 - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.Build.0 = Debug|x64 - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.ActiveCfg = Debug|x86 - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.Build.0 = Debug|x86 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.ActiveCfg = Debug|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x64.Build.0 = Debug|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.ActiveCfg = Debug|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Debug|x86.Build.0 = Debug|Any CPU {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|Any CPU.Build.0 = Release|Any CPU - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.ActiveCfg = Release|x64 - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.Build.0 = Release|x64 - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.ActiveCfg = Release|x86 - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.Build.0 = Release|x86 + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.ActiveCfg = Release|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x64.Build.0 = Release|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.ActiveCfg = Release|Any CPU + {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}.Release|x86.Build.0 = Release|Any CPU {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|Any CPU.Build.0 = Debug|Any CPU {A9E282EA-180F-4233-B809-AEDF0787545C}.Debug|x64.ActiveCfg = Debug|x64 @@ -533,112 +536,112 @@ Global {A9E282EA-180F-4233-B809-AEDF0787545C}.Release|x86.Build.0 = Release|x86 {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.ActiveCfg = Debug|x64 - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.Build.0 = Debug|x64 - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.ActiveCfg = Debug|x86 - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.Build.0 = Debug|x86 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.ActiveCfg = Debug|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x64.Build.0 = Debug|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.ActiveCfg = Debug|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Debug|x86.Build.0 = Debug|Any CPU {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.ActiveCfg = Release|Any CPU {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|Any CPU.Build.0 = Release|Any CPU - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.ActiveCfg = Release|x64 - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.Build.0 = Release|x64 - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.ActiveCfg = Release|x86 - {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.Build.0 = Release|x86 + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.ActiveCfg = Release|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x64.Build.0 = Release|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.ActiveCfg = Release|Any CPU + {C36BD924-A541-4A00-AFA8-41701378DDC5}.Release|x86.Build.0 = Release|Any CPU {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.ActiveCfg = Debug|x64 - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.Build.0 = Debug|x64 - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.ActiveCfg = Debug|x86 - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.Build.0 = Debug|x86 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.ActiveCfg = Debug|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x64.Build.0 = Debug|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.ActiveCfg = Debug|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Debug|x86.Build.0 = Debug|Any CPU {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.ActiveCfg = Release|Any CPU {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|Any CPU.Build.0 = Release|Any CPU - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.ActiveCfg = Release|x64 - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.Build.0 = Release|x64 - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.ActiveCfg = Release|x86 - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.Build.0 = Release|x86 + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.ActiveCfg = Release|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x64.Build.0 = Release|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.ActiveCfg = Release|Any CPU + {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}.Release|x86.Build.0 = Release|Any CPU {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.ActiveCfg = Debug|x64 - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.Build.0 = Debug|x64 - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.ActiveCfg = Debug|x86 - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.Build.0 = Debug|x86 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.ActiveCfg = Debug|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x64.Build.0 = Debug|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Debug|x86.Build.0 = Debug|Any CPU {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|Any CPU.Build.0 = Release|Any CPU - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.ActiveCfg = Release|x64 - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.Build.0 = Release|x64 - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.ActiveCfg = Release|x86 - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.Build.0 = Release|x86 + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.ActiveCfg = Release|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x64.Build.0 = Release|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.ActiveCfg = Release|Any CPU + {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}.Release|x86.Build.0 = Release|Any CPU {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.ActiveCfg = Debug|x64 - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.Build.0 = Debug|x64 - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.ActiveCfg = Debug|x86 - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.Build.0 = Debug|x86 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.ActiveCfg = Debug|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x64.Build.0 = Debug|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.ActiveCfg = Debug|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Debug|x86.Build.0 = Debug|Any CPU {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.ActiveCfg = Release|Any CPU {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|Any CPU.Build.0 = Release|Any CPU - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.ActiveCfg = Release|x64 - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.Build.0 = Release|x64 - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.ActiveCfg = Release|x86 - {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.Build.0 = Release|x86 + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.ActiveCfg = Release|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x64.Build.0 = Release|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.ActiveCfg = Release|Any CPU + {DC3D7072-7999-4719-B65D-3997744D5DC1}.Release|x86.Build.0 = Release|Any CPU {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.ActiveCfg = Debug|x64 - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.Build.0 = Debug|x64 - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.ActiveCfg = Debug|x86 - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.Build.0 = Debug|x86 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.ActiveCfg = Debug|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x64.Build.0 = Debug|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.ActiveCfg = Debug|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Debug|x86.Build.0 = Debug|Any CPU {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.ActiveCfg = Release|Any CPU {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|Any CPU.Build.0 = Release|Any CPU - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.ActiveCfg = Release|x64 - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.Build.0 = Release|x64 - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.ActiveCfg = Release|x86 - {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.Build.0 = Release|x86 + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.ActiveCfg = Release|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x64.Build.0 = Release|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.ActiveCfg = Release|Any CPU + {F4539FB6-4708-40C9-BE64-0A1390AEA197}.Release|x86.Build.0 = Release|Any CPU {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.ActiveCfg = Debug|x64 - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.Build.0 = Debug|x64 - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.ActiveCfg = Debug|x86 - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.Build.0 = Debug|x86 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.ActiveCfg = Debug|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x64.Build.0 = Debug|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.ActiveCfg = Debug|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Debug|x86.Build.0 = Debug|Any CPU {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.ActiveCfg = Release|Any CPU {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|Any CPU.Build.0 = Release|Any CPU - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.ActiveCfg = Release|x64 - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.Build.0 = Release|x64 - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.ActiveCfg = Release|x86 - {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.Build.0 = Release|x86 + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.ActiveCfg = Release|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x64.Build.0 = Release|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.ActiveCfg = Release|Any CPU + {2C36CD4F-E5F5-43A4-801A-201EA895FE17}.Release|x86.Build.0 = Release|Any CPU {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.ActiveCfg = Debug|x64 - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.Build.0 = Debug|x64 - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.ActiveCfg = Debug|x86 - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.Build.0 = Debug|x86 + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.ActiveCfg = Debug|Any CPU + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x64.Build.0 = Debug|Any CPU + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.ActiveCfg = Debug|Any CPU + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Debug|x86.Build.0 = Debug|Any CPU {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|Any CPU.Build.0 = Release|Any CPU - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.ActiveCfg = Release|x64 - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.Build.0 = Release|x64 - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.ActiveCfg = Release|x86 - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.Build.0 = Release|x86 + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.ActiveCfg = Release|Any CPU + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x64.Build.0 = Release|Any CPU + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.ActiveCfg = Release|Any CPU + {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6}.Release|x86.Build.0 = Release|Any CPU {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.ActiveCfg = Debug|x64 - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.Build.0 = Debug|x64 - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.ActiveCfg = Debug|x86 - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.Build.0 = Debug|x86 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.ActiveCfg = Debug|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x64.Build.0 = Debug|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.ActiveCfg = Debug|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Debug|x86.Build.0 = Debug|Any CPU {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.ActiveCfg = Release|Any CPU {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|Any CPU.Build.0 = Release|Any CPU - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.ActiveCfg = Release|x64 - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.Build.0 = Release|x64 - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.ActiveCfg = Release|x86 - {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.Build.0 = Release|x86 + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.ActiveCfg = Release|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x64.Build.0 = Release|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.ActiveCfg = Release|Any CPU + {EE2034D9-6E27-48A1-B855-42D45F69A4FC}.Release|x86.Build.0 = Release|Any CPU {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.ActiveCfg = Debug|x64 - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.Build.0 = Debug|x64 - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.ActiveCfg = Debug|x86 - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.Build.0 = Debug|x86 + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.ActiveCfg = Debug|Any CPU + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x64.Build.0 = Debug|Any CPU + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.ActiveCfg = Debug|Any CPU + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Debug|x86.Build.0 = Debug|Any CPU {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|Any CPU.ActiveCfg = Release|Any CPU {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|Any CPU.Build.0 = Release|Any CPU - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.ActiveCfg = Release|x64 - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.Build.0 = Release|x64 - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.ActiveCfg = Release|x86 - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.Build.0 = Release|x86 + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.ActiveCfg = Release|Any CPU + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x64.Build.0 = Release|Any CPU + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.ActiveCfg = Release|Any CPU + {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}.Release|x86.Build.0 = Release|Any CPU {C664305E-497C-4533-A140-967DEDB05C19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C664305E-497C-4533-A140-967DEDB05C19}.Debug|Any CPU.Build.0 = Debug|Any CPU {C664305E-497C-4533-A140-967DEDB05C19}.Debug|x64.ActiveCfg = Debug|x64 @@ -665,16 +668,16 @@ Global {E226881D-315F-423D-B419-A766FE0D8685}.Release|x86.Build.0 = Release|x86 {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.ActiveCfg = Debug|x64 - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.Build.0 = Debug|x64 - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.ActiveCfg = Debug|x86 - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.Build.0 = Debug|x86 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.ActiveCfg = Debug|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x64.Build.0 = Debug|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.ActiveCfg = Debug|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Debug|x86.Build.0 = Debug|Any CPU {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.ActiveCfg = Release|Any CPU {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|Any CPU.Build.0 = Release|Any CPU - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.ActiveCfg = Release|x64 - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.Build.0 = Release|x64 - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.ActiveCfg = Release|x86 - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.Build.0 = Release|x86 + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.ActiveCfg = Release|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x64.Build.0 = Release|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.ActiveCfg = Release|Any CPU + {958B43BC-CC5C-4FA2-8628-2B3B01D890B6}.Release|x86.Build.0 = Release|Any CPU {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|Any CPU.Build.0 = Debug|Any CPU {72104A0B-90E7-42F3-9ABE-9BBBADD4B943}.Debug|x64.ActiveCfg = Debug|x64 @@ -701,16 +704,16 @@ Global {C49CB749-8B24-4628-8003-E86475749410}.Release|x86.Build.0 = Release|x86 {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.ActiveCfg = Debug|x64 - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.Build.0 = Debug|x64 - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.ActiveCfg = Debug|x86 - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.Build.0 = Debug|x86 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.ActiveCfg = Debug|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x64.Build.0 = Debug|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.ActiveCfg = Debug|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Debug|x86.Build.0 = Debug|Any CPU {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.ActiveCfg = Release|Any CPU {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|Any CPU.Build.0 = Release|Any CPU - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.ActiveCfg = Release|x64 - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.Build.0 = Release|x64 - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.ActiveCfg = Release|x86 - {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.Build.0 = Release|x86 + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.ActiveCfg = Release|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x64.Build.0 = Release|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.ActiveCfg = Release|Any CPU + {56F9106A-079F-4C61-92F6-86A84C2D84B7}.Release|x86.Build.0 = Release|Any CPU {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|Any CPU.Build.0 = Debug|Any CPU {AE5B1CE5-9862-4D6F-A700-D72CD9AEA295}.Debug|x64.ActiveCfg = Debug|x64 @@ -737,16 +740,16 @@ Global {57F38579-409D-4DD8-AB19-3F2C4A665126}.Release|x86.Build.0 = Release|x86 {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|Any CPU.Build.0 = Debug|Any CPU - {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.ActiveCfg = Debug|x64 - {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.Build.0 = Debug|x64 - {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.ActiveCfg = Debug|x86 - {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.Build.0 = Debug|x86 + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.ActiveCfg = Debug|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x64.Build.0 = Debug|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.ActiveCfg = Debug|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Debug|x86.Build.0 = Debug|Any CPU {14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.ActiveCfg = Release|Any CPU {14AB8D24-25BC-400C-A846-4627AA945192}.Release|Any CPU.Build.0 = Release|Any CPU - {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.ActiveCfg = Release|x64 - {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.Build.0 = Release|x64 - {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.ActiveCfg = Release|x86 - {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.Build.0 = Release|x86 + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.ActiveCfg = Release|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x64.Build.0 = Release|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.ActiveCfg = Release|Any CPU + {14AB8D24-25BC-400C-A846-4627AA945192}.Release|x86.Build.0 = Release|Any CPU {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Debug|x64.ActiveCfg = Debug|x64 @@ -761,16 +764,16 @@ Global {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}.Release|x86.Build.0 = Release|x86 {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.ActiveCfg = Debug|x64 - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.Build.0 = Debug|x64 - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.ActiveCfg = Debug|x86 - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.Build.0 = Debug|x86 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.ActiveCfg = Debug|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x64.Build.0 = Debug|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.ActiveCfg = Debug|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Debug|x86.Build.0 = Debug|Any CPU {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.ActiveCfg = Release|Any CPU {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|Any CPU.Build.0 = Release|Any CPU - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.ActiveCfg = Release|x64 - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.Build.0 = Release|x64 - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.ActiveCfg = Release|x86 - {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.Build.0 = Release|x86 + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.ActiveCfg = Release|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x64.Build.0 = Release|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.ActiveCfg = Release|Any CPU + {887425B4-4348-49ED-A457-B7D2C26DDBF9}.Release|x86.Build.0 = Release|Any CPU {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|Any CPU.Build.0 = Debug|Any CPU {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Debug|x64.ActiveCfg = Debug|x64 @@ -785,76 +788,76 @@ Global {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}.Release|x86.Build.0 = Release|x86 {25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {25087811-F74C-4128-BC86-8324271DA13E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.ActiveCfg = Debug|x64 - {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.Build.0 = Debug|x64 - {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.ActiveCfg = Debug|x86 - {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.Build.0 = Debug|x86 + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.ActiveCfg = Debug|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x64.Build.0 = Debug|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.ActiveCfg = Debug|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Debug|x86.Build.0 = Debug|Any CPU {25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.ActiveCfg = Release|Any CPU {25087811-F74C-4128-BC86-8324271DA13E}.Release|Any CPU.Build.0 = Release|Any CPU - {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.ActiveCfg = Release|x64 - {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.Build.0 = Release|x64 - {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.ActiveCfg = Release|x86 - {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.Build.0 = Release|x86 + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.ActiveCfg = Release|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x64.Build.0 = Release|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.ActiveCfg = Release|Any CPU + {25087811-F74C-4128-BC86-8324271DA13E}.Release|x86.Build.0 = Release|Any CPU {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.ActiveCfg = Debug|x64 - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.Build.0 = Debug|x64 - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.ActiveCfg = Debug|x86 - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.Build.0 = Debug|x86 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.ActiveCfg = Debug|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x64.Build.0 = Debug|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.ActiveCfg = Debug|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Debug|x86.Build.0 = Debug|Any CPU {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.ActiveCfg = Release|Any CPU {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|Any CPU.Build.0 = Release|Any CPU - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.ActiveCfg = Release|x64 - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.Build.0 = Release|x64 - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.ActiveCfg = Release|x86 - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.Build.0 = Release|x86 + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.ActiveCfg = Release|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x64.Build.0 = Release|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.ActiveCfg = Release|Any CPU + {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.Build.0 = Release|Any CPU {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.ActiveCfg = Debug|x64 - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.Build.0 = Debug|x64 - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.ActiveCfg = Debug|x86 - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.Build.0 = Debug|x86 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.ActiveCfg = Debug|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x64.Build.0 = Debug|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.ActiveCfg = Debug|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|x86.Build.0 = Debug|Any CPU {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.ActiveCfg = Release|Any CPU {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|Any CPU.Build.0 = Release|Any CPU - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.ActiveCfg = Release|x64 - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.Build.0 = Release|x64 - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.ActiveCfg = Release|x86 - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.Build.0 = Release|x86 + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.ActiveCfg = Release|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x64.Build.0 = Release|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.ActiveCfg = Release|Any CPU + {BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.Build.0 = Release|Any CPU {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.ActiveCfg = Debug|x64 - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.Build.0 = Debug|x64 - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.ActiveCfg = Debug|x86 - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.Build.0 = Debug|x86 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.ActiveCfg = Debug|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x64.Build.0 = Debug|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.ActiveCfg = Debug|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|x86.Build.0 = Debug|Any CPU {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.ActiveCfg = Release|Any CPU {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|Any CPU.Build.0 = Release|Any CPU - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.ActiveCfg = Release|x64 - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.Build.0 = Release|x64 - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.ActiveCfg = Release|x86 - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.Build.0 = Release|x86 + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.ActiveCfg = Release|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x64.Build.0 = Release|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.ActiveCfg = Release|Any CPU + {DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.Build.0 = Release|Any CPU {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.ActiveCfg = Debug|x64 - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.Build.0 = Debug|x64 - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.ActiveCfg = Debug|x86 - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.Build.0 = Debug|x86 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.ActiveCfg = Debug|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x64.Build.0 = Debug|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.ActiveCfg = Debug|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|x86.Build.0 = Debug|Any CPU {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.ActiveCfg = Release|Any CPU {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|Any CPU.Build.0 = Release|Any CPU - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.ActiveCfg = Release|x64 - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.Build.0 = Release|x64 - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.ActiveCfg = Release|x86 - {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.Build.0 = Release|x86 + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.ActiveCfg = Release|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x64.Build.0 = Release|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.ActiveCfg = Release|Any CPU + {66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.Build.0 = Release|Any CPU {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.ActiveCfg = Debug|x64 - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.Build.0 = Debug|x64 - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.ActiveCfg = Debug|x86 - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.Build.0 = Debug|x86 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.ActiveCfg = Debug|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x64.Build.0 = Debug|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.ActiveCfg = Debug|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Debug|x86.Build.0 = Debug|Any CPU {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.ActiveCfg = Release|Any CPU {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|Any CPU.Build.0 = Release|Any CPU - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.ActiveCfg = Release|x64 - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.Build.0 = Release|x64 - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.ActiveCfg = Release|x86 - {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.Build.0 = Release|x86 + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.ActiveCfg = Release|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x64.Build.0 = Release|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.ActiveCfg = Release|Any CPU + {E10F395F-C8A6-48AD-B470-9AA7A1F43809}.Release|x86.Build.0 = Release|Any CPU {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|Any CPU.Build.0 = Debug|Any CPU {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Debug|x64.ActiveCfg = Debug|x64 @@ -869,64 +872,64 @@ Global {A9EE65D9-405B-4C9C-B470-FC911AAC541B}.Release|x86.Build.0 = Release|x86 {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.ActiveCfg = Debug|x64 - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.Build.0 = Debug|x64 - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.ActiveCfg = Debug|x86 - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.Build.0 = Debug|x86 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.ActiveCfg = Debug|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x64.Build.0 = Debug|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.ActiveCfg = Debug|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Debug|x86.Build.0 = Debug|Any CPU {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.ActiveCfg = Release|Any CPU {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|Any CPU.Build.0 = Release|Any CPU - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.ActiveCfg = Release|x64 - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.Build.0 = Release|x64 - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.ActiveCfg = Release|x86 - {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.Build.0 = Release|x86 + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.ActiveCfg = Release|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x64.Build.0 = Release|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.ActiveCfg = Release|Any CPU + {96E5ED5B-187D-4012-9CDA-D85CDAD38342}.Release|x86.Build.0 = Release|Any CPU {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.ActiveCfg = Debug|x64 - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.Build.0 = Debug|x64 - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.ActiveCfg = Debug|x86 - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.Build.0 = Debug|x86 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.ActiveCfg = Debug|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x64.Build.0 = Debug|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.ActiveCfg = Debug|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Debug|x86.Build.0 = Debug|Any CPU {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.ActiveCfg = Release|Any CPU {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|Any CPU.Build.0 = Release|Any CPU - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.ActiveCfg = Release|x64 - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.Build.0 = Release|x64 - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.ActiveCfg = Release|x86 - {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.Build.0 = Release|x86 + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.ActiveCfg = Release|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x64.Build.0 = Release|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.ActiveCfg = Release|Any CPU + {D58A232D-04BA-4186-B73E-0EC86FD31ABE}.Release|x86.Build.0 = Release|Any CPU {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.ActiveCfg = Debug|x64 - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.Build.0 = Debug|x64 - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.ActiveCfg = Debug|x86 - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.Build.0 = Debug|x86 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.ActiveCfg = Debug|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x64.Build.0 = Debug|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.ActiveCfg = Debug|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Debug|x86.Build.0 = Debug|Any CPU {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|Any CPU.Build.0 = Release|Any CPU - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.ActiveCfg = Release|x64 - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.Build.0 = Release|x64 - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.ActiveCfg = Release|x86 - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.Build.0 = Release|x86 + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.ActiveCfg = Release|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x64.Build.0 = Release|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.ActiveCfg = Release|Any CPU + {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}.Release|x86.Build.0 = Release|Any CPU {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.ActiveCfg = Debug|x64 - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.Build.0 = Debug|x64 - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.ActiveCfg = Debug|x86 - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.Build.0 = Debug|x86 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.ActiveCfg = Debug|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x64.Build.0 = Debug|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.ActiveCfg = Debug|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Debug|x86.Build.0 = Debug|Any CPU {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.ActiveCfg = Release|Any CPU {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|Any CPU.Build.0 = Release|Any CPU - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.ActiveCfg = Release|x64 - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.Build.0 = Release|x64 - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.ActiveCfg = Release|x86 - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.Build.0 = Release|x86 + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.ActiveCfg = Release|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x64.Build.0 = Release|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.ActiveCfg = Release|Any CPU + {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}.Release|x86.Build.0 = Release|Any CPU {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.ActiveCfg = Debug|x64 - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.Build.0 = Debug|x64 - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.ActiveCfg = Debug|x86 - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.Build.0 = Debug|x86 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.ActiveCfg = Debug|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x64.Build.0 = Debug|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.ActiveCfg = Debug|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Debug|x86.Build.0 = Debug|Any CPU {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.ActiveCfg = Release|Any CPU {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|Any CPU.Build.0 = Release|Any CPU - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.ActiveCfg = Release|x64 - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.Build.0 = Release|x64 - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.ActiveCfg = Release|x86 - {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.Build.0 = Release|x86 + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.ActiveCfg = Release|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x64.Build.0 = Release|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.ActiveCfg = Release|Any CPU + {D767C38D-8014-46B0-9A32-03A3AECCE34A}.Release|x86.Build.0 = Release|Any CPU {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|Any CPU.Build.0 = Debug|Any CPU {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Debug|x64.ActiveCfg = Debug|x64 @@ -941,16 +944,16 @@ Global {CDA28124-ACD0-4231-8EB0-C510B361F84E}.Release|x86.Build.0 = Release|x86 {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.ActiveCfg = Debug|x64 - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.Build.0 = Debug|x64 - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.ActiveCfg = Debug|x86 - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.Build.0 = Debug|x86 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.ActiveCfg = Debug|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x64.Build.0 = Debug|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.ActiveCfg = Debug|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Debug|x86.Build.0 = Debug|Any CPU {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|Any CPU.Build.0 = Release|Any CPU - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.ActiveCfg = Release|x64 - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.Build.0 = Release|x64 - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.ActiveCfg = Release|x86 - {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.Build.0 = Release|x86 + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.ActiveCfg = Release|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x64.Build.0 = Release|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.ActiveCfg = Release|Any CPU + {88B9B0E3-344E-4196-82A3-0F9732506FE8}.Release|x86.Build.0 = Release|Any CPU {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|Any CPU.Build.0 = Debug|Any CPU {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Debug|x64.ActiveCfg = Debug|x64 @@ -965,40 +968,40 @@ Global {6AE0E1F5-D3FF-43A3-90E1-2435E7493FB5}.Release|x86.Build.0 = Release|x86 {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.ActiveCfg = Debug|x64 - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.Build.0 = Debug|x64 - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.ActiveCfg = Debug|x86 - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.Build.0 = Debug|x86 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.ActiveCfg = Debug|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x64.Build.0 = Debug|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.ActiveCfg = Debug|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Debug|x86.Build.0 = Debug|Any CPU {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.ActiveCfg = Release|Any CPU {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|Any CPU.Build.0 = Release|Any CPU - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.ActiveCfg = Release|x64 - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.Build.0 = Release|x64 - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.ActiveCfg = Release|x86 - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.Build.0 = Release|x86 + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.ActiveCfg = Release|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x64.Build.0 = Release|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.ActiveCfg = Release|Any CPU + {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.Build.0 = Release|Any CPU {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.ActiveCfg = Debug|x64 - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.Build.0 = Debug|x64 - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.ActiveCfg = Debug|x86 - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.Build.0 = Debug|x86 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.ActiveCfg = Debug|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x64.Build.0 = Debug|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.ActiveCfg = Debug|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|x86.Build.0 = Debug|Any CPU {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.ActiveCfg = Release|Any CPU {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|Any CPU.Build.0 = Release|Any CPU - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.ActiveCfg = Release|x64 - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.Build.0 = Release|x64 - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.ActiveCfg = Release|x86 - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.Build.0 = Release|x86 + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.ActiveCfg = Release|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x64.Build.0 = Release|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.ActiveCfg = Release|Any CPU + {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Release|x86.Build.0 = Release|Any CPU {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.ActiveCfg = Debug|x64 - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.Build.0 = Debug|x64 - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.ActiveCfg = Debug|x86 - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.Build.0 = Debug|x86 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.ActiveCfg = Debug|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x64.Build.0 = Debug|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.ActiveCfg = Debug|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Debug|x86.Build.0 = Debug|Any CPU {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.ActiveCfg = Release|Any CPU {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|Any CPU.Build.0 = Release|Any CPU - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.ActiveCfg = Release|x64 - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.Build.0 = Release|x64 - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.ActiveCfg = Release|x86 - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.Build.0 = Release|x86 + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.ActiveCfg = Release|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x64.Build.0 = Release|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.ActiveCfg = Release|Any CPU + {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}.Release|x86.Build.0 = Release|Any CPU {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|Any CPU.Build.0 = Debug|Any CPU {3EAF1454-086D-44A2-8509-B1BA24DB1865}.Debug|x64.ActiveCfg = Debug|x64 @@ -1061,76 +1064,76 @@ Global {315BDA09-3F4F-49B3-9790-B37CFC1C5750}.Release|x86.Build.0 = Release|x86 {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x64.ActiveCfg = Debug|x64 - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x64.Build.0 = Debug|x64 - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x86.ActiveCfg = Debug|x86 - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x86.Build.0 = Debug|x86 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x64.ActiveCfg = Debug|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x64.Build.0 = Debug|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x86.ActiveCfg = Debug|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Debug|x86.Build.0 = Debug|Any CPU {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|Any CPU.ActiveCfg = Release|Any CPU {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|Any CPU.Build.0 = Release|Any CPU - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x64.ActiveCfg = Release|x64 - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x64.Build.0 = Release|x64 - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x86.ActiveCfg = Release|x86 - {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x86.Build.0 = Release|x86 + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x64.ActiveCfg = Release|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x64.Build.0 = Release|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x86.ActiveCfg = Release|Any CPU + {49F28045-7B5F-411B-8D59-16C846FA26E0}.Release|x86.Build.0 = Release|Any CPU {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|Any CPU.Build.0 = Debug|Any CPU - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.ActiveCfg = Debug|x64 - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.Build.0 = Debug|x64 - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.ActiveCfg = Debug|x86 - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.Build.0 = Debug|x86 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.ActiveCfg = Debug|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x64.Build.0 = Debug|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.ActiveCfg = Debug|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Debug|x86.Build.0 = Debug|Any CPU {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.ActiveCfg = Release|Any CPU {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|Any CPU.Build.0 = Release|Any CPU - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.ActiveCfg = Release|x64 - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.Build.0 = Release|x64 - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.ActiveCfg = Release|x86 - {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.Build.0 = Release|x86 + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.ActiveCfg = Release|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x64.Build.0 = Release|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.ActiveCfg = Release|Any CPU + {15452B9F-A436-4139-8EE7-DA72FB8D3664}.Release|x86.Build.0 = Release|Any CPU {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|Any CPU.Build.0 = Debug|Any CPU - {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x64.ActiveCfg = Debug|x64 - {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x64.Build.0 = Debug|x64 - {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x86.ActiveCfg = Debug|x86 - {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x86.Build.0 = Debug|x86 + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x64.ActiveCfg = Debug|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x64.Build.0 = Debug|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x86.ActiveCfg = Debug|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Debug|x86.Build.0 = Debug|Any CPU {00814351-4AB8-4088-9B99-F62787B89E93}.Release|Any CPU.ActiveCfg = Release|Any CPU {00814351-4AB8-4088-9B99-F62787B89E93}.Release|Any CPU.Build.0 = Release|Any CPU - {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x64.ActiveCfg = Release|x64 - {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x64.Build.0 = Release|x64 - {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x86.ActiveCfg = Release|x86 - {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x86.Build.0 = Release|x86 + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x64.ActiveCfg = Release|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x64.Build.0 = Release|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x86.ActiveCfg = Release|Any CPU + {00814351-4AB8-4088-9B99-F62787B89E93}.Release|x86.Build.0 = Release|Any CPU {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.ActiveCfg = Debug|x64 - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.Build.0 = Debug|x64 - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.ActiveCfg = Debug|x86 - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.Build.0 = Debug|x86 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.ActiveCfg = Debug|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x64.Build.0 = Debug|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.ActiveCfg = Debug|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Debug|x86.Build.0 = Debug|Any CPU {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.ActiveCfg = Release|Any CPU {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|Any CPU.Build.0 = Release|Any CPU - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.ActiveCfg = Release|x64 - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.Build.0 = Release|x64 - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.ActiveCfg = Release|x86 - {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.Build.0 = Release|x86 + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.ActiveCfg = Release|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x64.Build.0 = Release|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.ActiveCfg = Release|Any CPU + {2C429157-9C34-4DD3-9D5F-B444B751E39A}.Release|x86.Build.0 = Release|Any CPU {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.ActiveCfg = Debug|x64 - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.Build.0 = Debug|x64 - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.ActiveCfg = Debug|x86 - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.Build.0 = Debug|x86 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.ActiveCfg = Debug|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.Build.0 = Debug|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.ActiveCfg = Debug|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.Build.0 = Debug|Any CPU {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|Any CPU.ActiveCfg = Release|Any CPU {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|Any CPU.Build.0 = Release|Any CPU - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.ActiveCfg = Release|x64 - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.Build.0 = Release|x64 - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.ActiveCfg = Release|x86 - {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.Build.0 = Release|x86 + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.ActiveCfg = Release|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.Build.0 = Release|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.ActiveCfg = Release|Any CPU + {E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.Build.0 = Release|Any CPU {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.ActiveCfg = Debug|x64 - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.Build.0 = Debug|x64 - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.ActiveCfg = Debug|x86 - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.Build.0 = Debug|x86 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.ActiveCfg = Debug|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x64.Build.0 = Debug|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.ActiveCfg = Debug|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Debug|x86.Build.0 = Debug|Any CPU {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|Any CPU.Build.0 = Release|Any CPU - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.ActiveCfg = Release|x64 - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.Build.0 = Release|x64 - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.ActiveCfg = Release|x86 - {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.Build.0 = Release|x86 + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.ActiveCfg = Release|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x64.Build.0 = Release|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.ActiveCfg = Release|Any CPU + {2E782078-FA81-4B70-B56F-74CE38DAC6C8}.Release|x86.Build.0 = Release|Any CPU {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Debug|x64.ActiveCfg = Debug|x64 @@ -1145,16 +1148,16 @@ Global {A2330DB0-413D-4424-B4E6-591118E2B9F8}.Release|x86.Build.0 = Release|x86 {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.ActiveCfg = Debug|x64 - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.Build.0 = Debug|x64 - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.ActiveCfg = Debug|x86 - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.Build.0 = Debug|x86 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.ActiveCfg = Debug|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x64.Build.0 = Debug|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.ActiveCfg = Debug|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Debug|x86.Build.0 = Debug|Any CPU {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Any CPU.ActiveCfg = Release|Any CPU {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|Any CPU.Build.0 = Release|Any CPU - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.ActiveCfg = Release|x64 - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.Build.0 = Release|x64 - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.ActiveCfg = Release|x86 - {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.Build.0 = Release|x86 + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.ActiveCfg = Release|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x64.Build.0 = Release|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.ActiveCfg = Release|Any CPU + {06D4A186-9319-48A0-BADE-A2058D462EEA}.Release|x86.Build.0 = Release|Any CPU {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|Any CPU.Build.0 = Debug|Any CPU {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Debug|x64.ActiveCfg = Debug|x64 @@ -1169,40 +1172,40 @@ Global {423BD94F-963A-438E-BA45-3BB3D61CD03B}.Release|x86.Build.0 = Release|x86 {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x64.ActiveCfg = Debug|x64 - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x64.Build.0 = Debug|x64 - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x86.ActiveCfg = Debug|x86 - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x86.Build.0 = Debug|x86 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x64.ActiveCfg = Debug|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x64.Build.0 = Debug|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x86.ActiveCfg = Debug|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Debug|x86.Build.0 = Debug|Any CPU {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|Any CPU.ActiveCfg = Release|Any CPU {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|Any CPU.Build.0 = Release|Any CPU - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x64.ActiveCfg = Release|x64 - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x64.Build.0 = Release|x64 - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.ActiveCfg = Release|x86 - {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.Build.0 = Release|x86 + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x64.ActiveCfg = Release|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x64.Build.0 = Release|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.ActiveCfg = Release|Any CPU + {DF87C13E-A889-46FF-8153-66DCAA8C5674}.Release|x86.Build.0 = Release|Any CPU {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.ActiveCfg = Debug|x64 - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.Build.0 = Debug|x64 - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.ActiveCfg = Debug|x86 - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.Build.0 = Debug|x86 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.ActiveCfg = Debug|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x64.Build.0 = Debug|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.ActiveCfg = Debug|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Debug|x86.Build.0 = Debug|Any CPU {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|Any CPU.Build.0 = Release|Any CPU - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.ActiveCfg = Release|x64 - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.Build.0 = Release|x64 - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.ActiveCfg = Release|x86 - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.Build.0 = Release|x86 + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.ActiveCfg = Release|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x64.Build.0 = Release|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.ActiveCfg = Release|Any CPU + {3D28463F-EC96-4D82-AFEE-38BE91A0CA00}.Release|x86.Build.0 = Release|Any CPU {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x64.ActiveCfg = Debug|x64 - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x64.Build.0 = Debug|x64 - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x86.ActiveCfg = Debug|x86 - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x86.Build.0 = Debug|x86 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x64.ActiveCfg = Debug|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x64.Build.0 = Debug|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x86.ActiveCfg = Debug|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Debug|x86.Build.0 = Debug|Any CPU {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|Any CPU.ActiveCfg = Release|Any CPU {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|Any CPU.Build.0 = Release|Any CPU - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x64.ActiveCfg = Release|x64 - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x64.Build.0 = Release|x64 - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x86.ActiveCfg = Release|x86 - {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x86.Build.0 = Release|x86 + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x64.ActiveCfg = Release|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x64.Build.0 = Release|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x86.ActiveCfg = Release|Any CPU + {05BAE4E1-A9FA-4644-AA77-42558720159E}.Release|x86.Build.0 = Release|Any CPU {BF1E4DF4-A4CC-451F-9D50-303F405E265E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BF1E4DF4-A4CC-451F-9D50-303F405E265E}.Debug|Any CPU.Build.0 = Debug|Any CPU {BF1E4DF4-A4CC-451F-9D50-303F405E265E}.Debug|x64.ActiveCfg = Debug|x64 @@ -1217,16 +1220,16 @@ Global {BF1E4DF4-A4CC-451F-9D50-303F405E265E}.Release|x86.Build.0 = Release|x86 {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x64.ActiveCfg = Debug|x64 - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x64.Build.0 = Debug|x64 - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x86.ActiveCfg = Debug|x86 - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x86.Build.0 = Debug|x86 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x64.ActiveCfg = Debug|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x64.Build.0 = Debug|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x86.ActiveCfg = Debug|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Debug|x86.Build.0 = Debug|Any CPU {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|Any CPU.ActiveCfg = Release|Any CPU {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|Any CPU.Build.0 = Release|Any CPU - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x64.ActiveCfg = Release|x64 - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x64.Build.0 = Release|x64 - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x86.ActiveCfg = Release|x86 - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x86.Build.0 = Release|x86 + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x64.ActiveCfg = Release|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x64.Build.0 = Release|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x86.ActiveCfg = Release|Any CPU + {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2}.Release|x86.Build.0 = Release|Any CPU {20831A74-D18F-42D9-A667-1CE3AF53DF93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {20831A74-D18F-42D9-A667-1CE3AF53DF93}.Debug|Any CPU.Build.0 = Debug|Any CPU {20831A74-D18F-42D9-A667-1CE3AF53DF93}.Debug|x64.ActiveCfg = Debug|x64 @@ -1265,16 +1268,16 @@ Global {3E9E8944-44FF-40BB-A622-3A4A7DD0F198}.Release|x86.Build.0 = Release|x86 {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x64.ActiveCfg = Debug|x64 - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x64.Build.0 = Debug|x64 - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x86.ActiveCfg = Debug|x86 - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x86.Build.0 = Debug|x86 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x64.ActiveCfg = Debug|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x64.Build.0 = Debug|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Debug|x86.Build.0 = Debug|Any CPU {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|Any CPU.ActiveCfg = Release|Any CPU {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|Any CPU.Build.0 = Release|Any CPU - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x64.ActiveCfg = Release|x64 - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x64.Build.0 = Release|x64 - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x86.ActiveCfg = Release|x86 - {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x86.Build.0 = Release|x86 + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x64.ActiveCfg = Release|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x64.Build.0 = Release|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x86.ActiveCfg = Release|Any CPU + {79271BC8-4446-40E2-BB89-9BE4E17174FE}.Release|x86.Build.0 = Release|Any CPU {997F018D-AEA2-4F21-9301-82FAF6A5612D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {997F018D-AEA2-4F21-9301-82FAF6A5612D}.Debug|Any CPU.Build.0 = Debug|Any CPU {997F018D-AEA2-4F21-9301-82FAF6A5612D}.Debug|x64.ActiveCfg = Debug|x64 @@ -1301,28 +1304,28 @@ Global {0C39A349-1979-419A-89BD-E4E2F26BD287}.Release|x86.Build.0 = Release|x86 {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x64.ActiveCfg = Debug|x64 - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x64.Build.0 = Debug|x64 - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x86.ActiveCfg = Debug|x86 - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x86.Build.0 = Debug|x86 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x64.ActiveCfg = Debug|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x64.Build.0 = Debug|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x86.ActiveCfg = Debug|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Debug|x86.Build.0 = Debug|Any CPU {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|Any CPU.ActiveCfg = Release|Any CPU {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|Any CPU.Build.0 = Release|Any CPU - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x64.ActiveCfg = Release|x64 - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x64.Build.0 = Release|x64 - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x86.ActiveCfg = Release|x86 - {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x86.Build.0 = Release|x86 + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x64.ActiveCfg = Release|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x64.Build.0 = Release|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x86.ActiveCfg = Release|Any CPU + {5B9B9E8C-2706-43C2-80B8-A08341E431F7}.Release|x86.Build.0 = Release|Any CPU {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x64.ActiveCfg = Debug|x64 - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x64.Build.0 = Debug|x64 - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x86.ActiveCfg = Debug|x86 - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x86.Build.0 = Debug|x86 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x64.ActiveCfg = Debug|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x64.Build.0 = Debug|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x86.ActiveCfg = Debug|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Debug|x86.Build.0 = Debug|Any CPU {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|Any CPU.ActiveCfg = Release|Any CPU {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|Any CPU.Build.0 = Release|Any CPU - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x64.ActiveCfg = Release|x64 - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x64.Build.0 = Release|x64 - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x86.ActiveCfg = Release|x86 - {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x86.Build.0 = Release|x86 + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x64.ActiveCfg = Release|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x64.Build.0 = Release|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x86.ActiveCfg = Release|Any CPU + {F98A1740-9AC9-4D36-A582-6A2D0D06978D}.Release|x86.Build.0 = Release|Any CPU {B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB}.Debug|Any CPU.Build.0 = Debug|Any CPU {B5EF1E5A-9F3D-40B9-B4B0-30AADF2E2CEB}.Debug|x64.ActiveCfg = Debug|x64 @@ -1361,16 +1364,16 @@ Global {5211F1AD-BBA2-4C62-8749-DCA0A25CF5D8}.Release|x86.Build.0 = Release|x86 {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x64.ActiveCfg = Debug|x64 - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x64.Build.0 = Debug|x64 - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x86.ActiveCfg = Debug|x86 - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x86.Build.0 = Debug|x86 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x64.ActiveCfg = Debug|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x64.Build.0 = Debug|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x86.ActiveCfg = Debug|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Debug|x86.Build.0 = Debug|Any CPU {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|Any CPU.ActiveCfg = Release|Any CPU {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|Any CPU.Build.0 = Release|Any CPU - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x64.ActiveCfg = Release|x64 - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x64.Build.0 = Release|x64 - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x86.ActiveCfg = Release|x86 - {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x86.Build.0 = Release|x86 + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x64.ActiveCfg = Release|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x64.Build.0 = Release|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x86.ActiveCfg = Release|Any CPU + {068C70A7-8CAF-4AB6-8721-4564D62292BC}.Release|x86.Build.0 = Release|Any CPU {3C906172-E044-4DF0-B4FD-AA21192D5D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3C906172-E044-4DF0-B4FD-AA21192D5D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C906172-E044-4DF0-B4FD-AA21192D5D3E}.Debug|x64.ActiveCfg = Debug|x64 @@ -1385,52 +1388,52 @@ Global {3C906172-E044-4DF0-B4FD-AA21192D5D3E}.Release|x86.Build.0 = Release|x86 {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.ActiveCfg = Debug|x64 - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.Build.0 = Debug|x64 - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.ActiveCfg = Debug|x86 - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.Build.0 = Debug|x86 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.ActiveCfg = Debug|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x64.Build.0 = Debug|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.ActiveCfg = Debug|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Debug|x86.Build.0 = Debug|Any CPU {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.ActiveCfg = Release|Any CPU {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|Any CPU.Build.0 = Release|Any CPU - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.ActiveCfg = Release|x64 - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.Build.0 = Release|x64 - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.ActiveCfg = Release|x86 - {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.Build.0 = Release|x86 + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.ActiveCfg = Release|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x64.Build.0 = Release|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.ActiveCfg = Release|Any CPU + {3540E29E-4793-49E7-8EE2-FEA7F61C3994}.Release|x86.Build.0 = Release|Any CPU {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x64.ActiveCfg = Debug|x64 - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x64.Build.0 = Debug|x64 - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x86.ActiveCfg = Debug|x86 - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x86.Build.0 = Debug|x86 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x64.ActiveCfg = Debug|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x64.Build.0 = Debug|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x86.ActiveCfg = Debug|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Debug|x86.Build.0 = Debug|Any CPU {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|Any CPU.Build.0 = Release|Any CPU - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x64.ActiveCfg = Release|x64 - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x64.Build.0 = Release|x64 - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x86.ActiveCfg = Release|x86 - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x86.Build.0 = Release|x86 + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x64.ActiveCfg = Release|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x64.Build.0 = Release|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x86.ActiveCfg = Release|Any CPU + {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE}.Release|x86.Build.0 = Release|Any CPU {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|Any CPU.Build.0 = Debug|Any CPU - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x64.ActiveCfg = Debug|x64 - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x64.Build.0 = Debug|x64 - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x86.ActiveCfg = Debug|x86 - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x86.Build.0 = Debug|x86 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x64.ActiveCfg = Debug|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x64.Build.0 = Debug|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x86.ActiveCfg = Debug|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Debug|x86.Build.0 = Debug|Any CPU {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|Any CPU.ActiveCfg = Release|Any CPU {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|Any CPU.Build.0 = Release|Any CPU - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x64.ActiveCfg = Release|x64 - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x64.Build.0 = Release|x64 - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x86.ActiveCfg = Release|x86 - {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x86.Build.0 = Release|x86 + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x64.ActiveCfg = Release|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x64.Build.0 = Release|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x86.ActiveCfg = Release|Any CPU + {73F29D43-5714-4069-8FAB-0D18FEB5F175}.Release|x86.Build.0 = Release|Any CPU {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x64.ActiveCfg = Debug|x64 - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x64.Build.0 = Debug|x64 - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x86.ActiveCfg = Debug|x86 - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x86.Build.0 = Debug|x86 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x64.ActiveCfg = Debug|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x64.Build.0 = Debug|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x86.ActiveCfg = Debug|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Debug|x86.Build.0 = Debug|Any CPU {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|Any CPU.ActiveCfg = Release|Any CPU {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|Any CPU.Build.0 = Release|Any CPU - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x64.ActiveCfg = Release|x64 - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x64.Build.0 = Release|x64 - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x86.ActiveCfg = Release|x86 - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x86.Build.0 = Release|x86 + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x64.ActiveCfg = Release|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x64.Build.0 = Release|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x86.ActiveCfg = Release|Any CPU + {CE0F99D6-1C56-48A9-9B68-3E5B833703EF}.Release|x86.Build.0 = Release|Any CPU {8C426FA3-6614-412C-B669-BCE58DB9710E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8C426FA3-6614-412C-B669-BCE58DB9710E}.Debug|Any CPU.Build.0 = Debug|Any CPU {8C426FA3-6614-412C-B669-BCE58DB9710E}.Debug|x64.ActiveCfg = Debug|x64 @@ -1457,16 +1460,16 @@ Global {B7FA451C-26BF-4EE5-8E0E-BECAADA5B8E9}.Release|x86.Build.0 = Release|x86 {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x64.ActiveCfg = Debug|x64 - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x64.Build.0 = Debug|x64 - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x86.ActiveCfg = Debug|x86 - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x86.Build.0 = Debug|x86 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x64.ActiveCfg = Debug|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x64.Build.0 = Debug|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x86.ActiveCfg = Debug|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Debug|x86.Build.0 = Debug|Any CPU {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|Any CPU.ActiveCfg = Release|Any CPU {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|Any CPU.Build.0 = Release|Any CPU - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x64.ActiveCfg = Release|x64 - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x64.Build.0 = Release|x64 - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x86.ActiveCfg = Release|x86 - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x86.Build.0 = Release|x86 + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x64.ActiveCfg = Release|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x64.Build.0 = Release|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x86.ActiveCfg = Release|Any CPU + {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E}.Release|x86.Build.0 = Release|Any CPU {B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}.Debug|Any CPU.Build.0 = Debug|Any CPU {B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}.Debug|x64.ActiveCfg = Debug|x64 @@ -1481,28 +1484,28 @@ Global {B1BA398F-953F-4C3A-B07B-1E5E17A27DD9}.Release|x86.Build.0 = Release|x86 {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|Any CPU.Build.0 = Debug|Any CPU - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.ActiveCfg = Debug|x64 - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.Build.0 = Debug|x64 - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x86.ActiveCfg = Debug|x86 - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x86.Build.0 = Debug|x86 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.ActiveCfg = Debug|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x64.Build.0 = Debug|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x86.ActiveCfg = Debug|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Debug|x86.Build.0 = Debug|Any CPU {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Any CPU.ActiveCfg = Release|Any CPU {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|Any CPU.Build.0 = Release|Any CPU - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.ActiveCfg = Release|x64 - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.Build.0 = Release|x64 - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x86.ActiveCfg = Release|x86 - {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x86.Build.0 = Release|x86 + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.ActiveCfg = Release|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x64.Build.0 = Release|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x86.ActiveCfg = Release|Any CPU + {94C7714E-29D4-4D6D-B213-2C18D627AB75}.Release|x86.Build.0 = Release|Any CPU {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x64.ActiveCfg = Debug|x64 - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x64.Build.0 = Debug|x64 - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x86.ActiveCfg = Debug|x86 - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x86.Build.0 = Debug|x86 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x64.ActiveCfg = Debug|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x64.Build.0 = Debug|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x86.ActiveCfg = Debug|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Debug|x86.Build.0 = Debug|Any CPU {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|Any CPU.ActiveCfg = Release|Any CPU {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|Any CPU.Build.0 = Release|Any CPU - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x64.ActiveCfg = Release|x64 - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x64.Build.0 = Release|x64 - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x86.ActiveCfg = Release|x86 - {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x86.Build.0 = Release|x86 + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x64.ActiveCfg = Release|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x64.Build.0 = Release|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x86.ActiveCfg = Release|Any CPU + {7250653F-DE83-4069-8D34-8050E8E45EA1}.Release|x86.Build.0 = Release|Any CPU {8A7C524C-4B72-45FD-8274-EFB67C27C169}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8A7C524C-4B72-45FD-8274-EFB67C27C169}.Debug|Any CPU.Build.0 = Debug|Any CPU {8A7C524C-4B72-45FD-8274-EFB67C27C169}.Debug|x64.ActiveCfg = Debug|x64 @@ -1517,16 +1520,16 @@ Global {8A7C524C-4B72-45FD-8274-EFB67C27C169}.Release|x86.Build.0 = Release|x86 {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x64.ActiveCfg = Debug|x64 - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x64.Build.0 = Debug|x64 - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x86.ActiveCfg = Debug|x86 - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x86.Build.0 = Debug|x86 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x64.ActiveCfg = Debug|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x64.Build.0 = Debug|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x86.ActiveCfg = Debug|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Debug|x86.Build.0 = Debug|Any CPU {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|Any CPU.ActiveCfg = Release|Any CPU {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|Any CPU.Build.0 = Release|Any CPU - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x64.ActiveCfg = Release|x64 - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x64.Build.0 = Release|x64 - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x86.ActiveCfg = Release|x86 - {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x86.Build.0 = Release|x86 + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x64.ActiveCfg = Release|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x64.Build.0 = Release|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x86.ActiveCfg = Release|Any CPU + {B94FFB82-43D4-40AB-9980-B03470ADF221}.Release|x86.Build.0 = Release|Any CPU {7EA0985E-A1D6-4FA7-B30A-2633FDFB01F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7EA0985E-A1D6-4FA7-B30A-2633FDFB01F0}.Debug|Any CPU.Build.0 = Debug|Any CPU {7EA0985E-A1D6-4FA7-B30A-2633FDFB01F0}.Debug|x64.ActiveCfg = Debug|x64 @@ -1541,16 +1544,16 @@ Global {7EA0985E-A1D6-4FA7-B30A-2633FDFB01F0}.Release|x86.Build.0 = Release|x86 {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x64.ActiveCfg = Debug|x64 - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x64.Build.0 = Debug|x64 - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x86.ActiveCfg = Debug|x86 - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x86.Build.0 = Debug|x86 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x64.ActiveCfg = Debug|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x64.Build.0 = Debug|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x86.ActiveCfg = Debug|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Debug|x86.Build.0 = Debug|Any CPU {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|Any CPU.ActiveCfg = Release|Any CPU {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|Any CPU.Build.0 = Release|Any CPU - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x64.ActiveCfg = Release|x64 - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x64.Build.0 = Release|x64 - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x86.ActiveCfg = Release|x86 - {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x86.Build.0 = Release|x86 + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x64.ActiveCfg = Release|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x64.Build.0 = Release|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x86.ActiveCfg = Release|Any CPU + {8C265E11-4F8D-4CED-9E6B-F400A0075C18}.Release|x86.Build.0 = Release|Any CPU {E2419315-B10A-4BC1-B517-A24DCF4C59AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E2419315-B10A-4BC1-B517-A24DCF4C59AC}.Debug|Any CPU.Build.0 = Debug|Any CPU {E2419315-B10A-4BC1-B517-A24DCF4C59AC}.Debug|x64.ActiveCfg = Debug|x64 @@ -1649,28 +1652,28 @@ Global {399EBB6E-37A1-4AE4-B8CD-0D461FF286A3}.Release|x86.Build.0 = Release|x86 {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x64.ActiveCfg = Debug|x64 - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x64.Build.0 = Debug|x64 - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x86.ActiveCfg = Debug|x86 - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x86.Build.0 = Debug|x86 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x64.ActiveCfg = Debug|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x64.Build.0 = Debug|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x86.ActiveCfg = Debug|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Debug|x86.Build.0 = Debug|Any CPU {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|Any CPU.ActiveCfg = Release|Any CPU {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|Any CPU.Build.0 = Release|Any CPU - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x64.ActiveCfg = Release|x64 - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x64.Build.0 = Release|x64 - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x86.ActiveCfg = Release|x86 - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x86.Build.0 = Release|x86 + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x64.ActiveCfg = Release|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x64.Build.0 = Release|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x86.ActiveCfg = Release|Any CPU + {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94}.Release|x86.Build.0 = Release|Any CPU {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x64.ActiveCfg = Debug|x64 - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x64.Build.0 = Debug|x64 - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x86.ActiveCfg = Debug|x86 - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x86.Build.0 = Debug|x86 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x64.ActiveCfg = Debug|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x64.Build.0 = Debug|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x86.ActiveCfg = Debug|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Debug|x86.Build.0 = Debug|Any CPU {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|Any CPU.ActiveCfg = Release|Any CPU {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|Any CPU.Build.0 = Release|Any CPU - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x64.ActiveCfg = Release|x64 - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x64.Build.0 = Release|x64 - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x86.ActiveCfg = Release|x86 - {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x86.Build.0 = Release|x86 + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x64.ActiveCfg = Release|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x64.Build.0 = Release|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x86.ActiveCfg = Release|Any CPU + {1256B945-EEA9-4BE4-9880-76B5B113F089}.Release|x86.Build.0 = Release|Any CPU {72232235-B6CF-4E6C-B086-9E9E11AA0717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {72232235-B6CF-4E6C-B086-9E9E11AA0717}.Debug|Any CPU.Build.0 = Debug|Any CPU {72232235-B6CF-4E6C-B086-9E9E11AA0717}.Debug|x64.ActiveCfg = Debug|x64 @@ -1685,28 +1688,28 @@ Global {72232235-B6CF-4E6C-B086-9E9E11AA0717}.Release|x86.Build.0 = Release|x86 {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x64.ActiveCfg = Debug|x64 - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x64.Build.0 = Debug|x64 - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x86.ActiveCfg = Debug|x86 - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x86.Build.0 = Debug|x86 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x64.ActiveCfg = Debug|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x64.Build.0 = Debug|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x86.ActiveCfg = Debug|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Debug|x86.Build.0 = Debug|Any CPU {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|Any CPU.ActiveCfg = Release|Any CPU {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|Any CPU.Build.0 = Release|Any CPU - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x64.ActiveCfg = Release|x64 - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x64.Build.0 = Release|x64 - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x86.ActiveCfg = Release|x86 - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x86.Build.0 = Release|x86 + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x64.ActiveCfg = Release|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x64.Build.0 = Release|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x86.ActiveCfg = Release|Any CPU + {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8}.Release|x86.Build.0 = Release|Any CPU {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x64.ActiveCfg = Debug|x64 - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x64.Build.0 = Debug|x64 - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x86.ActiveCfg = Debug|x86 - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x86.Build.0 = Debug|x86 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x64.ActiveCfg = Debug|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x64.Build.0 = Debug|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x86.ActiveCfg = Debug|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Debug|x86.Build.0 = Debug|Any CPU {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|Any CPU.ActiveCfg = Release|Any CPU {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|Any CPU.Build.0 = Release|Any CPU - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x64.ActiveCfg = Release|x64 - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x64.Build.0 = Release|x64 - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x86.ActiveCfg = Release|x86 - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x86.Build.0 = Release|x86 + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x64.ActiveCfg = Release|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x64.Build.0 = Release|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x86.ActiveCfg = Release|Any CPU + {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}.Release|x86.Build.0 = Release|Any CPU {0C378762-D5DB-488A-8931-2BA42B1B7CBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0C378762-D5DB-488A-8931-2BA42B1B7CBF}.Debug|Any CPU.Build.0 = Debug|Any CPU {0C378762-D5DB-488A-8931-2BA42B1B7CBF}.Debug|x64.ActiveCfg = Debug|x64 @@ -1721,16 +1724,16 @@ Global {0C378762-D5DB-488A-8931-2BA42B1B7CBF}.Release|x86.Build.0 = Release|x86 {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x64.ActiveCfg = Debug|x64 - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x64.Build.0 = Debug|x64 - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x86.ActiveCfg = Debug|x86 - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x86.Build.0 = Debug|x86 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x64.ActiveCfg = Debug|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x64.Build.0 = Debug|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x86.ActiveCfg = Debug|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Debug|x86.Build.0 = Debug|Any CPU {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|Any CPU.ActiveCfg = Release|Any CPU {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|Any CPU.Build.0 = Release|Any CPU - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x64.ActiveCfg = Release|x64 - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x64.Build.0 = Release|x64 - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x86.ActiveCfg = Release|x86 - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x86.Build.0 = Release|x86 + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x64.ActiveCfg = Release|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x64.Build.0 = Release|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x86.ActiveCfg = Release|Any CPU + {2BF1D639-1A74-44ED-AAAD-41ECD395AD93}.Release|x86.Build.0 = Release|Any CPU {78763A4E-E163-48C2-98EB-709760D06F25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {78763A4E-E163-48C2-98EB-709760D06F25}.Debug|Any CPU.Build.0 = Debug|Any CPU {78763A4E-E163-48C2-98EB-709760D06F25}.Debug|x64.ActiveCfg = Debug|x64 @@ -1745,16 +1748,16 @@ Global {78763A4E-E163-48C2-98EB-709760D06F25}.Release|x86.Build.0 = Release|x86 {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.ActiveCfg = Debug|x64 - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.Build.0 = Debug|x64 - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.ActiveCfg = Debug|x86 - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.Build.0 = Debug|x86 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.ActiveCfg = Debug|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x64.Build.0 = Debug|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.ActiveCfg = Debug|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Debug|x86.Build.0 = Debug|Any CPU {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|Any CPU.ActiveCfg = Release|Any CPU {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|Any CPU.Build.0 = Release|Any CPU - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.ActiveCfg = Release|x64 - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.Build.0 = Release|x64 - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.ActiveCfg = Release|x86 - {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.Build.0 = Release|x86 + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.ActiveCfg = Release|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x64.Build.0 = Release|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.ActiveCfg = Release|Any CPU + {07486E68-1517-4B9D-A58D-A38E99AE71AB}.Release|x86.Build.0 = Release|Any CPU {E6CB1FC5-78EC-4EB8-BF12-35303C36F962}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E6CB1FC5-78EC-4EB8-BF12-35303C36F962}.Debug|Any CPU.Build.0 = Debug|Any CPU {E6CB1FC5-78EC-4EB8-BF12-35303C36F962}.Debug|x64.ActiveCfg = Debug|x64 @@ -1769,16 +1772,16 @@ Global {E6CB1FC5-78EC-4EB8-BF12-35303C36F962}.Release|x86.Build.0 = Release|x86 {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x64.ActiveCfg = Debug|x64 - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x64.Build.0 = Debug|x64 - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x86.ActiveCfg = Debug|x86 - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x86.Build.0 = Debug|x86 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x64.Build.0 = Debug|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Debug|x86.Build.0 = Debug|Any CPU {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|Any CPU.ActiveCfg = Release|Any CPU {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|Any CPU.Build.0 = Release|Any CPU - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x64.ActiveCfg = Release|x64 - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x64.Build.0 = Release|x64 - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x86.ActiveCfg = Release|x86 - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x86.Build.0 = Release|x86 + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x64.ActiveCfg = Release|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x64.Build.0 = Release|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x86.ActiveCfg = Release|Any CPU + {9D792B6D-836B-46DC-9D69-50B4B1E7B87F}.Release|x86.Build.0 = Release|Any CPU {D34A7620-3E23-40D9-8647-637BE901F271}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D34A7620-3E23-40D9-8647-637BE901F271}.Debug|Any CPU.Build.0 = Debug|Any CPU {D34A7620-3E23-40D9-8647-637BE901F271}.Debug|x64.ActiveCfg = Debug|x64 @@ -1793,16 +1796,16 @@ Global {D34A7620-3E23-40D9-8647-637BE901F271}.Release|x86.Build.0 = Release|x86 {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x64.ActiveCfg = Debug|x64 - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x64.Build.0 = Debug|x64 - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x86.ActiveCfg = Debug|x86 - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x86.Build.0 = Debug|x86 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x64.ActiveCfg = Debug|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x64.Build.0 = Debug|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x86.ActiveCfg = Debug|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Debug|x86.Build.0 = Debug|Any CPU {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|Any CPU.ActiveCfg = Release|Any CPU {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|Any CPU.Build.0 = Release|Any CPU - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x64.ActiveCfg = Release|x64 - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x64.Build.0 = Release|x64 - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x86.ActiveCfg = Release|x86 - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x86.Build.0 = Release|x86 + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x64.ActiveCfg = Release|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x64.Build.0 = Release|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x86.ActiveCfg = Release|Any CPU + {E4EE5AFB-D552-447B-8A16-6CBE7938AF32}.Release|x86.Build.0 = Release|Any CPU {CB3D0A1E-1BE8-476B-A53C-2B189E30064F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CB3D0A1E-1BE8-476B-A53C-2B189E30064F}.Debug|Any CPU.Build.0 = Debug|Any CPU {CB3D0A1E-1BE8-476B-A53C-2B189E30064F}.Debug|x64.ActiveCfg = Debug|x64 @@ -1841,16 +1844,16 @@ Global {0C2917C8-7AA8-4E18-800A-C4D064F992ED}.Release|x86.Build.0 = Release|x86 {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x64.ActiveCfg = Debug|x64 - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x64.Build.0 = Debug|x64 - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x86.ActiveCfg = Debug|x86 - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x86.Build.0 = Debug|x86 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x64.ActiveCfg = Debug|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x64.Build.0 = Debug|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x86.ActiveCfg = Debug|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Debug|x86.Build.0 = Debug|Any CPU {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|Any CPU.ActiveCfg = Release|Any CPU {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|Any CPU.Build.0 = Release|Any CPU - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x64.ActiveCfg = Release|x64 - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x64.Build.0 = Release|x64 - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x86.ActiveCfg = Release|x86 - {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x86.Build.0 = Release|x86 + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x64.ActiveCfg = Release|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x64.Build.0 = Release|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x86.ActiveCfg = Release|Any CPU + {D2C39FBA-A1D5-403A-9211-B0A299A76313}.Release|x86.Build.0 = Release|Any CPU {C633FB23-BAE6-448E-BF5D-E1F9A839B5ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C633FB23-BAE6-448E-BF5D-E1F9A839B5ED}.Debug|Any CPU.Build.0 = Debug|Any CPU {C633FB23-BAE6-448E-BF5D-E1F9A839B5ED}.Debug|x64.ActiveCfg = Debug|x64 @@ -1875,18 +1878,6 @@ Global {362A5DC3-969D-43FB-A552-D2F52B780188}.Release|x64.Build.0 = Release|x64 {362A5DC3-969D-43FB-A552-D2F52B780188}.Release|x86.ActiveCfg = Release|x86 {362A5DC3-969D-43FB-A552-D2F52B780188}.Release|x86.Build.0 = Release|x86 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x64.ActiveCfg = Debug|x64 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x64.Build.0 = Debug|x64 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x86.ActiveCfg = Debug|x86 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x86.Build.0 = Debug|x86 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|Any CPU.Build.0 = Release|Any CPU - {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x64.ActiveCfg = Release|x64 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x64.Build.0 = Release|x64 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x86.ActiveCfg = Release|x86 - {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x86.Build.0 = Release|x86 {3FC7515E-D8A0-41FE-8CFA-50E3ADA61A1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3FC7515E-D8A0-41FE-8CFA-50E3ADA61A1E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3FC7515E-D8A0-41FE-8CFA-50E3ADA61A1E}.Debug|x64.ActiveCfg = Debug|x64 @@ -1925,28 +1916,28 @@ Global {C38691AE-ECB4-489A-A05D-B035554E0168}.Release|x86.Build.0 = Release|x86 {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x64.ActiveCfg = Debug|x64 - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x64.Build.0 = Debug|x64 - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x86.ActiveCfg = Debug|x86 - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x86.Build.0 = Debug|x86 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x64.ActiveCfg = Debug|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x64.Build.0 = Debug|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x86.ActiveCfg = Debug|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Debug|x86.Build.0 = Debug|Any CPU {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|Any CPU.ActiveCfg = Release|Any CPU {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|Any CPU.Build.0 = Release|Any CPU - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x64.ActiveCfg = Release|x64 - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x64.Build.0 = Release|x64 - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x86.ActiveCfg = Release|x86 - {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x86.Build.0 = Release|x86 + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x64.ActiveCfg = Release|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x64.Build.0 = Release|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x86.ActiveCfg = Release|Any CPU + {9319C447-8183-4DBC-8145-0E3CF98084CC}.Release|x86.Build.0 = Release|Any CPU {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x64.ActiveCfg = Debug|x64 - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x64.Build.0 = Debug|x64 - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x86.ActiveCfg = Debug|x86 - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x86.Build.0 = Debug|x86 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x64.ActiveCfg = Debug|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x64.Build.0 = Debug|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Debug|x86.Build.0 = Debug|Any CPU {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|Any CPU.ActiveCfg = Release|Any CPU {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|Any CPU.Build.0 = Release|Any CPU - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x64.ActiveCfg = Release|x64 - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x64.Build.0 = Release|x64 - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x86.ActiveCfg = Release|x86 - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x86.Build.0 = Release|x86 + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x64.ActiveCfg = Release|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x64.Build.0 = Release|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x86.ActiveCfg = Release|Any CPU + {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F}.Release|x86.Build.0 = Release|Any CPU {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|Any CPU.Build.0 = Debug|Any CPU {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}.Debug|x64.ActiveCfg = Debug|x64 @@ -2009,52 +2000,40 @@ Global {F7E5B975-FDF2-45A4-91CB-FF6D3C33D65E}.Release|x86.Build.0 = Release|x86 {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x64.ActiveCfg = Debug|x64 - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x64.Build.0 = Debug|x64 - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x86.ActiveCfg = Debug|x86 - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x86.Build.0 = Debug|x86 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x64.ActiveCfg = Debug|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x64.Build.0 = Debug|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x86.ActiveCfg = Debug|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Debug|x86.Build.0 = Debug|Any CPU {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|Any CPU.Build.0 = Release|Any CPU - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x64.ActiveCfg = Release|x64 - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x64.Build.0 = Release|x64 - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x86.ActiveCfg = Release|x86 - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x86.Build.0 = Release|x86 + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x64.ActiveCfg = Release|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x64.Build.0 = Release|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x86.ActiveCfg = Release|Any CPU + {C3AD50E6-E717-490E-ABC7-32EF7FB03C97}.Release|x86.Build.0 = Release|Any CPU {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x64.ActiveCfg = Debug|x64 - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x64.Build.0 = Debug|x64 - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x86.ActiveCfg = Debug|x86 - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x86.Build.0 = Debug|x86 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x64.ActiveCfg = Debug|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x64.Build.0 = Debug|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x86.ActiveCfg = Debug|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Debug|x86.Build.0 = Debug|Any CPU {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|Any CPU.ActiveCfg = Release|Any CPU {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|Any CPU.Build.0 = Release|Any CPU - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x64.ActiveCfg = Release|x64 - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x64.Build.0 = Release|x64 - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x86.ActiveCfg = Release|x86 - {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x86.Build.0 = Release|x86 + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x64.ActiveCfg = Release|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x64.Build.0 = Release|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x86.ActiveCfg = Release|Any CPU + {291010E4-2F4E-4D29-A795-753CFF293FDB}.Release|x86.Build.0 = Release|Any CPU {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x64.ActiveCfg = Debug|x64 - {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x64.Build.0 = Debug|x64 - {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x86.ActiveCfg = Debug|x86 - {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x86.Build.0 = Debug|x86 + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x64.ActiveCfg = Debug|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x64.Build.0 = Debug|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x86.ActiveCfg = Debug|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Debug|x86.Build.0 = Debug|Any CPU {BE698769-975A-429E-828C-72BB2B6182C8}.Release|Any CPU.ActiveCfg = Release|Any CPU {BE698769-975A-429E-828C-72BB2B6182C8}.Release|Any CPU.Build.0 = Release|Any CPU - {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x64.ActiveCfg = Release|x64 - {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x64.Build.0 = Release|x64 - {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x86.ActiveCfg = Release|x86 - {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x86.Build.0 = Release|x86 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x64.ActiveCfg = Debug|x64 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x64.Build.0 = Debug|x64 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x86.ActiveCfg = Debug|x86 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x86.Build.0 = Debug|x86 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|Any CPU.Build.0 = Release|Any CPU - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x64.ActiveCfg = Release|x64 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x64.Build.0 = Release|x64 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x86.ActiveCfg = Release|x86 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x86.Build.0 = Release|x86 + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x64.ActiveCfg = Release|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x64.Build.0 = Release|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x86.ActiveCfg = Release|Any CPU + {BE698769-975A-429E-828C-72BB2B6182C8}.Release|x86.Build.0 = Release|Any CPU {BBF2CCC8-4D87-4297-8E18-8241FF93F966}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BBF2CCC8-4D87-4297-8E18-8241FF93F966}.Debug|Any CPU.Build.0 = Debug|Any CPU {BBF2CCC8-4D87-4297-8E18-8241FF93F966}.Debug|x64.ActiveCfg = Debug|x64 @@ -2069,40 +2048,40 @@ Global {BBF2CCC8-4D87-4297-8E18-8241FF93F966}.Release|x86.Build.0 = Release|x86 {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x64.ActiveCfg = Debug|x64 - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x64.Build.0 = Debug|x64 - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x86.ActiveCfg = Debug|x86 - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x86.Build.0 = Debug|x86 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x64.ActiveCfg = Debug|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x64.Build.0 = Debug|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x86.ActiveCfg = Debug|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Debug|x86.Build.0 = Debug|Any CPU {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|Any CPU.ActiveCfg = Release|Any CPU {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|Any CPU.Build.0 = Release|Any CPU - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x64.ActiveCfg = Release|x64 - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x64.Build.0 = Release|x64 - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x86.ActiveCfg = Release|x86 - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x86.Build.0 = Release|x86 + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x64.ActiveCfg = Release|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x64.Build.0 = Release|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x86.ActiveCfg = Release|Any CPU + {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77}.Release|x86.Build.0 = Release|Any CPU {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x64.ActiveCfg = Debug|x64 - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x64.Build.0 = Debug|x64 - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x86.ActiveCfg = Debug|x86 - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x86.Build.0 = Debug|x86 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x64.ActiveCfg = Debug|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x64.Build.0 = Debug|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x86.ActiveCfg = Debug|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Debug|x86.Build.0 = Debug|Any CPU {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|Any CPU.ActiveCfg = Release|Any CPU {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|Any CPU.Build.0 = Release|Any CPU - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x64.ActiveCfg = Release|x64 - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x64.Build.0 = Release|x64 - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x86.ActiveCfg = Release|x86 - {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x86.Build.0 = Release|x86 + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x64.ActiveCfg = Release|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x64.Build.0 = Release|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x86.ActiveCfg = Release|Any CPU + {02CDDBF5-42A7-4C40-AE6C-E5D29AC9CCEC}.Release|x86.Build.0 = Release|Any CPU {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x64.ActiveCfg = Debug|x64 - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x64.Build.0 = Debug|x64 - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x86.ActiveCfg = Debug|x86 - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x86.Build.0 = Debug|x86 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x64.ActiveCfg = Debug|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x64.Build.0 = Debug|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x86.ActiveCfg = Debug|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Debug|x86.Build.0 = Debug|Any CPU {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|Any CPU.ActiveCfg = Release|Any CPU {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|Any CPU.Build.0 = Release|Any CPU - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x64.ActiveCfg = Release|x64 - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x64.Build.0 = Release|x64 - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x86.ActiveCfg = Release|x86 - {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x86.Build.0 = Release|x86 + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x64.ActiveCfg = Release|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x64.Build.0 = Release|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x86.ActiveCfg = Release|Any CPU + {9372D115-D933-40D2-BD29-A2C1EAC35874}.Release|x86.Build.0 = Release|Any CPU {26349C8D-72A1-4BAE-95A3-14E96A3B4AE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {26349C8D-72A1-4BAE-95A3-14E96A3B4AE8}.Debug|Any CPU.Build.0 = Debug|Any CPU {26349C8D-72A1-4BAE-95A3-14E96A3B4AE8}.Debug|x64.ActiveCfg = Debug|x64 @@ -2117,40 +2096,40 @@ Global {26349C8D-72A1-4BAE-95A3-14E96A3B4AE8}.Release|x86.Build.0 = Release|x86 {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x64.ActiveCfg = Debug|x64 - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x64.Build.0 = Debug|x64 - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x86.ActiveCfg = Debug|x86 - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x86.Build.0 = Debug|x86 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x64.ActiveCfg = Debug|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x64.Build.0 = Debug|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x86.ActiveCfg = Debug|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Debug|x86.Build.0 = Debug|Any CPU {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|Any CPU.ActiveCfg = Release|Any CPU {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|Any CPU.Build.0 = Release|Any CPU - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x64.ActiveCfg = Release|x64 - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x64.Build.0 = Release|x64 - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x86.ActiveCfg = Release|x86 - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x86.Build.0 = Release|x86 + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x64.ActiveCfg = Release|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x64.Build.0 = Release|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x86.ActiveCfg = Release|Any CPU + {1D41EAE6-CC79-41D4-858C-589C4DB5E50D}.Release|x86.Build.0 = Release|Any CPU {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|Any CPU.Build.0 = Debug|Any CPU - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x64.ActiveCfg = Debug|x64 - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x64.Build.0 = Debug|x64 - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x86.ActiveCfg = Debug|x86 - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x86.Build.0 = Debug|x86 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x64.ActiveCfg = Debug|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x64.Build.0 = Debug|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x86.ActiveCfg = Debug|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Debug|x86.Build.0 = Debug|Any CPU {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|Any CPU.ActiveCfg = Release|Any CPU {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|Any CPU.Build.0 = Release|Any CPU - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x64.ActiveCfg = Release|x64 - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x64.Build.0 = Release|x64 - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x86.ActiveCfg = Release|x86 - {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x86.Build.0 = Release|x86 + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x64.ActiveCfg = Release|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x64.Build.0 = Release|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x86.ActiveCfg = Release|Any CPU + {59F354CB-FE13-4253-AED2-AD86372BEC27}.Release|x86.Build.0 = Release|Any CPU {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x64.ActiveCfg = Debug|x64 - {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x64.Build.0 = Debug|x64 - {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x86.ActiveCfg = Debug|x86 - {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x86.Build.0 = Debug|x86 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x64.ActiveCfg = Debug|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x64.Build.0 = Debug|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x86.ActiveCfg = Debug|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Debug|x86.Build.0 = Debug|Any CPU {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|Any CPU.ActiveCfg = Release|Any CPU {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|Any CPU.Build.0 = Release|Any CPU - {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x64.ActiveCfg = Release|x64 - {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x64.Build.0 = Release|x64 - {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x86.ActiveCfg = Release|x86 - {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x86.Build.0 = Release|x86 + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x64.ActiveCfg = Release|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x64.Build.0 = Release|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x86.ActiveCfg = Release|Any CPU + {97198965-AFEA-496B-B3B1-316905C43FD6}.Release|x86.Build.0 = Release|Any CPU {90B6CA12-9791-4430-B2D7-CD3ED7F75E2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {90B6CA12-9791-4430-B2D7-CD3ED7F75E2B}.Debug|Any CPU.Build.0 = Debug|Any CPU {90B6CA12-9791-4430-B2D7-CD3ED7F75E2B}.Debug|x64.ActiveCfg = Debug|x64 @@ -2165,28 +2144,28 @@ Global {90B6CA12-9791-4430-B2D7-CD3ED7F75E2B}.Release|x86.Build.0 = Release|x86 {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x64.ActiveCfg = Debug|x64 - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x64.Build.0 = Debug|x64 - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x86.ActiveCfg = Debug|x86 - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x86.Build.0 = Debug|x86 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x64.ActiveCfg = Debug|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x64.Build.0 = Debug|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x86.ActiveCfg = Debug|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Debug|x86.Build.0 = Debug|Any CPU {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|Any CPU.ActiveCfg = Release|Any CPU {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|Any CPU.Build.0 = Release|Any CPU - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x64.ActiveCfg = Release|x64 - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x64.Build.0 = Release|x64 - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x86.ActiveCfg = Release|x86 - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x86.Build.0 = Release|x86 + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x64.ActiveCfg = Release|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x64.Build.0 = Release|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x86.ActiveCfg = Release|Any CPU + {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1}.Release|x86.Build.0 = Release|Any CPU {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x64.ActiveCfg = Debug|x64 - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x64.Build.0 = Debug|x64 - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x86.ActiveCfg = Debug|x86 - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x86.Build.0 = Debug|x86 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x64.ActiveCfg = Debug|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x64.Build.0 = Debug|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x86.ActiveCfg = Debug|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Debug|x86.Build.0 = Debug|Any CPU {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|Any CPU.ActiveCfg = Release|Any CPU {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|Any CPU.Build.0 = Release|Any CPU - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x64.ActiveCfg = Release|x64 - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x64.Build.0 = Release|x64 - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x86.ActiveCfg = Release|x86 - {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x86.Build.0 = Release|x86 + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x64.ActiveCfg = Release|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x64.Build.0 = Release|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x86.ActiveCfg = Release|Any CPU + {D53E8E48-CFAA-4F57-AC35-63BEF4476159}.Release|x86.Build.0 = Release|Any CPU {8CFC7A61-E214-44DC-96B3-4CEA9B8E958E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8CFC7A61-E214-44DC-96B3-4CEA9B8E958E}.Debug|Any CPU.Build.0 = Debug|Any CPU {8CFC7A61-E214-44DC-96B3-4CEA9B8E958E}.Debug|x64.ActiveCfg = Debug|x64 @@ -2201,84 +2180,88 @@ Global {8CFC7A61-E214-44DC-96B3-4CEA9B8E958E}.Release|x86.Build.0 = Release|x86 {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x64.ActiveCfg = Debug|x64 - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x64.Build.0 = Debug|x64 - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x86.ActiveCfg = Debug|x86 - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x86.Build.0 = Debug|x86 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x64.ActiveCfg = Debug|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x64.Build.0 = Debug|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x86.ActiveCfg = Debug|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Debug|x86.Build.0 = Debug|Any CPU {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|Any CPU.ActiveCfg = Release|Any CPU {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|Any CPU.Build.0 = Release|Any CPU - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x64.ActiveCfg = Release|x64 - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x64.Build.0 = Release|x64 - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x86.ActiveCfg = Release|x86 - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x86.Build.0 = Release|x86 + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x64.ActiveCfg = Release|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x64.Build.0 = Release|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x86.ActiveCfg = Release|Any CPU + {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4}.Release|x86.Build.0 = Release|Any CPU {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x64.ActiveCfg = Debug|x64 - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x64.Build.0 = Debug|x64 - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x86.ActiveCfg = Debug|x86 - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x86.Build.0 = Debug|x86 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x64.ActiveCfg = Debug|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x64.Build.0 = Debug|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x86.ActiveCfg = Debug|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Debug|x86.Build.0 = Debug|Any CPU {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|Any CPU.ActiveCfg = Release|Any CPU {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|Any CPU.Build.0 = Release|Any CPU - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x64.ActiveCfg = Release|x64 - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x64.Build.0 = Release|x64 - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x86.ActiveCfg = Release|x86 - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x86.Build.0 = Release|x86 + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x64.ActiveCfg = Release|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x64.Build.0 = Release|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x86.ActiveCfg = Release|Any CPU + {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9}.Release|x86.Build.0 = Release|Any CPU {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x64.ActiveCfg = Debug|x64 - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x64.Build.0 = Debug|x64 - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x86.ActiveCfg = Debug|x86 - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x86.Build.0 = Debug|x86 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x64.ActiveCfg = Debug|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x64.Build.0 = Debug|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x86.ActiveCfg = Debug|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Debug|x86.Build.0 = Debug|Any CPU {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|Any CPU.ActiveCfg = Release|Any CPU {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|Any CPU.Build.0 = Release|Any CPU - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x64.ActiveCfg = Release|x64 - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x64.Build.0 = Release|x64 - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x86.ActiveCfg = Release|x86 - {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x86.Build.0 = Release|x86 + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x64.ActiveCfg = Release|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x64.Build.0 = Release|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x86.ActiveCfg = Release|Any CPU + {9943FF23-8619-459C-B84A-E7FBDCBA04E6}.Release|x86.Build.0 = Release|Any CPU {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x64.ActiveCfg = Debug|x64 - {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x64.Build.0 = Debug|x64 - {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x86.ActiveCfg = Debug|x86 - {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x86.Build.0 = Debug|x86 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x64.ActiveCfg = Debug|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x64.Build.0 = Debug|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Debug|x86.Build.0 = Debug|Any CPU {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|Any CPU.ActiveCfg = Release|Any CPU {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|Any CPU.Build.0 = Release|Any CPU - {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x64.ActiveCfg = Release|x64 - {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x64.Build.0 = Release|x64 - {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x86.ActiveCfg = Release|x86 - {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x86.Build.0 = Release|x86 + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x64.ActiveCfg = Release|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x64.Build.0 = Release|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x86.ActiveCfg = Release|Any CPU + {4B76E2CB-A990-4959-B080-1D81D418D325}.Release|x86.Build.0 = Release|Any CPU {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x64.ActiveCfg = Debug|x64 - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x64.Build.0 = Debug|x64 - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x86.ActiveCfg = Debug|x86 - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x86.Build.0 = Debug|x86 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x64.ActiveCfg = Debug|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x64.Build.0 = Debug|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x86.ActiveCfg = Debug|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Debug|x86.Build.0 = Debug|Any CPU {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|Any CPU.ActiveCfg = Release|Any CPU {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|Any CPU.Build.0 = Release|Any CPU - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x64.ActiveCfg = Release|x64 - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x64.Build.0 = Release|x64 - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x86.ActiveCfg = Release|x86 - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x86.Build.0 = Release|x86 + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x64.ActiveCfg = Release|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x64.Build.0 = Release|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x86.ActiveCfg = Release|Any CPU + {0E2E224F-E9B2-41F3-B510-09183EEBA2AF}.Release|x86.Build.0 = Release|Any CPU {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Debug|Any CPU.Build.0 = Debug|Any CPU {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Debug|x64.ActiveCfg = Debug|x64 {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Debug|x64.Build.0 = Debug|x64 {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Debug|x86.ActiveCfg = Debug|Any CPU + {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Debug|x86.Build.0 = Debug|Any CPU {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Release|Any CPU.ActiveCfg = Release|Any CPU {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Release|Any CPU.Build.0 = Release|Any CPU {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Release|x64.ActiveCfg = Release|x64 {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Release|x64.Build.0 = Release|x64 {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Release|x86.ActiveCfg = Release|Any CPU + {FA3B9270-48B7-4C77-9FEA-2A6EDE82E909}.Release|x86.Build.0 = Release|Any CPU {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Debug|Any CPU.Build.0 = Debug|Any CPU {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Debug|x64.ActiveCfg = Debug|x64 {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Debug|x64.Build.0 = Debug|x64 {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Debug|x86.ActiveCfg = Debug|Any CPU + {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Debug|x86.Build.0 = Debug|Any CPU {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Release|Any CPU.ActiveCfg = Release|Any CPU {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Release|Any CPU.Build.0 = Release|Any CPU {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Release|x64.ActiveCfg = Release|x64 {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Release|x64.Build.0 = Release|x64 {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Release|x86.ActiveCfg = Release|Any CPU + {D1D69043-17E6-4B8C-BF41-0799C7E56032}.Release|x86.Build.0 = Release|Any CPU {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -2293,16 +2276,52 @@ Global {541A53F3-E6A7-402F-91BB-D76041CDD9FD}.Release|x86.Build.0 = Release|Any CPU {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x64.ActiveCfg = Debug|x64 - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x64.Build.0 = Debug|x64 - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x86.ActiveCfg = Debug|x86 - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x86.Build.0 = Debug|x86 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x64.ActiveCfg = Debug|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x64.Build.0 = Debug|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x86.ActiveCfg = Debug|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Debug|x86.Build.0 = Debug|Any CPU {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|Any CPU.ActiveCfg = Release|Any CPU {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|Any CPU.Build.0 = Release|Any CPU - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x64.ActiveCfg = Release|x64 - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x64.Build.0 = Release|x64 - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x86.ActiveCfg = Release|x86 - {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x86.Build.0 = Release|x86 + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x64.ActiveCfg = Release|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x64.Build.0 = Release|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x86.ActiveCfg = Release|Any CPU + {4CCDD23A-9FA3-4B36-9469-87D67E99225F}.Release|x86.Build.0 = Release|Any CPU + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Debug|x64.ActiveCfg = Debug|x64 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Debug|x64.Build.0 = Debug|x64 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Debug|x86.ActiveCfg = Debug|x86 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Debug|x86.Build.0 = Debug|x86 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Release|Any CPU.Build.0 = Release|Any CPU + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Release|x64.ActiveCfg = Release|x64 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Release|x64.Build.0 = Release|x64 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Release|x86.ActiveCfg = Release|x86 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A}.Release|x86.Build.0 = Release|x86 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x64.ActiveCfg = Debug|x64 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x64.Build.0 = Debug|x64 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x86.ActiveCfg = Debug|x86 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Debug|x86.Build.0 = Debug|x86 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|Any CPU.Build.0 = Release|Any CPU + {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x64.ActiveCfg = Release|x64 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x64.Build.0 = Release|x64 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x86.ActiveCfg = Release|x86 + {3B90F866-70F8-43EF-A541-51819D255B7B}.Release|x86.Build.0 = Release|x86 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x64.ActiveCfg = Debug|x64 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x64.Build.0 = Debug|x64 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x86.ActiveCfg = Debug|x86 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Debug|x86.Build.0 = Debug|x86 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|Any CPU.Build.0 = Release|Any CPU + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x64.ActiveCfg = Release|x64 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x64.Build.0 = Release|x64 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x86.ActiveCfg = Release|x86 + {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj b/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj index 671eecec8e..abe5cecda2 100644 --- a/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj +++ b/HeuristicLab.Algorithms.ALPS/3.3/HeuristicLab.Algorithms.ALPS-3.3.csproj @@ -1,76 +1,10 @@ - - - + - Debug - AnyCPU - {59F354CB-FE13-4253-AED2-AD86372BEC27} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.ALPS - HeuristicLab.Algorithms.ALPS-3.3 - v4.7.2 - 512 - - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - false - - + false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - false true @@ -78,132 +12,25 @@ HeuristicLab.snk + + false + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {25087811-f74c-4128-bc86-8324271da13e} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - - - {2c36cd4f-e5f5-43a4-801a-201ea895fe17} - HeuristicLab.Selection-3.3 - False - + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.Benchmarks.Views/3.3/HeuristicLab.Algorithms.Benchmarks.Views-3.3.csproj b/HeuristicLab.Algorithms.Benchmarks.Views/3.3/HeuristicLab.Algorithms.Benchmarks.Views-3.3.csproj index e9d598b80b..cb6ea3be5b 100644 --- a/HeuristicLab.Algorithms.Benchmarks.Views/3.3/HeuristicLab.Algorithms.Benchmarks.Views-3.3.csproj +++ b/HeuristicLab.Algorithms.Benchmarks.Views/3.3/HeuristicLab.Algorithms.Benchmarks.Views-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,9 +82,32 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -106,6 +123,7 @@ + @@ -150,6 +168,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Algorithms.Benchmarks.Views/3.3/packages.config b/HeuristicLab.Algorithms.Benchmarks.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Algorithms.Benchmarks.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Algorithms.Benchmarks/3.3/HeuristicLab.Algorithms.Benchmarks-3.3.csproj b/HeuristicLab.Algorithms.Benchmarks/3.3/HeuristicLab.Algorithms.Benchmarks-3.3.csproj index c37f8067b0..5199cdf0dd 100644 --- a/HeuristicLab.Algorithms.Benchmarks/3.3/HeuristicLab.Algorithms.Benchmarks-3.3.csproj +++ b/HeuristicLab.Algorithms.Benchmarks/3.3/HeuristicLab.Algorithms.Benchmarks-3.3.csproj @@ -1,85 +1,33 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {068C70A7-8CAF-4AB6-8721-4564D62292BC} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.Benchmarks - HeuristicLab.Algorithms.Benchmarks-3.3 - v4.7.2 - 512 - + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + true @@ -88,102 +36,17 @@ HeuristicLab.snk - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.CMAEvolutionStrategy/3.4/HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4.csproj b/HeuristicLab.Algorithms.CMAEvolutionStrategy/3.4/HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4.csproj index e32126e136..0b2638c280 100644 --- a/HeuristicLab.Algorithms.CMAEvolutionStrategy/3.4/HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4.csproj +++ b/HeuristicLab.Algorithms.CMAEvolutionStrategy/3.4/HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {291010E4-2F4E-4D29-A795-753CFF293FDB} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.CMAEvolutionStrategy - HeuristicLab.Algorithms.CMAEvolutionStrategy-3.4 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,67 +20,11 @@ false false true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true + false ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false @@ -103,43 +32,12 @@ ..\..\bin\ALGLIB-3.17.0.dll False - - + 3.5 - - + 3.5 - - 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -159,105 +57,23 @@ - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {bb6d334a-4bb6-4674-9883-31a6ebb32cab} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {25087811-f74c-4128-bc86-8324271da13e} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - - - {2c36cd4f-e5f5-43a4-801a-201ea895fe17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4.csproj b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4.csproj index c7c6e537aa..218ca2f6dc 100644 --- a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4.csproj +++ b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4.csproj @@ -1,38 +1,16 @@ - - - + - Debug - AnyCPU - {541A53F3-E6A7-402F-91BB-D76041CDD9FD} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.DataAnalysis - HeuristicLab.Algorithms.DataAnalysis.DecisionTrees-3.4 - v4.7.2 - 512 - true - + false - AnyCPU - true - full - false ..\..\bin\ - DEBUG;TRACE - prompt - 4 true - AnyCPU - pdbonly - true ..\..\bin\ - TRACE - prompt - 4 true @@ -43,171 +21,35 @@ + + false + - - False + ..\..\bin\ALGLIB-3.17.0.dll - False + alglib_3_17 - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - {4c7f6d8a-b279-4898-acd6-7be39111def9} - HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4 - False - - - {2e782078-fa81-4b70-b56f-74ce38dac6c8} - HeuristicLab.Algorithms.DataAnalysis-3.4 - False - - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {dbecb8b0-b166-4133-baf1-ed67c3fd7fca} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {06D4A186-9319-48A0-BADE-A2058D462EEA} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {df87c13e-a889-46ff-8153-66dcaa8c5674} - HeuristicLab.Problems.DataAnalysis-3.4 - False - - - {3540e29e-4793-49e7-8ee2-fea7f61c3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - - - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafModels/PreconstructedLinearModel.cs b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafModels/PreconstructedLinearModel.cs index 6d582c3b4d..012f245061 100644 --- a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafModels/PreconstructedLinearModel.cs +++ b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafModels/PreconstructedLinearModel.cs @@ -18,6 +18,7 @@ * along with HeuristicLab. If not, see . */ #endregion +extern alias alglib_3_17; using System; using System.Collections.Generic; @@ -71,13 +72,13 @@ private static PreconstructedLinearModel ClassicCalculation(IRegressionProblemDa var nFeatures = inputMatrix.GetLength(1) - 1; double[] coefficients; - alglib.linearmodel lm; - alglib.lrreport ar; + alglib_3_17.alglib.linearmodel lm; + alglib_3_17.alglib.lrreport ar; int retVal; - alglib.lrbuild(inputMatrix, inputMatrix.GetLength(0), nFeatures, out retVal, out lm, out ar); + alglib_3_17.alglib.lrbuild(inputMatrix, inputMatrix.GetLength(0), nFeatures, out retVal, out lm, out ar); if (retVal != 1) throw new ArgumentException("Error in calculation of linear regression solution"); - alglib.lrunpack(lm, out coefficients, out nFeatures); + alglib_3_17.alglib.lrunpack(lm, out coefficients, out nFeatures); var coeffs = pd.AllowedInputVariables.Zip(coefficients, (s, d) => new {s, d}).ToDictionary(x => x.s, x => x.d); var res = new PreconstructedLinearModel(coeffs, coefficients[nFeatures], pd.TargetVariable); return res; @@ -106,27 +107,27 @@ private static PreconstructedLinearModel AlternativeCalculation(IRegressionProbl var aTa = new double[n + 1, n + 1]; var aTyVector = new double[n + 1]; int info; - alglib.densesolverreport report; + alglib_3_17.alglib.densesolverreport report; double[] coefficients; //Perform linear regression - alglib.rmatrixgemm(n + 1, 1, m, 1, inTr, 0, 0, 0, y, 0, 0, 0, 0, ref aTy, 0, 0); //aTy = inTr * y; - alglib.rmatrixgemm(n + 1, n + 1, m, 1, inTr, 0, 0, 0, inTr, 0, 0, 1, 0, ref aTa, 0, 0); //aTa = inTr * t(inTr) +aTa // - alglib.spdmatrixcholesky(ref aTa, n + 1, true); + alglib_3_17.alglib.rmatrixgemm(n + 1, 1, m, 1, inTr, 0, 0, 0, y, 0, 0, 0, 0, ref aTy, 0, 0); //aTy = inTr * y; + alglib_3_17.alglib.rmatrixgemm(n + 1, n + 1, m, 1, inTr, 0, 0, 0, inTr, 0, 0, 1, 0, ref aTa, 0, 0); //aTa = inTr * t(inTr) +aTa // + alglib_3_17.alglib.spdmatrixcholesky(ref aTa, n + 1, true); for (var i = 0; i < n + 1; i++) aTyVector[i] = aTy[i, 0]; - alglib.spdmatrixcholeskysolve(aTa, n + 1, true, aTyVector, out info, out report, out coefficients); + alglib_3_17.alglib.spdmatrixcholeskysolve(aTa, n + 1, true, aTyVector, out info, out report, out coefficients); //if Cholesky calculation fails fall back to classic linear regresseion if (info != 1) { - alglib.linearmodel lm; - alglib.lrreport ar; + alglib_3_17.alglib.linearmodel lm; + alglib_3_17.alglib.lrreport ar; int retVal; var inputMatrix = pd.Dataset.ToArray(pd.AllowedInputVariables.Concat(new[] { pd.TargetVariable }), pd.AllIndices); - alglib.lrbuild(inputMatrix, inputMatrix.GetLength(0), n, out retVal, out lm, out ar); + alglib_3_17.alglib.lrbuild(inputMatrix, inputMatrix.GetLength(0), n, out retVal, out lm, out ar); if (retVal != 1) throw new ArgumentException("Error in calculation of linear regression solution"); - alglib.lrunpack(lm, out coefficients, out n); + alglib_3_17.alglib.lrunpack(lm, out coefficients, out n); } var coeffs = Enumerable.Range(0, n).ToDictionary(i => variables[i], i => coefficients[i]); diff --git a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafTypes/Leaf.cs b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafTypes/Leaf.cs index 85690ef78c..b836238279 100644 --- a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafTypes/Leaf.cs +++ b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/LeafTypes/Leaf.cs @@ -18,6 +18,7 @@ * along with HeuristicLab. If not, see . */ #endregion +extern alias alglib_3_17; using System; using System.Collections.Generic; @@ -137,9 +138,9 @@ private static Dictionary DoRegression(IRegressionProblemData pd var aTy = new double[n, 1]; - alglib.rmatrixgemm(n, 1, m, 1, inTr, 0, 0, 0, y, 0, 0, 0, 0, ref aTy, 0, 0); //aTy = inTr * y; + alglib_3_17.alglib.rmatrixgemm(n, 1, m, 1, inTr, 0, 0, 0, y, 0, 0, 0, 0, ref aTy, 0, 0); //aTy = inTr * y; var aTa = new double[n, n]; - alglib.rmatrixgemm(n, n, m, 1, inTr, 0, 0, 0, inTr, 0, 0, 1, 0, ref aTa, 0, 0); //aTa = inTr * t(inTr) +aTa // + alglib_3_17.alglib.rmatrixgemm(n, n, m, 1, inTr, 0, 0, 0, inTr, 0, 0, 1, 0, ref aTa, 0, 0); //aTa = inTr * t(inTr) +aTa // var aTaDecomp = new double[n, n]; bool success; @@ -150,10 +151,10 @@ private static Dictionary DoRegression(IRegressionProblemData pd try { //solve "aTa * coefficients = aTy" for coefficients; Array.Copy(aTa, 0, aTaDecomp, 0, aTa.Length); - alglib.spdmatrixcholesky(ref aTaDecomp, n, true); + alglib_3_17.alglib.spdmatrixcholesky(ref aTaDecomp, n, true); int info; - alglib.densesolverreport report; - alglib.spdmatrixcholeskysolve(aTaDecomp, n, true, ydata, out info, out report, out coefficients); + alglib_3_17.alglib.densesolverreport report; + alglib_3_17.alglib.spdmatrixcholeskysolve(aTaDecomp, n, true, ydata, out info, out report, out coefficients); if (info != 1) throw new Exception(); success = true; diff --git a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/Utilities/PrincipleComponentTransformation.cs b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/Utilities/PrincipleComponentTransformation.cs index 23ec329ca8..33231461f8 100644 --- a/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/Utilities/PrincipleComponentTransformation.cs +++ b/HeuristicLab.Algorithms.DataAnalysis.DecisionTrees/3.4/Utilities/PrincipleComponentTransformation.cs @@ -18,6 +18,7 @@ * along with HeuristicLab. If not, see . */ #endregion +extern alias alglib_3_17; using System.Collections; using System.Collections.Generic; @@ -190,7 +191,7 @@ private void BuildPca(IDataset dataset, IEnumerable rows, IEnumerable - - + - Debug - AnyCPU - {4C7F6D8A-B279-4898-ACD6-7BE39111DEF9} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.DataAnalysis.Glmnet - HeuristicLab.Algorithms.DataAnalysis.Glmnet-3.4 - v4.7.2 - 512 - true - + false - AnyCPU - true - full - false ..\..\bin\ - DEBUG;TRACE - prompt - 4 true - AnyCPU - pdbonly - true ..\..\bin\ - TRACE - prompt - 4 true @@ -43,57 +21,23 @@ + + false + - true ..\..\bin\ - DEBUG;TRACE true - full - x64 - prompt ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - true ..\..\bin\ - DEBUG;TRACE true - full - x86 - prompt ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - - - - - - - - - - - - - - - - - Always @@ -106,101 +50,25 @@ - - - - - - - - {2e782078-fa81-4b70-b56f-74ce38dac6c8} - HeuristicLab.Algorithms.DataAnalysis-3.4 - - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - - - {06D4A186-9319-48A0-BADE-A2058D462EEA} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - - - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2} - HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4 - - - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00} - HeuristicLab.Problems.DataAnalysis.Symbolic-3.4 - - - {df87c13e-a889-46ff-8153-66dcaa8c5674} - HeuristicLab.Problems.DataAnalysis-3.4 - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - + + + + + + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/CrossValidationView.cs b/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/CrossValidationView.cs index b9b298df91..cdfeebc898 100644 --- a/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/CrossValidationView.cs +++ b/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/CrossValidationView.cs @@ -189,7 +189,7 @@ private void Content_ExceptionOccurred(object sender, EventArgs e) { if (InvokeRequired) Invoke(new EventHandler>(Content_ExceptionOccurred), sender, e); else - ErrorHandling.ShowErrorDialog(this, e.Value); + ErrorHandlingUI.ShowErrorDialog(this, e.Value); } private void Content_StoreAlgorithmInEachRunChanged(object sender, EventArgs e) { if (InvokeRequired) @@ -226,7 +226,7 @@ private async void startButton_Click(object sender, EventArgs e) { try { await Content.StartAsync(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } private void pauseButton_Click(object sender, EventArgs e) { @@ -250,7 +250,7 @@ private void newAlgorithmButton_Click(object sender, EventArgs e) { try { Content.Algorithm = (IAlgorithm)algorithmTypeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } @@ -269,7 +269,7 @@ private void openAlgorithmButton_Click(object sender, EventArgs e) { else Content.Algorithm = algorithm; } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } finally { Invoke(new Action(delegate () { algorithmTabControl.Enabled = true; @@ -307,7 +307,7 @@ private void openProblemButton_Click(object sender, EventArgs e) { else Content.Problem = problem; } catch (Exception ex) { - Invoke(new Action(() => ErrorHandling.ShowErrorDialog(this, ex))); + Invoke(new Action(() => ErrorHandlingUI.ShowErrorDialog(this, ex))); } finally { Invoke(new Action(delegate () { algorithmProblemViewHost.Enabled = true; diff --git a/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj b/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj index bfcb0a834d..d8e3a7c82f 100644 --- a/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj +++ b/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj @@ -50,7 +50,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -67,7 +66,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -84,7 +82,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -101,7 +98,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -109,13 +105,35 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + ..\..\bin\LibSVM-3.12.dll False + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -231,6 +249,7 @@ + @@ -304,6 +323,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/packages.config b/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj b/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj index 151cbd7a59..8c28ea806b 100644 --- a/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj +++ b/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj @@ -1,27 +1,11 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {2E782078-FA81-4B70-B56F-74CE38DAC6C8} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.DataAnalysis - HeuristicLab.Algorithms.DataAnalysis-3.4 true HeuristicLab.snk - - - 3.5 - - - - - v4.7.2 - - + publish\ true Disk @@ -37,434 +21,61 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - False - ..\..\bin\ALGLIB-3.17.0.dll - global - False - - - False - ..\..\bin\ALGLIB-3.7.0.dll - alglib_3_7 - False - - - ..\..\bin\LibSVM-3.12.dll - False - - - + 3.5 - - - - - - - - - Code - - - - - - - - - - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - - Code - - - - - - - - - Code - - - Code - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - Code - - - Code - - - - - - - - - - - - - - - - - - - {1256B945-EEA9-4BE4-9880-76B5B113F089} - HeuristicLab.Algorithms.GradientDescent-3.3 - False - - - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58} - HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3 - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - False - - - {06D4A186-9319-48A0-BADE-A2058D462EEA} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {05BAE4E1-A9FA-4644-AA77-42558720159E} - HeuristicLab.Problems.DataAnalysis.Symbolic.Classification-3.4 - False - - - {5AC82412-911B-4FA2-A013-EDC5E3F3FCC2} - HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4 - False - - - {07486E68-1517-4B9D-A58D-A38E99AE71AB} - HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4 - - - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00} - HeuristicLab.Problems.DataAnalysis.Symbolic-3.4 - False - - - {DF87C13E-A889-46FF-8153-66DCAA8C5674} - HeuristicLab.Problems.DataAnalysis-3.4 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -484,33 +95,19 @@ - - False - ..\..\bin\HEAL.Attic.dll - False + + + + + ..\..\bin\ALGLIB-3.17.0.dll + global + + + ..\..\bin\ALGLIB-3.7.0.dll + alglib_3_7 + + + ..\..\bin\LibSVM-3.12.dll - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.EvolutionStrategy/3.3/HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj b/HeuristicLab.Algorithms.EvolutionStrategy/3.3/HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj index 577b2936e1..0399958003 100644 --- a/HeuristicLab.Algorithms.EvolutionStrategy/3.3/HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj +++ b/HeuristicLab.Algorithms.EvolutionStrategy/3.3/HeuristicLab.Algorithms.EvolutionStrategy-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {E0B45023-CB84-48A1-A1B7-8295B64B7BAD} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.EvolutionStrategy - HeuristicLab.Algorithms.EvolutionStrategy-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,161 +20,34 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + + + @@ -209,33 +67,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj b/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj index e797c37db9..4a55ad2ede 100644 --- a/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj +++ b/HeuristicLab.Algorithms.GeneticAlgorithm/3.3/HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj @@ -1,27 +1,11 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {A51DA44F-CB35-4F6F-99F5-2A2E904AB93B} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.GeneticAlgorithm - HeuristicLab.Algorithms.GeneticAlgorithm-3.3 true HeuristicLab.snk - - - 3.5 - - - - - v4.7.2 - - + publish\ true Disk @@ -37,162 +21,51 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - - - - - - + + + + + + + + + + + + + @@ -212,33 +85,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.GradientDescent/3.3/HeuristicLab.Algorithms.GradientDescent-3.3.csproj b/HeuristicLab.Algorithms.GradientDescent/3.3/HeuristicLab.Algorithms.GradientDescent-3.3.csproj index 27c931623a..be6a17baec 100644 --- a/HeuristicLab.Algorithms.GradientDescent/3.3/HeuristicLab.Algorithms.GradientDescent-3.3.csproj +++ b/HeuristicLab.Algorithms.GradientDescent/3.3/HeuristicLab.Algorithms.GradientDescent-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {1256B945-EEA9-4BE4-9880-76B5B113F089} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.GradientDescent - HeuristicLab.Algorithms.GradientDescent-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,192 +16,67 @@ HeuristicLab.snk - true ..\..\bin\ - DEBUG;TRACE - full - x86 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x86 bin\Release\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - true ..\..\bin\ - DEBUG;TRACE - full - x64 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x64 bin\Release\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false + + + False ..\..\bin\ALGLIB-3.17.0.dll False - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + + - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.LocalSearch/3.3/HeuristicLab.Algorithms.LocalSearch-3.3.csproj b/HeuristicLab.Algorithms.LocalSearch/3.3/HeuristicLab.Algorithms.LocalSearch-3.3.csproj index cb073a693f..3d5cf75fdc 100644 --- a/HeuristicLab.Algorithms.LocalSearch/3.3/HeuristicLab.Algorithms.LocalSearch-3.3.csproj +++ b/HeuristicLab.Algorithms.LocalSearch/3.3/HeuristicLab.Algorithms.LocalSearch-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.LocalSearch - HeuristicLab.Algorithms.LocalSearch-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,161 +20,34 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + + + @@ -209,33 +67,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.MOCMAEvolutionStrategy/3.3/HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3.csproj b/HeuristicLab.Algorithms.MOCMAEvolutionStrategy/3.3/HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3.csproj index 273b594bdb..c6016f4194 100644 --- a/HeuristicLab.Algorithms.MOCMAEvolutionStrategy/3.3/HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3.csproj +++ b/HeuristicLab.Algorithms.MOCMAEvolutionStrategy/3.3/HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3.csproj @@ -1,201 +1,38 @@ - - - + - Debug - AnyCPU - {0E2E224F-E9B2-41F3-B510-09183EEBA2AF} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.MOCMAEvolutionStrategy - HeuristicLab.Algorithms.MOCMAEvolutionStrategy-3.3 - v4.7.2 - 512 - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - 7.3 - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - 7.3 - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - 7.3 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - 7.3 - prompt - MinimumRecommendedRules.ruleset + + false + + + False ..\..\bin\ALGLIB-3.17.0.dll False - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540e29e-4793-49e7-8ee2-fea7f61c3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {D53E8E48-CFAA-4F57-AC35-63BEF4476159} - HeuristicLab.Problems.TestFunctions.MultiObjective-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + + + + - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.MultiObjectiveLocalSearch/3.3/HeuristicLab.Algorithms.MultiObjectiveLocalSearch.csproj b/HeuristicLab.Algorithms.MultiObjectiveLocalSearch/3.3/HeuristicLab.Algorithms.MultiObjectiveLocalSearch.csproj index 8355e5daaa..f6663989dd 100644 --- a/HeuristicLab.Algorithms.MultiObjectiveLocalSearch/3.3/HeuristicLab.Algorithms.MultiObjectiveLocalSearch.csproj +++ b/HeuristicLab.Algorithms.MultiObjectiveLocalSearch/3.3/HeuristicLab.Algorithms.MultiObjectiveLocalSearch.csproj @@ -1,35 +1,13 @@ - - - + - Debug - AnyCPU - {4CCDD23A-9FA3-4B36-9469-87D67E99225F} + netstandard2.0 Library - Properties - HeuristicLab.Algorithms.MultiObjectiveLocalSearch HeuristicLab.Algorithms.MultiObjectiveLocalSearch-3.3 - v4.7.2 - 512 - true - - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 + + false true @@ -37,141 +15,24 @@ HeuristicLab.snk - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - 7.3 - prompt - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - 7.3 - prompt - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - 7.3 - prompt - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - 7.3 - prompt - - - - $(SolutionDir)\bin\HEAL.Attic.dll - False - - - - - - - - - - - - - + + + + + + + + + + + + + - - - + + + - - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {25087811-f74c-4128-bc86-8324271da13e} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - - - {2c36cd4f-e5f5-43a4-801a-201ea895fe17} - HeuristicLab.Selection-3.3 - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.NSGA2/3.3/HeuristicLab.Algorithms.NSGA2-3.3.csproj b/HeuristicLab.Algorithms.NSGA2/3.3/HeuristicLab.Algorithms.NSGA2-3.3.csproj index e7485e8aef..c7db6e7c63 100644 --- a/HeuristicLab.Algorithms.NSGA2/3.3/HeuristicLab.Algorithms.NSGA2-3.3.csproj +++ b/HeuristicLab.Algorithms.NSGA2/3.3/HeuristicLab.Algorithms.NSGA2-3.3.csproj @@ -1,23 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {15452B9F-A436-4139-8EE7-DA72FB8D3664} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.NSGA2 - HeuristicLab.Algorithms.NSGA2-3.3 - v4.7.2 - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -33,151 +20,29 @@ false false true - - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - - - + + + + + + + + + + + + + + 3.5 - - - - - - - - - - - - @@ -197,37 +62,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy/3.3/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3.csproj b/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy/3.3/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3.csproj index 1152839866..37d624884a 100644 --- a/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy/3.3/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3.csproj +++ b/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy/3.3/HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {1D41EAE6-CC79-41D4-858C-589C4DB5E50D} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy - HeuristicLab.Algorithms.OffspringSelectionEvolutionStrategy-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,94 +20,19 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - @@ -142,100 +52,22 @@ - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {25087811-f74c-4128-bc86-8324271da13e} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - - - {2c36cd4f-e5f5-43a4-801a-201ea895fe17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj b/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj index 03f4021a85..3064fdefbb 100644 --- a/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj +++ b/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm/3.3/HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm - HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,166 +20,34 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + + + @@ -214,33 +67,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3.csproj b/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3.csproj index 5b406296be..83f16987f4 100644 --- a/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3.csproj +++ b/HeuristicLab.Algorithms.ParameterlessPopulationPyramid/3.3/HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3.csproj @@ -1,33 +1,13 @@ - - - + - Debug - AnyCPU - {9319C447-8183-4DBC-8145-0E3CF98084CC} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.ParameterlessPopulationPyramid - HeuristicLab.Algorithms.ParameterlessPopulationPyramid-3.3 - v4.7.2 - 512 - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 + + false true @@ -35,159 +15,23 @@ HeuristicLab.snk - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {66d249c3-a01d-42a8-82a2-919bc8ec3d83} - HeuristicLab.Encodings.BinaryVectorEncoding-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {fc627be5-0f93-47d8-bd2e-530ea2b8aa5f} - HeuristicLab.Problems.Binary-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj b/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj index 6f9a8ad7b6..aabbea8146 100644 --- a/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj +++ b/HeuristicLab.Algorithms.ParticleSwarmOptimization/3.3/HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3.csproj @@ -1,23 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {2C429157-9C34-4DD3-9D5F-B444B751E39A} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.ParticleSwarmOptimization - HeuristicLab.Algorithms.ParticleSwarmOptimization-3.3 - v4.7.2 - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -33,101 +20,19 @@ false false true - - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true + false $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false - - + 3.5 - - + 3.5 - - 3.5 - - - - - - - - - - - - - - - - - - - - - @@ -147,98 +52,21 @@ - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - + + + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.RAPGA/3.3/HeuristicLab.Algorithms.RAPGA-3.3.csproj b/HeuristicLab.Algorithms.RAPGA/3.3/HeuristicLab.Algorithms.RAPGA-3.3.csproj index 2c0e2a3b02..1c5f0bd985 100644 --- a/HeuristicLab.Algorithms.RAPGA/3.3/HeuristicLab.Algorithms.RAPGA-3.3.csproj +++ b/HeuristicLab.Algorithms.RAPGA/3.3/HeuristicLab.Algorithms.RAPGA-3.3.csproj @@ -1,207 +1,52 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {B03C4E41-1D01-4C60-B0F4-DBB257D98CA8} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.RAPGA - HeuristicLab.Algorithms.RAPGA-3.3 - v4.7.2 - 512 true HeuristicLab.snk - + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - - - - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.RandomSearch/3.3/HeuristicLab.Algorithms.RandomSearch-3.3.csproj b/HeuristicLab.Algorithms.RandomSearch/3.3/HeuristicLab.Algorithms.RandomSearch-3.3.csproj index 2ee6ac40bd..28262ce1d8 100644 --- a/HeuristicLab.Algorithms.RandomSearch/3.3/HeuristicLab.Algorithms.RandomSearch-3.3.csproj +++ b/HeuristicLab.Algorithms.RandomSearch/3.3/HeuristicLab.Algorithms.RandomSearch-3.3.csproj @@ -1,69 +1,13 @@ - - - + - Debug - AnyCPU - {4A15DC1A-51EE-4CB7-AC05-F5AFDDECE1B1} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.RandomSearch - HeuristicLab.Algorithms.RandomSearch-3.3 - v4.7.2 - 512 - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset + + false true @@ -72,97 +16,20 @@ HeuristicLab.snk - - - - - - - - - - - + - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - + + + + + + + + + + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.ScatterSearch/3.3/HeuristicLab.Algorithms.ScatterSearch-3.3.csproj b/HeuristicLab.Algorithms.ScatterSearch/3.3/HeuristicLab.Algorithms.ScatterSearch-3.3.csproj index f5cb170607..a5ed57d232 100644 --- a/HeuristicLab.Algorithms.ScatterSearch/3.3/HeuristicLab.Algorithms.ScatterSearch-3.3.csproj +++ b/HeuristicLab.Algorithms.ScatterSearch/3.3/HeuristicLab.Algorithms.ScatterSearch-3.3.csproj @@ -1,79 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {5FEE5DB4-7FD9-4CBD-BEC2-3FEE17B31A94} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.ScatterSearch - HeuristicLab.Algorithms.ScatterSearch-3.3 - v4.7.2 - 512 - - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false true @@ -82,123 +16,23 @@ HeuristicLab.snk - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj b/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj index 4cae2eff5e..6ea9d97b83 100644 --- a/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj +++ b/HeuristicLab.Algorithms.SimulatedAnnealing/3.3/HeuristicLab.Algorithms.SimulatedAnnealing-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {96E5ED5B-187D-4012-9CDA-D85CDAD38342} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.SimulatedAnnealing - HeuristicLab.Algorithms.SimulatedAnnealing-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,156 +20,33 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - + + + + + + + + + + + + @@ -204,33 +66,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.TabuSearch/3.3/HeuristicLab.Algorithms.TabuSearch-3.3.csproj b/HeuristicLab.Algorithms.TabuSearch/3.3/HeuristicLab.Algorithms.TabuSearch-3.3.csproj index 612433d0b2..4d7975226b 100644 --- a/HeuristicLab.Algorithms.TabuSearch/3.3/HeuristicLab.Algorithms.TabuSearch-3.3.csproj +++ b/HeuristicLab.Algorithms.TabuSearch/3.3/HeuristicLab.Algorithms.TabuSearch-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {D58A232D-04BA-4186-B73E-0EC86FD31ABE} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.TabuSearch - HeuristicLab.Algorithms.TabuSearch-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,169 +20,34 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - Code - - - - Code - - - - Code - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + + + @@ -217,33 +67,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Algorithms.VariableNeighborhoodSearch/3.3/HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj b/HeuristicLab.Algorithms.VariableNeighborhoodSearch/3.3/HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj index 78344e98e0..ef01b9fbab 100644 --- a/HeuristicLab.Algorithms.VariableNeighborhoodSearch/3.3/HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj +++ b/HeuristicLab.Algorithms.VariableNeighborhoodSearch/3.3/HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {E4CFB0C3-0589-4893-B38E-8BEDF885C765} + netstandard2.0 Library - Properties HeuristicLab.Algorithms.VariableNeighborhoodSearch - HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,160 +20,34 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + + + @@ -208,33 +67,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs b/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs index 759aea641e..e74153af54 100644 --- a/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs +++ b/HeuristicLab.Analysis.Statistics.Views/3.3/ChartAnalysisView.cs @@ -182,7 +182,7 @@ private void addLineToChart_Click(object sender, EventArgs e) { task.ContinueWith((t) => { Progress.Hide(this); - ErrorHandling.ShowErrorDialog("An error occured while adding lines to charts. ", t.Exception); + ErrorHandlingUI.ShowErrorDialog("An error occured while adding lines to charts. ", t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); task.ContinueWith((t) => { @@ -279,7 +279,7 @@ private void RebuildDataTableAsync() { task.ContinueWith((t) => { Progress.Hide(this); - ErrorHandling.ShowErrorDialog("An error occured while calculating values. ", t.Exception); + ErrorHandlingUI.ShowErrorDialog("An error occured while calculating values. ", t.Exception); sem.Release(); }, TaskContinuationOptions.OnlyOnFaulted); diff --git a/HeuristicLab.Analysis.Statistics.Views/3.3/HeuristicLab.Analysis.Statistics.Views-3.3.csproj b/HeuristicLab.Analysis.Statistics.Views/3.3/HeuristicLab.Analysis.Statistics.Views-3.3.csproj index e79f291b8b..2ea25787a2 100644 --- a/HeuristicLab.Analysis.Statistics.Views/3.3/HeuristicLab.Analysis.Statistics.Views-3.3.csproj +++ b/HeuristicLab.Analysis.Statistics.Views/3.3/HeuristicLab.Analysis.Statistics.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x86 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x64 prompt - AllRules.ruleset false @@ -100,7 +95,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -115,6 +109,9 @@ 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + @@ -130,6 +127,7 @@ + @@ -234,6 +232,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs b/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs index b845515d23..2b1561ec5d 100644 --- a/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs +++ b/HeuristicLab.Analysis.Statistics.Views/3.3/SampleSizeInfluenceView.cs @@ -343,7 +343,7 @@ private List ParseGroupSizesFromText(string groupsText, bool verbose = true } catch (Exception ex) { if (verbose) { - ErrorHandling.ShowErrorDialog("Can't parse group sizes. Please only use numbers seperated by a " + delimiter + ". ", ex); + ErrorHandlingUI.ShowErrorDialog("Can't parse group sizes. Please only use numbers seperated by a " + delimiter + ". ", ex); } } } diff --git a/HeuristicLab.Analysis.Statistics.Views/3.3/packages.config b/HeuristicLab.Analysis.Statistics.Views/3.3/packages.config new file mode 100644 index 0000000000..42e3ab5aa9 --- /dev/null +++ b/HeuristicLab.Analysis.Statistics.Views/3.3/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HeuristicLab.Analysis.Views/3.3/HeuristicLab.Analysis.Views-3.3.csproj b/HeuristicLab.Analysis.Views/3.3/HeuristicLab.Analysis.Views-3.3.csproj index 74ccf2d97a..e92a2bdfb6 100644 --- a/HeuristicLab.Analysis.Views/3.3/HeuristicLab.Analysis.Views-3.3.csproj +++ b/HeuristicLab.Analysis.Views/3.3/HeuristicLab.Analysis.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x86 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x64 prompt - AllRules.ruleset false @@ -100,7 +95,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -109,11 +103,33 @@ ..\..\bin\ALGLIB-3.17.0.dll False + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -174,6 +190,7 @@ ScatterPlotHistoryView.cs + UserControl @@ -288,6 +305,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Analysis.Views/3.3/packages.config b/HeuristicLab.Analysis.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Analysis.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Analysis/3.3/HeuristicLab.Analysis-3.3.csproj b/HeuristicLab.Analysis/3.3/HeuristicLab.Analysis-3.3.csproj index 8c9f381325..3a12281f1f 100644 --- a/HeuristicLab.Analysis/3.3/HeuristicLab.Analysis-3.3.csproj +++ b/HeuristicLab.Analysis/3.3/HeuristicLab.Analysis-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {887425B4-4348-49ED-A457-B7D2C26DDBF9} + netstandard2.0 Library - Properties HeuristicLab.Analysis - HeuristicLab.Analysis-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,214 +20,52 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - False - ..\..\bin\ALGLIB-3.17.0.dll - False - - - + 3.5 - - + 3.5 - - 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + + + + + + @@ -262,33 +85,12 @@ - - False - ..\..\bin\HEAL.Attic.dll - False + + + + + + ..\..\bin\ALGLIB-3.17.0.dll - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Clients.Access.Administration/3.3/HeuristicLab.Clients.Access.Administration-3.3.csproj b/HeuristicLab.Clients.Access.Administration/3.3/HeuristicLab.Clients.Access.Administration-3.3.csproj index 472fe74f4b..06bd9dce83 100644 --- a/HeuristicLab.Clients.Access.Administration/3.3/HeuristicLab.Clients.Access.Administration-3.3.csproj +++ b/HeuristicLab.Clients.Access.Administration/3.3/HeuristicLab.Clients.Access.Administration-3.3.csproj @@ -38,7 +38,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -50,7 +49,6 @@ 4 - AllRules.ruleset false @@ -60,7 +58,6 @@ full x86 prompt - AllRules.ruleset false @@ -72,7 +69,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -82,7 +78,6 @@ full x64 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -104,8 +98,30 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -207,6 +223,7 @@ UserView.cs + @@ -293,19 +310,16 @@ HeuristicLab.Persistence-3.3 True + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 True - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) diff --git a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.cs b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.cs index 2287f17f47..311f86309b 100644 --- a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.cs +++ b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleListView.cs @@ -27,7 +27,7 @@ public RefreshableRoleListView() { } protected override void RefreshData() { - Content.RefreshRolesAsync(PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.RefreshRolesAsync(PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } protected override void Content_Refreshing(object sender, EventArgs e) { @@ -66,12 +66,12 @@ protected override void DeregisterContentEvents() { void Roles_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs> e) { foreach (var u in e.Items) { - Content.DeleteRoleAsync(u.Value, PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.DeleteRoleAsync(u.Value, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } private void storeButton_Click(object sender, EventArgs e) { - Content.StoreRolesAsync(PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.StoreRolesAsync(PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } } diff --git a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.cs b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.cs index fe800532bb..bc99c503dd 100644 --- a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.cs +++ b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableRoleSelectionListView.cs @@ -49,7 +49,7 @@ protected override void RefreshData() { Content.RefreshRoles(); } CurrentRoles = AccessAdministrationClient.CallAccessService>(s => s.GetUserRoles(CurrentUser)); - }), PluginInfrastructure.ErrorHandling.ShowErrorDialog); + }), PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } @@ -108,7 +108,7 @@ private void storeButton_Click(object sender, EventArgs e) { foreach (var role in deletedRoles) { AccessAdministrationClient.CallAccessService(s => s.RemoveUserFromRole(role, CurrentUser)); } - }), PluginInfrastructure.ErrorHandling.ShowErrorDialog); + }), PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } } diff --git a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.cs b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.cs index 302fb4b959..effaab342a 100644 --- a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.cs +++ b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserGroupListView.cs @@ -27,7 +27,7 @@ public RefreshableUserGroupListView() { } protected override void RefreshData() { - Content.RefreshUserGroupsAsync(PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.RefreshUserGroupsAsync(PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } protected override void Content_Refreshing(object sender, EventArgs e) { @@ -59,7 +59,7 @@ protected override void Content_Refreshed(object sender, EventArgs e) { void Groups_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs> e) { foreach (var u in e.Items) { - Content.DeleteUserGroupAsync(u.Value, PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.DeleteUserGroupAsync(u.Value, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } @@ -71,7 +71,7 @@ protected override void DeregisterContentEvents() { } private void storeButton_Click(object sender, EventArgs e) { - Content.StoreUserGroupsAsync(PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.StoreUserGroupsAsync(PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } } diff --git a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.cs b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.cs index 9f2fe0f481..3f11bcb0f6 100644 --- a/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.cs +++ b/HeuristicLab.Clients.Access.Administration/3.3/Views/RefreshableUserListView.cs @@ -27,7 +27,7 @@ public RefreshableUserListView() { } protected override void RefreshData() { - Content.RefreshUsersAsync(PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.RefreshUsersAsync(PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } protected override void Content_Refreshing(object sender, EventArgs e) { @@ -67,13 +67,13 @@ protected override void DeregisterContentEvents() { void Users_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs> e) { foreach (var u in e.Items) { if (u.Value.Id != Guid.Empty) { - Content.DeleteUserAsync(u.Value, PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.DeleteUserAsync(u.Value, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } } private void storeButton_Click(object sender, EventArgs e) { - Content.StoreUsersAsync(PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.StoreUsersAsync(PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } } diff --git a/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs b/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs index 33b7f513ba..4d9c1e7198 100644 --- a/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs +++ b/HeuristicLab.Clients.Access.Administration/3.3/Views/UserGroupView.cs @@ -96,8 +96,8 @@ private void storeButton_Click(object sender, EventArgs e) { } }); - AccessAdministrationClient.Instance.ExecuteActionAsync(storeAction, PluginInfrastructure.ErrorHandling.ShowErrorDialog); - AccessAdministrationClient.Instance.ExecuteActionAsync(deleteAction, PluginInfrastructure.ErrorHandling.ShowErrorDialog); + AccessAdministrationClient.Instance.ExecuteActionAsync(storeAction, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); + AccessAdministrationClient.Instance.ExecuteActionAsync(deleteAction, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } private void Content_Refreshing(object sender, EventArgs e) { diff --git a/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs b/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs index 16d65d1651..8c13bb6b5e 100644 --- a/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs +++ b/HeuristicLab.Clients.Access.Administration/3.3/Views/UserView.cs @@ -97,7 +97,7 @@ private void resetPasswordButton_Click(object sender, System.EventArgs e) { ShowPassword(result); }); - AccessAdministrationClient.Instance.ExecuteActionAsync(a, PluginInfrastructure.ErrorHandling.ShowErrorDialog); ; + AccessAdministrationClient.Instance.ExecuteActionAsync(a, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); ; } private void ShowPassword(string result) { diff --git a/HeuristicLab.Clients.Access.Administration/3.3/packages.config b/HeuristicLab.Clients.Access.Administration/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Access.Administration/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.cs b/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.cs index bf768bea71..45f4767a0f 100644 --- a/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.cs +++ b/HeuristicLab.Clients.Access.Views/3.3/ClientViews/ClientRegistrationDialog.cs @@ -102,7 +102,7 @@ private void HandleRegistrationError(Task task) { btnRegisterClient.Enabled = true; btnCollectInformation.Enabled = true; btnCancel.Enabled = true; - PluginInfrastructure.ErrorHandling.ShowErrorDialog(task.Exception); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog(task.Exception); } } } diff --git a/HeuristicLab.Clients.Access.Views/3.3/HeuristicLab.Clients.Access.Views-3.3.csproj b/HeuristicLab.Clients.Access.Views/3.3/HeuristicLab.Clients.Access.Views-3.3.csproj index c80e70b1e0..74d5feace7 100644 --- a/HeuristicLab.Clients.Access.Views/3.3/HeuristicLab.Clients.Access.Views-3.3.csproj +++ b/HeuristicLab.Clients.Access.Views/3.3/HeuristicLab.Clients.Access.Views-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,9 +82,31 @@ true + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -186,6 +202,7 @@ + @@ -245,19 +262,16 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 False - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) diff --git a/HeuristicLab.Clients.Access.Views/3.3/UserViews/ChangePasswordDialog.cs b/HeuristicLab.Clients.Access.Views/3.3/UserViews/ChangePasswordDialog.cs index 7e8612e01c..307e276564 100644 --- a/HeuristicLab.Clients.Access.Views/3.3/UserViews/ChangePasswordDialog.cs +++ b/HeuristicLab.Clients.Access.Views/3.3/UserViews/ChangePasswordDialog.cs @@ -104,7 +104,7 @@ public void ExecuteActionAsync(Action action) { }); call.BeginInvoke(delegate(IAsyncResult result) { Exception ex = call.EndInvoke(result); - if (ex != null) PluginInfrastructure.ErrorHandling.ShowErrorDialog(ex); + if (ex != null) PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog(ex); }, null); } diff --git a/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.cs b/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.cs index 1171991fd0..6068320a47 100644 --- a/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.cs +++ b/HeuristicLab.Clients.Access.Views/3.3/UserViews/LightweightUserGroupSelectionView.cs @@ -46,7 +46,7 @@ private void LightweightUserGroupSelectionView_Load(object sender, EventArgs e) if (!this.DesignMode && AccessClient.Instance.UsersAndGroups == null) { AccessClient.Instance.Refreshing += new EventHandler(Instance_Refreshing); AccessClient.Instance.Refreshed += new EventHandler(Instance_Refreshed); - AccessClient.Instance.RefreshAsync(new Action((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex))); + AccessClient.Instance.RefreshAsync(new Action((Exception ex) => ErrorHandlingUI.ShowErrorDialog(this, "Refresh failed.", ex))); AccessClient.Instance.Refreshing -= new EventHandler(Instance_Refreshing); AccessClient.Instance.Refreshed -= new EventHandler(Instance_Refreshed); } diff --git a/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.cs b/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.cs index 98d176cce5..80cabc8045 100644 --- a/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.cs +++ b/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientInformationView.cs @@ -38,7 +38,7 @@ void lightweightUserInformationView_Changed(object sender, EventArgs e) { } protected override void RefreshData() { - Content.ExecuteActionAsync(RefreshUserData, PluginInfrastructure.ErrorHandling.ShowErrorDialog); + Content.ExecuteActionAsync(RefreshUserData, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } protected override void Content_Refreshing(object sender, EventArgs e) { @@ -70,7 +70,7 @@ protected override void Content_Refreshed(object sender, EventArgs e) { private void storeButton_Click(object sender, EventArgs e) { AccessClient.Instance.ExecuteActionAsync(new Action(delegate { AccessClient.CallAccessService(x => x.UpdateLightweightUser(UserInformation.Instance.User)); - }), HeuristicLab.PluginInfrastructure.ErrorHandling.ShowErrorDialog); + }), HeuristicLab.PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } } } diff --git a/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.cs b/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.cs index a913466115..de1d3b32dd 100644 --- a/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.cs +++ b/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightAccessClientView.cs @@ -69,7 +69,7 @@ protected override void RefreshData() { Content.Refresh(); }); - Content.ExecuteActionAsync(completeRefreshAction, new Action((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex))); + Content.ExecuteActionAsync(completeRefreshAction, new Action((Exception ex) => ErrorHandlingUI.ShowErrorDialog(this, "Refresh failed.", ex))); } protected override void Content_Refreshing(object sender, EventArgs e) { diff --git a/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.cs b/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.cs index 9e0c7556a0..2ec5d5b6b4 100644 --- a/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.cs +++ b/HeuristicLab.Clients.Access.Views/3.3/UserViews/RefreshableLightweightUserInformationView.cs @@ -99,7 +99,7 @@ private void RefreshUserData() { } private void RefreshData() { - ExecuteActionAsync(RefreshUserData, PluginInfrastructure.ErrorHandling.ShowErrorDialog); + ExecuteActionAsync(RefreshUserData, PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog); } public void ManualRefresh() { diff --git a/HeuristicLab.Clients.Access.Views/3.3/packages.config b/HeuristicLab.Clients.Access.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Access.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Access/3.3/HeuristicLab.Clients.Access-3.3.csproj b/HeuristicLab.Clients.Access/3.3/HeuristicLab.Clients.Access-3.3.csproj index cb061a82c7..4478cecb4f 100644 --- a/HeuristicLab.Clients.Access/3.3/HeuristicLab.Clients.Access-3.3.csproj +++ b/HeuristicLab.Clients.Access/3.3/HeuristicLab.Clients.Access-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,10 +82,32 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -137,6 +153,7 @@ Designer + @@ -197,13 +214,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) diff --git a/HeuristicLab.Clients.Access/3.3/packages.config b/HeuristicLab.Clients.Access/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Access/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Common/3.3/HeuristicLab.Clients.Common-3.3.csproj b/HeuristicLab.Clients.Common/3.3/HeuristicLab.Clients.Common-3.3.csproj index 057d0a4765..c689dc62fc 100644 --- a/HeuristicLab.Clients.Common/3.3/HeuristicLab.Clients.Common-3.3.csproj +++ b/HeuristicLab.Clients.Common/3.3/HeuristicLab.Clients.Common-3.3.csproj @@ -51,7 +51,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -69,7 +68,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -86,7 +84,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true @@ -102,7 +99,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -110,10 +106,32 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -140,6 +158,7 @@ + PublicSettingsSingleFileGenerator @@ -151,10 +170,13 @@ + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + - {94186A6A-5176-4402-AE83-886557B53CCA} + {94186a6a-5176-4402-ae83-886557b53cca} HeuristicLab.PluginInfrastructure-3.3 - False diff --git a/HeuristicLab.Clients.Common/3.3/SecurityExceptionUtil.cs b/HeuristicLab.Clients.Common/3.3/SecurityExceptionUtil.cs index 240d7c6550..7a4075d824 100644 --- a/HeuristicLab.Clients.Common/3.3/SecurityExceptionUtil.cs +++ b/HeuristicLab.Clients.Common/3.3/SecurityExceptionUtil.cs @@ -9,9 +9,9 @@ public static void TryAndReportSecurityExceptions(Action action, Action finallyC try { action(); } catch (MessageSecurityException ex) { - ErrorHandling.ShowErrorDialog("There is something wrong with the applied security. Are your credentials correct?", ex); + ErrorHandlingUI.ShowErrorDialog("There is something wrong with the applied security. Are your credentials correct?", ex); } catch (SecurityAccessDeniedException ex) { - ErrorHandling.ShowErrorDialog("The security authorization request failed. Are you a Hive administrator?", ex); + ErrorHandlingUI.ShowErrorDialog("The security authorization request failed. Are you a Hive administrator?", ex); } finally { if (finallyCallback != null) finallyCallback(); } @@ -21,9 +21,9 @@ public static async Task TryAsyncAndReportSecurityExceptions(Action action, Acti try { await Task.Run(action); } catch (MessageSecurityException ex) { - ErrorHandling.ShowErrorDialog("There is something wrong with the applied security. Are your credentials correct?", ex); + ErrorHandlingUI.ShowErrorDialog("There is something wrong with the applied security. Are your credentials correct?", ex); } catch (SecurityAccessDeniedException ex) { - ErrorHandling.ShowErrorDialog("The security authorization request failed. Are you a Hive administrator?", ex); + ErrorHandlingUI.ShowErrorDialog("The security authorization request failed. Are you a Hive administrator?", ex); } finally { if (finallyCallback != null) finallyCallback(); } diff --git a/HeuristicLab.Clients.Common/3.3/packages.config b/HeuristicLab.Clients.Common/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Common/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Hive.Administrator/3.3/HeuristicLab.Clients.Hive.Administrator-3.3.csproj b/HeuristicLab.Clients.Hive.Administrator/3.3/HeuristicLab.Clients.Hive.Administrator-3.3.csproj index bf7bab67f4..e6bcc79833 100644 --- a/HeuristicLab.Clients.Hive.Administrator/3.3/HeuristicLab.Clients.Hive.Administrator-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Administrator/3.3/HeuristicLab.Clients.Hive.Administrator-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -92,15 +86,37 @@ ..\..\bin\Calendar.DayView.dll False + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + ..\..\bin\HeuristicLab.DayView-1.0.dll False + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -193,6 +209,7 @@ SlaveView.cs + @@ -287,19 +304,16 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 False - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) diff --git a/HeuristicLab.Clients.Hive.Administrator/3.3/packages.config b/HeuristicLab.Clients.Hive.Administrator/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Hive.Administrator/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Hive.JobManager/3.3/HeuristicLab.Clients.Hive.JobManager-3.3.csproj b/HeuristicLab.Clients.Hive.JobManager/3.3/HeuristicLab.Clients.Hive.JobManager-3.3.csproj index a3daff52cf..0d568c99ec 100644 --- a/HeuristicLab.Clients.Hive.JobManager/3.3/HeuristicLab.Clients.Hive.JobManager-3.3.csproj +++ b/HeuristicLab.Clients.Hive.JobManager/3.3/HeuristicLab.Clients.Hive.JobManager-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,12 +82,34 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -151,6 +167,7 @@ RefreshableHiveJobView.cs + @@ -239,19 +256,16 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 False - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) diff --git a/HeuristicLab.Clients.Hive.JobManager/3.3/MenuItems/RunInHiveMenuItem.cs b/HeuristicLab.Clients.Hive.JobManager/3.3/MenuItems/RunInHiveMenuItem.cs index 142a787fa7..b6a4af248a 100644 --- a/HeuristicLab.Clients.Hive.JobManager/3.3/MenuItems/RunInHiveMenuItem.cs +++ b/HeuristicLab.Clients.Hive.JobManager/3.3/MenuItems/RunInHiveMenuItem.cs @@ -118,7 +118,7 @@ private void progress_ProgressStateChanged(object sender, EventArgs e) { private void HandleEx(Exception ex) { Progress.Hide(content); progress.ProgressStateChanged -= progress_ProgressStateChanged; - ErrorHandling.ShowErrorDialog("Error uploading tasks", ex); + ErrorHandlingUI.ShowErrorDialog("Error uploading tasks", ex); } } } diff --git a/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveJobManagerView.cs b/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveJobManagerView.cs index a28d9fce74..a0672af4fd 100644 --- a/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveJobManagerView.cs +++ b/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveJobManagerView.cs @@ -116,13 +116,13 @@ private void HandleServiceException(Exception ex) { string message = "A Message Security error has occured. This normally means that your user name or password is wrong. Detailed information: " + Environment.NewLine; message += HiveServiceLocator.Instance.GetEndpointInformation(); - ErrorHandling.ShowErrorDialog(this, message, ex); + ErrorHandlingUI.ShowErrorDialog(this, message, ex); } else if (ex is AnonymousUserException) { using (HiveInformationDialog dialog = new HiveInformationDialog()) { dialog.ShowDialog(this); } } else { - ErrorHandling.ShowErrorDialog(this, + ErrorHandlingUI.ShowErrorDialog(this, "Refresh failed. Detailed information: " + Environment.NewLine + HiveServiceLocator.Instance.GetEndpointInformation(), ex); } } diff --git a/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs b/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs index a9d8bd7ea2..ba3875a455 100644 --- a/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs +++ b/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobListView.cs @@ -119,7 +119,7 @@ private void DeleteHiveJobs(EventArgs e) { task.ContinueWith((t) => { Progress.Hide(this); - ErrorHandling.ShowErrorDialog("An error occured while deleting the job. ", t.Exception); + ErrorHandlingUI.ShowErrorDialog("An error occured while deleting the job. ", t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); task.ContinueWith((t) => { diff --git a/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs b/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs index 5a474f9eb2..d5146bd3cf 100644 --- a/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs +++ b/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs @@ -378,7 +378,7 @@ private void Content_ExceptionOccured(object sender, EventArgs e) { else { //don't show the error dialog when downloading tasks, the HiveClient will throw an exception and the dialog will be shown then if (sender.GetType() != typeof(ConcurrentTaskDownloader) && sender.GetType() != typeof(TaskDownloader)) { - ErrorHandling.ShowErrorDialog(this, e.Value); + ErrorHandlingUI.ShowErrorDialog(this, e.Value); } } } @@ -468,7 +468,7 @@ private void startButton_Click(object sender, EventArgs e) { Content.Log.LogException(t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); } else { - HiveClient.StartJob((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Start failed.", ex), Content, new CancellationToken()); + HiveClient.StartJob((Exception ex) => ErrorHandlingUI.ShowErrorDialog(this, "Start failed.", ex), Content, new CancellationToken()); UpdateSelectorDialog(); } } @@ -534,7 +534,7 @@ private void refreshButton_Click(object sender, EventArgs e) { try { invoker.EndInvoke(ar); } catch (Exception ex) { - ThreadPool.QueueUserWorkItem(delegate (object exception) { ErrorHandling.ShowErrorDialog(this, (Exception)exception); }, ex); + ThreadPool.QueueUserWorkItem(delegate (object exception) { ErrorHandlingUI.ShowErrorDialog(this, (Exception)exception); }, ex); } }, null); UpdateSelectorDialog(); @@ -551,7 +551,7 @@ private void updateButton_Click(object sender, EventArgs e) { try { invoker.EndInvoke(ar); } catch (Exception ex) { - ThreadPool.QueueUserWorkItem(delegate (object exception) { ErrorHandling.ShowErrorDialog(this, (Exception)exception); }, ex); + ThreadPool.QueueUserWorkItem(delegate (object exception) { ErrorHandlingUI.ShowErrorDialog(this, (Exception)exception); }, ex); } }, null); UpdateSelectorDialog(); diff --git a/HeuristicLab.Clients.Hive.JobManager/3.3/packages.config b/HeuristicLab.Clients.Hive.JobManager/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Hive.JobManager/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Hive.Slave.App/3.3/HeuristicLab.Clients.Hive.Slave.App-3.3.csproj b/HeuristicLab.Clients.Hive.Slave.App/3.3/HeuristicLab.Clients.Hive.Slave.App-3.3.csproj index 2051670eb7..057f3c476e 100644 --- a/HeuristicLab.Clients.Hive.Slave.App/3.3/HeuristicLab.Clients.Hive.Slave.App-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Slave.App/3.3/HeuristicLab.Clients.Hive.Slave.App-3.3.csproj @@ -23,7 +23,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -35,7 +34,6 @@ 4 - AllRules.ruleset false @@ -45,7 +43,6 @@ full x86 prompt - AllRules.ruleset false @@ -57,7 +54,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -67,7 +63,6 @@ full x64 prompt - AllRules.ruleset false @@ -79,7 +74,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.3.csproj b/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.3.csproj index ec18bc20ff..0085d934fd 100644 --- a/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Slave.ConsoleClient/3.3/HeuristicLab.Clients.Hive.Slave.ConsoleClient-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Clients.Hive.Slave.TrayIcon/3.3/HeuristicLab.Clients.Hive.Slave.TrayIcon-3.3.csproj b/HeuristicLab.Clients.Hive.Slave.TrayIcon/3.3/HeuristicLab.Clients.Hive.Slave.TrayIcon-3.3.csproj index 08307bc672..035a98b5e7 100644 --- a/HeuristicLab.Clients.Hive.Slave.TrayIcon/3.3/HeuristicLab.Clients.Hive.Slave.TrayIcon-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Slave.TrayIcon/3.3/HeuristicLab.Clients.Hive.Slave.TrayIcon-3.3.csproj @@ -23,7 +23,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -35,7 +34,6 @@ 4 - AllRules.ruleset false @@ -45,7 +43,6 @@ full x86 prompt - AllRules.ruleset false @@ -57,7 +54,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -67,7 +63,6 @@ full x64 prompt - AllRules.ruleset false @@ -79,7 +74,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Clients.Hive.Slave.Views/3.3/HeuristicLab.Clients.Hive.Slave.Views-3.3.csproj b/HeuristicLab.Clients.Hive.Slave.Views/3.3/HeuristicLab.Clients.Hive.Slave.Views-3.3.csproj index ab06e723d1..2bfcb97f84 100644 --- a/HeuristicLab.Clients.Hive.Slave.Views/3.3/HeuristicLab.Clients.Hive.Slave.Views-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Slave.Views/3.3/HeuristicLab.Clients.Hive.Slave.Views-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -119,6 +113,9 @@ + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + @@ -207,6 +204,7 @@ + diff --git a/HeuristicLab.Clients.Hive.Slave.Views/3.3/packages.config b/HeuristicLab.Clients.Hive.Slave.Views/3.3/packages.config new file mode 100644 index 0000000000..42e3ab5aa9 --- /dev/null +++ b/HeuristicLab.Clients.Hive.Slave.Views/3.3/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/HeuristicLab.Clients.Hive.Slave.WindowsService-3.3.csproj b/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/HeuristicLab.Clients.Hive.Slave.WindowsService-3.3.csproj index 77642824c8..6a16bd1f90 100644 --- a/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/HeuristicLab.Clients.Hive.Slave.WindowsService-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Slave.WindowsService/3.3/HeuristicLab.Clients.Hive.Slave.WindowsService-3.3.csproj @@ -37,7 +37,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -49,7 +48,6 @@ 4 - AllRules.ruleset false @@ -59,7 +57,6 @@ full x86 prompt - AllRules.ruleset false @@ -71,7 +68,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -81,7 +77,6 @@ full x64 prompt - AllRules.ruleset false @@ -93,7 +88,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Clients.Hive.Slave/3.3/HeuristicLab.Clients.Hive.Slave-3.3.csproj b/HeuristicLab.Clients.Hive.Slave/3.3/HeuristicLab.Clients.Hive.Slave-3.3.csproj index 0cfcd21d7d..670a6acaa0 100644 --- a/HeuristicLab.Clients.Hive.Slave/3.3/HeuristicLab.Clients.Hive.Slave-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Slave/3.3/HeuristicLab.Clients.Hive.Slave-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -116,6 +110,10 @@ ..\..\bin\HeuristicLab.Hive-3.3.dll False + + False + ..\..\bin\HeuristicLab.PluginInfrastructure.Extension-3.3.dll + diff --git a/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs b/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs index acbe4c052f..3757b688d2 100644 --- a/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs +++ b/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs @@ -112,12 +112,20 @@ public void CopyPluginsForJob(List requests, Guid jobId, out string conf // copy files from PluginInfrastructure (which are not declared in any plugins) string baseDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.PluginInfrastructureDll); + CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.PluginInfrastructureExtensionDll); // copy slave plugins, otherwise its not possible to register the UnhandledException handler to the appdomain CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.ClientsHiveSlaveCoreDll); CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.ClientsHiveDll); CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.HiveDll); CopyFile(baseDir, targetDir, CoreProperties.Settings.Default.ClientsCommonDll); + + // copy system dlls, necessary because of system nuget packages + // (e.g. System.Drawing.Common, System.Configuration.ConfigurationManager, ...) + // TODO: rethink to use nuget restore + var sysFiles = Directory.GetFiles(baseDir, "System.*.dll"); + foreach(var sysFile in sysFiles) + CopyFile(baseDir, targetDir, Path.GetFileName(sysFile)); } private static DirectoryInfo RecreateDirectory(String targetDir) { diff --git a/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.Designer.cs b/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.Designer.cs index 1c80e33d24..a3ca4db2b8 100644 --- a/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.Designer.cs +++ b/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace HeuristicLab.Clients.Hive.SlaveCore.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.2.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")] public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -334,5 +334,17 @@ public string ShutdownCommand { this["MachineId"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("HeuristicLab.PluginInfrastructure.Extension-3.3.dll")] + public string PluginInfrastructureExtensionDll { + get { + return ((string)(this["PluginInfrastructureExtensionDll"])); + } + set { + this["PluginInfrastructureExtensionDll"] = value; + } + } } } diff --git a/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.settings b/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.settings index 9fe2bf59ec..2e61d91ada 100644 --- a/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.settings +++ b/HeuristicLab.Clients.Hive.Slave/3.3/Properties/Settings.settings @@ -80,5 +80,8 @@ 00000000-0000-0000-0000-000000000000 + + HeuristicLab.PluginInfrastructure.Extension-3.3.dll + \ No newline at end of file diff --git a/HeuristicLab.Clients.Hive.Slave/3.3/app.config b/HeuristicLab.Clients.Hive.Slave/3.3/app.config index 40e2dccb43..f3d97469be 100644 --- a/HeuristicLab.Clients.Hive.Slave/3.3/app.config +++ b/HeuristicLab.Clients.Hive.Slave/3.3/app.config @@ -87,6 +87,9 @@ 00000000-0000-0000-0000-000000000000 + + HeuristicLab.PluginInfrastructure.Extension-3.3.dll + diff --git a/HeuristicLab.Clients.Hive.Views/3.3/HeuristicLab.Clients.Hive.Views-3.3.csproj b/HeuristicLab.Clients.Hive.Views/3.3/HeuristicLab.Clients.Hive.Views-3.3.csproj index 774a136842..4e2741505c 100644 --- a/HeuristicLab.Clients.Hive.Views/3.3/HeuristicLab.Clients.Hive.Views-3.3.csproj +++ b/HeuristicLab.Clients.Hive.Views/3.3/HeuristicLab.Clients.Hive.Views-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,9 +82,31 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -174,6 +190,7 @@ Component + @@ -253,6 +270,10 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -264,13 +285,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - diff --git a/HeuristicLab.Clients.Hive.Views/3.3/HiveItemView.cs b/HeuristicLab.Clients.Hive.Views/3.3/HiveItemView.cs index fd9ff99872..111365089c 100644 --- a/HeuristicLab.Clients.Hive.Views/3.3/HiveItemView.cs +++ b/HeuristicLab.Clients.Hive.Views/3.3/HiveItemView.cs @@ -76,7 +76,7 @@ protected virtual void storeButton_Click(object sender, EventArgs e) { Content.Store(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Store failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Store failed.", ex); } } } diff --git a/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.cs b/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.cs index 392e04ae3a..a2819b59a7 100644 --- a/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.cs +++ b/HeuristicLab.Clients.Hive.Views/3.3/HiveTasks/OptimizerHiveTaskView.cs @@ -76,7 +76,7 @@ private void startButton_Click(object sender, EventArgs e) { var task = System.Threading.Tasks.Task.Factory.StartNew(ResumeTaskAsync); task.ContinueWith((t) => { Content.Progress.Finish(); - ErrorHandling.ShowErrorDialog(this, "An error occured while resuming the task.", t.Exception); + ErrorHandlingUI.ShowErrorDialog(this, "An error occured while resuming the task.", t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); } @@ -84,7 +84,7 @@ private void pauseButton_Click(object sender, EventArgs e) { var task = System.Threading.Tasks.Task.Factory.StartNew(PauseTaskAsync); task.ContinueWith((t) => { Content.Progress.Finish(); - ErrorHandling.ShowErrorDialog(this, "An error occured while pausing the task.", t.Exception); + ErrorHandlingUI.ShowErrorDialog(this, "An error occured while pausing the task.", t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); } @@ -92,7 +92,7 @@ private void stopButton_Click(object sender, EventArgs e) { var task = System.Threading.Tasks.Task.Factory.StartNew(StopTaskAsync); task.ContinueWith((t) => { Content.Progress.Finish(); - ErrorHandling.ShowErrorDialog(this, "An error occured while stopping the task.", t.Exception); + ErrorHandlingUI.ShowErrorDialog(this, "An error occured while stopping the task.", t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); } #endregion diff --git a/HeuristicLab.Clients.Hive.Views/3.3/TreeView/ItemTreeView.cs b/HeuristicLab.Clients.Hive.Views/3.3/TreeView/ItemTreeView.cs index 1dd844b4d3..5ae657ef43 100644 --- a/HeuristicLab.Clients.Hive.Views/3.3/TreeView/ItemTreeView.cs +++ b/HeuristicLab.Clients.Hive.Views/3.3/TreeView/ItemTreeView.cs @@ -417,7 +417,7 @@ protected virtual X CreateItem() where X : class { return (X)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } return null; diff --git a/HeuristicLab.Clients.Hive.Views/3.3/packages.config b/HeuristicLab.Clients.Hive.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Hive.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj b/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj index afd3cad792..a1edef9a5b 100644 --- a/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj +++ b/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -83,7 +81,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -99,17 +96,38 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -142,6 +160,7 @@ Designer + @@ -261,13 +280,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - diff --git a/HeuristicLab.Clients.Hive/3.3/packages.config b/HeuristicLab.Clients.Hive/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.Hive/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AdministratorView.cs b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AdministratorView.cs index 8f150da720..2c0fe78405 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AdministratorView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AdministratorView.cs @@ -103,7 +103,7 @@ private void Content_Refreshed(object sender, EventArgs e) { } private void refreshButton_Click(object sender, EventArgs e) { - Content.RefreshAsync(new Action((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex))); + Content.RefreshAsync(new Action((Exception ex) => ErrorHandlingUI.ShowErrorDialog(this, "Refresh failed.", ex))); } } } diff --git a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AlgorithmView.cs b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AlgorithmView.cs index 40d2660135..ce6cfb07af 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AlgorithmView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/AlgorithmView.cs @@ -163,7 +163,7 @@ private void storeUsersButton_Click(object sender, System.EventArgs e) { storeUsersButton.Enabled = false; } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Store authorized users and groups failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Store authorized users and groups failed.", ex); } } @@ -220,7 +220,7 @@ private void newDataButton_Click(object sender, EventArgs e) { dataViewHost.Content = (IContent)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Create new algorithm data failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Create new algorithm data failed.", ex); } SetEnabledStateOfControls(); } @@ -301,7 +301,7 @@ private void EndAsyncCall(string errorMessage, Exception exception, Action conti else { Cursor = Cursors.Default; Enabled = true; - if (exception != null) ErrorHandling.ShowErrorDialog(this, errorMessage, exception); + if (exception != null) ErrorHandlingUI.ShowErrorDialog(this, errorMessage, exception); if (continueWith != null) continueWith(); } } diff --git a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemCollectionView.cs b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemCollectionView.cs index 38ebe44e76..f93f9439d2 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemCollectionView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemCollectionView.cs @@ -39,7 +39,7 @@ protected override void removeButton_Click(object sender, System.EventArgs e) { base.removeButton_Click(sender, e); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Delete failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Delete failed.", ex); } } protected override void itemsListView_KeyDown(object sender, KeyEventArgs e) { @@ -47,7 +47,7 @@ protected override void itemsListView_KeyDown(object sender, KeyEventArgs e) { base.itemsListView_KeyDown(sender, e); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Delete failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Delete failed.", ex); } } protected override void itemsListView_ItemDrag(object sender, ItemDragEventArgs e) { @@ -55,7 +55,7 @@ protected override void itemsListView_ItemDrag(object sender, ItemDragEventArgs base.itemsListView_ItemDrag(sender, e); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Delete failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Delete failed.", ex); } } } diff --git a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemView.cs b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemView.cs index 6ab691953f..939c8ffaab 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/OKBItemView.cs @@ -77,7 +77,7 @@ protected virtual void storeButton_Click(object sender, EventArgs e) { Content.Store(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Store failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Store failed.", ex); } } } diff --git a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/ProblemView.cs b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/ProblemView.cs index 07eec9d48f..9b3dfb6766 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/ProblemView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/Administration/Views/ProblemView.cs @@ -163,7 +163,7 @@ private void storeUsersButton_Click(object sender, System.EventArgs e) { storeUsersButton.Enabled = false; } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Store authorized users and groups failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Store authorized users and groups failed.", ex); } } private void problemUserView_SelectedUsersChanged(object sender, EventArgs e) { @@ -222,7 +222,7 @@ private void newDataButton_Click(object sender, EventArgs e) { dataViewHost.Content = (IContent)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Create new problem data failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Create new problem data failed.", ex); } SetEnabledStateOfControls(); } @@ -303,7 +303,7 @@ private void EndAsyncCall(string errorMessage, Exception exception, Action conti else { Cursor = Cursors.Default; Enabled = true; - if (exception != null) ErrorHandling.ShowErrorDialog(this, errorMessage, exception); + if (exception != null) ErrorHandlingUI.ShowErrorDialog(this, errorMessage, exception); if (continueWith != null) continueWith(); } } diff --git a/HeuristicLab.Clients.OKB.Views/3.3/HeuristicLab.Clients.OKB.Views-3.3.csproj b/HeuristicLab.Clients.OKB.Views/3.3/HeuristicLab.Clients.OKB.Views-3.3.csproj index 02d573b650..a45429702b 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/HeuristicLab.Clients.OKB.Views-3.3.csproj +++ b/HeuristicLab.Clients.OKB.Views/3.3/HeuristicLab.Clients.OKB.Views-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,9 +82,31 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -291,6 +307,7 @@ SingleObjectiveOKBSolutionView.cs + @@ -377,6 +394,10 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Clients.OKB.Views/3.3/Query/Views/QueryView.cs b/HeuristicLab.Clients.OKB.Views/3.3/Query/Views/QueryView.cs index 701e3f7943..d8b5aacf5d 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/Query/Views/QueryView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/Query/Views/QueryView.cs @@ -123,8 +123,8 @@ private void LoadResultsAsync(int batchSize) { try { ex.Flatten().Handle(x => x is OperationCanceledException); } catch (AggregateException remaining) { - if (remaining.InnerExceptions.Count == 1) ErrorHandling.ShowErrorDialog(this, "Refresh results failed.", remaining.InnerExceptions[0]); - else ErrorHandling.ShowErrorDialog(this, "Refresh results failed.", remaining); + if (remaining.InnerExceptions.Count == 1) ErrorHandlingUI.ShowErrorDialog(this, "Refresh results failed.", remaining.InnerExceptions[0]); + else ErrorHandlingUI.ShowErrorDialog(this, "Refresh results failed.", remaining); } } })); @@ -155,7 +155,7 @@ private void Content_Refreshed(object sender, EventArgs e) { } private void refreshFiltersButton_Click(object sender, EventArgs e) { - Content.RefreshAsync(new Action((Exception ex) => ErrorHandling.ShowErrorDialog(this, "Refresh failed.", ex))); + Content.RefreshAsync(new Action((Exception ex) => ErrorHandlingUI.ShowErrorDialog(this, "Refresh failed.", ex))); } private void refreshResultsButton_Click(object sender, EventArgs e) { diff --git a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBAlgorithmView.cs b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBAlgorithmView.cs index 0ba7bcb65d..9a7ee3b28c 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBAlgorithmView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBAlgorithmView.cs @@ -251,7 +251,7 @@ private void Content_ExceptionOccurred(object sender, EventArgs e) { if (InvokeRequired) Invoke(new EventHandler>(Content_ExceptionOccurred), sender, e); else - ErrorHandling.ShowErrorDialog(this, e.Value); + ErrorHandlingUI.ShowErrorDialog(this, e.Value); } #endregion @@ -282,7 +282,7 @@ private void newProblemButton_Click(object sender, EventArgs e) { Content.Problem = (IProblem)problemTypeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } @@ -306,7 +306,7 @@ private void openProblemButton_Click(object sender, EventArgs e) { Content.Problem = problem; } catch (Exception ex) { - Invoke(new Action(() => ErrorHandling.ShowErrorDialog(this, ex))); + Invoke(new Action(() => ErrorHandlingUI.ShowErrorDialog(this, ex))); } finally { Invoke(new Action(delegate() { @@ -327,7 +327,7 @@ private async void startButton_Click(object sender, EventArgs e) { try { await Content.StartAsync(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } private void pauseButton_Click(object sender, EventArgs e) { diff --git a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBExperimentUploadView.cs b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBExperimentUploadView.cs index fc30986710..b15667d264 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBExperimentUploadView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBExperimentUploadView.cs @@ -93,7 +93,7 @@ public void AddRuns(IItem item) { } private void DisplayError(Exception ex) { - PluginInfrastructure.ErrorHandling.ShowErrorDialog("An error occured while retrieving algorithm and problem information from the OKB.", ex); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog("An error occured while retrieving algorithm and problem information from the OKB.", ex); } private void DisplayRuns(RunCollection runs) { @@ -204,7 +204,7 @@ private void btnUpload_Click(object sender, EventArgs e) { var task = System.Threading.Tasks.Task.Factory.StartNew(UploadAsync); task.ContinueWith((t) => { Progress.Hide(this); - PluginInfrastructure.ErrorHandling.ShowErrorDialog("An exception occured while uploading the runs to the OKB.", t.Exception); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog("An exception occured while uploading the runs to the OKB.", t.Exception); }, TaskContinuationOptions.OnlyOnFaulted); } diff --git a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs index 3e8d068503..5e7bfefb13 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBProblemView.cs @@ -221,7 +221,7 @@ private void uploadCharacteristicsButton_Click(object sender, EventArgs e) { } try { RunCreationClient.Instance.SetCharacteristicValues(Content.ProblemId, values); - } catch (Exception ex) { ErrorHandling.ShowErrorDialog(ex); } + } catch (Exception ex) { ErrorHandlingUI.ShowErrorDialog(ex); } } private void calculateButton_Click(object sender, EventArgs e) { var calculators = calculatorList.CheckedItems.Select(x => x.Value).Where(x => x.CanCalculate()).ToList(); diff --git a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBRunView.cs b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBRunView.cs index 217a8e6da5..37eb9f0cd0 100644 --- a/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBRunView.cs +++ b/HeuristicLab.Clients.OKB.Views/3.3/RunCreation/Views/OKBRunView.cs @@ -73,7 +73,7 @@ private void storeButton_Click(object sender, System.EventArgs e) { MessageBox.Show("You have to register your client to be able to store OKB runs." + Environment.NewLine + " Please click in the menu bar on Services -> Access -> Client Information and register your client. ", "Missing client registration", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, "Store failed.", ex); + ErrorHandlingUI.ShowErrorDialog(this, "Store failed.", ex); } } #endregion diff --git a/HeuristicLab.Clients.OKB.Views/3.3/packages.config b/HeuristicLab.Clients.OKB.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.OKB.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj b/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj index 40a891565d..d0126b65b9 100644 --- a/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj +++ b/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,9 +82,31 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -178,6 +194,7 @@ + @@ -265,13 +282,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - diff --git a/HeuristicLab.Clients.OKB/3.3/packages.config b/HeuristicLab.Clients.OKB/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Clients.OKB/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.CodeEditor/3.4/HeuristicLab.CodeEditor-3.4.csproj b/HeuristicLab.CodeEditor/3.4/HeuristicLab.CodeEditor-3.4.csproj index 3106d502cb..6c1d4f1dd3 100644 --- a/HeuristicLab.CodeEditor/3.4/HeuristicLab.CodeEditor-3.4.csproj +++ b/HeuristicLab.CodeEditor/3.4/HeuristicLab.CodeEditor-3.4.csproj @@ -20,7 +20,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -32,7 +31,6 @@ 4 - AllRules.ruleset false @@ -42,7 +40,6 @@ full x64 prompt - AllRules.ruleset false @@ -54,7 +51,6 @@ prompt - AllRules.ruleset false @@ -64,7 +60,6 @@ full x86 prompt - AllRules.ruleset false @@ -76,7 +71,6 @@ prompt - AllRules.ruleset false @@ -116,6 +110,9 @@ + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + @@ -167,6 +164,7 @@ + diff --git a/HeuristicLab.CodeEditor/3.4/packages.config b/HeuristicLab.CodeEditor/3.4/packages.config new file mode 100644 index 0000000000..42e3ab5aa9 --- /dev/null +++ b/HeuristicLab.CodeEditor/3.4/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj b/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj index 8294aebb45..11017614f2 100644 --- a/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj +++ b/HeuristicLab.Collections/3.3/HeuristicLab.Collections-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} + netstandard2.0 Library - Properties HeuristicLab.Collections - HeuristicLab.Collections-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,148 +20,44 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - Code - - - Code - - - - - - - - - - - - - - - - - - - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + @@ -196,33 +77,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Common.Resources/3.3/HeuristicLab.Common.Resources-3.3.csproj b/HeuristicLab.Common.Resources/3.3/HeuristicLab.Common.Resources-3.3.csproj index 6d1d80e199..815e8166aa 100644 --- a/HeuristicLab.Common.Resources/3.3/HeuristicLab.Common.Resources-3.3.csproj +++ b/HeuristicLab.Common.Resources/3.3/HeuristicLab.Common.Resources-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} + netstandard2.0 Library - Properties HeuristicLab.Common.Resources - HeuristicLab.Common.Resources-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,414 +20,50 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - + false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + true + + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - + True True HeuristicLab.resx - - - + True True VSImageLibrary.resx - - + - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - + PublicResXFileCodeGenerator HeuristicLab.Designer.cs - + PublicResXFileCodeGenerator VSImageLibrary.Designer.cs Designer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -452,33 +73,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -497,27 +92,9 @@ true - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - + + + + + \ No newline at end of file diff --git a/HeuristicLab.Common.Resources/3.3/Plugin.cs.frame b/HeuristicLab.Common.Resources/3.3/Plugin.cs.frame index 93eef61e57..ea05b267b6 100644 --- a/HeuristicLab.Common.Resources/3.3/Plugin.cs.frame +++ b/HeuristicLab.Common.Resources/3.3/Plugin.cs.frame @@ -27,6 +27,7 @@ using HeuristicLab.PluginInfrastructure; namespace HeuristicLab.Common.Resources { [Plugin("HeuristicLab.Common.Resources", "3.3.16.$WCREV$")] [PluginFile("HeuristicLab.Common.Resources-3.3.dll", PluginFileType.Assembly)] + [PluginDependency("HeuristicLab.Attic", "1.0")] public class HeuristicLabCommonResourcesPlugin : PluginBase { } } diff --git a/HeuristicLab.Common/3.3/HeuristicLab.Common-3.3.csproj b/HeuristicLab.Common/3.3/HeuristicLab.Common-3.3.csproj index 40a6ed5a04..7c04ee16d4 100644 --- a/HeuristicLab.Common/3.3/HeuristicLab.Common-3.3.csproj +++ b/HeuristicLab.Common/3.3/HeuristicLab.Common-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} + netstandard2.0 Library - Properties HeuristicLab.Common - HeuristicLab.Common-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,136 +20,42 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - - - AllRules.ruleset - false + - - - 3.5 - - - + 3.5 - + 3.5 - - - - 3.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - + @@ -184,33 +75,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Common/3.3/Plugin.cs.frame b/HeuristicLab.Common/3.3/Plugin.cs.frame index 16b0d4f2bc..9a5c22c124 100644 --- a/HeuristicLab.Common/3.3/Plugin.cs.frame +++ b/HeuristicLab.Common/3.3/Plugin.cs.frame @@ -30,7 +30,6 @@ namespace HeuristicLab.Common { /// [Plugin("HeuristicLab.Common", "3.3.16.$WCREV$")] [PluginFile("HeuristicLab.Common-3.3.dll", PluginFileType.Assembly)] - [PluginDependency("HeuristicLab.Attic", "1.0")] public class HeuristicLabCommonPlugin : PluginBase { } } diff --git a/HeuristicLab.Core.Views/3.3/Clipboard.cs b/HeuristicLab.Core.Views/3.3/Clipboard.cs index e0a2183c6e..80b968d7de 100644 --- a/HeuristicLab.Core.Views/3.3/Clipboard.cs +++ b/HeuristicLab.Core.Views/3.3/Clipboard.cs @@ -337,7 +337,7 @@ private void listView_DragDrop(object sender, DragEventArgs e) { } } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } @@ -357,7 +357,7 @@ private void addButton_Click(object sender, EventArgs e) { AddItem((T)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType()); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs b/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs index e85f61347a..d52287212a 100644 --- a/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs +++ b/HeuristicLab.Core.Views/3.3/CreateParameterDialog.cs @@ -36,7 +36,7 @@ public IParameter Parameter { return parameter; } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } return null; } diff --git a/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj b/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj index c931cd46a6..bf470f36e2 100644 --- a/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj +++ b/HeuristicLab.Core.Views/3.3/HeuristicLab.Core.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,16 +95,37 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -122,6 +138,7 @@ + UserControl @@ -379,6 +396,10 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -402,13 +423,6 @@ true - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Data.Views/3.3/HeuristicLab.Data.Views-3.3.csproj b/HeuristicLab.Data.Views/3.3/HeuristicLab.Data.Views-3.3.csproj index f94b22ab3d..afca045d06 100644 --- a/HeuristicLab.Data.Views/3.3/HeuristicLab.Data.Views-3.3.csproj +++ b/HeuristicLab.Data.Views/3.3/HeuristicLab.Data.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,16 +95,37 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -182,6 +198,7 @@ StringConvertibleValueTupleView.cs + UserControl @@ -273,6 +290,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Data.Views/3.3/Path Views/TextFileView.cs b/HeuristicLab.Data.Views/3.3/Path Views/TextFileView.cs index f03a8787e8..bced2f17ac 100644 --- a/HeuristicLab.Data.Views/3.3/Path Views/TextFileView.cs +++ b/HeuristicLab.Data.Views/3.3/Path Views/TextFileView.cs @@ -226,7 +226,7 @@ private static string ReadFile(string path) { } } catch (Exception e) { - ErrorHandling.ShowErrorDialog(e); + ErrorHandlingUI.ShowErrorDialog(e); } return fileContent; } @@ -240,7 +240,7 @@ private static void WriteFile(string path, string fileContent) { } } catch (Exception e) { - ErrorHandling.ShowErrorDialog(e); + ErrorHandlingUI.ShowErrorDialog(e); } } } diff --git a/HeuristicLab.Data.Views/3.3/packages.config b/HeuristicLab.Data.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Data.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Data/3.3/HeuristicLab.Data-3.3.csproj b/HeuristicLab.Data/3.3/HeuristicLab.Data-3.3.csproj index 2697e24f32..c946268bb8 100644 --- a/HeuristicLab.Data/3.3/HeuristicLab.Data-3.3.csproj +++ b/HeuristicLab.Data/3.3/HeuristicLab.Data-3.3.csproj @@ -1,26 +1,11 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} + netstandard2.0 Library - Properties HeuristicLab.Data - HeuristicLab.Data-3.3 true HeuristicLab.snk - - - 3.5 - - true - v4.7.2 - - http://localhost/HeuristicLab.Data/ true Web @@ -35,161 +20,37 @@ 1.0.0.%2a false true - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - - - AllRules.ruleset - false - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - false - AllRules.ruleset - false + + false - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - + + + + + @@ -219,33 +80,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.DataPreprocessing.Views/3.4/CheckedTransformationListView.cs b/HeuristicLab.DataPreprocessing.Views/3.4/CheckedTransformationListView.cs index ffe085380c..be689b2e53 100644 --- a/HeuristicLab.DataPreprocessing.Views/3.4/CheckedTransformationListView.cs +++ b/HeuristicLab.DataPreprocessing.Views/3.4/CheckedTransformationListView.cs @@ -54,7 +54,7 @@ protected override ITransformation CreateItem() { return (ITransformation)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(new[] { columnNames }); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } return null; diff --git a/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj b/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj index 5af4703c52..d59a001769 100644 --- a/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj +++ b/HeuristicLab.DataPreprocessing.Views/3.4/HeuristicLab.DataPreprocessing.Views-3.4.csproj @@ -21,7 +21,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -33,7 +32,6 @@ 4 - AllRules.ruleset false @@ -43,7 +41,6 @@ full x64 prompt - AllRules.ruleset false @@ -55,7 +52,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -65,7 +61,6 @@ full x86 prompt - AllRules.ruleset false @@ -77,7 +72,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -89,6 +83,9 @@ + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + @@ -229,7 +226,9 @@ + + @@ -275,9 +274,8 @@ False - {3B90F866-70F8-43EF-A541-51819D255B7B} + {3b90f866-70f8-43ef-a541-51819d255b7b} HeuristicLab.DataPreprocessing-3.4 - False {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} @@ -304,6 +302,10 @@ HeuristicLab.Optimizer-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.DataPreprocessing.Views/3.4/app.config b/HeuristicLab.DataPreprocessing.Views/3.4/app.config new file mode 100644 index 0000000000..d973f50179 --- /dev/null +++ b/HeuristicLab.DataPreprocessing.Views/3.4/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.DataPreprocessing.Views/3.4/packages.config b/HeuristicLab.DataPreprocessing.Views/3.4/packages.config new file mode 100644 index 0000000000..42e3ab5aa9 --- /dev/null +++ b/HeuristicLab.DataPreprocessing.Views/3.4/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj b/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj index 529f57c2cb..f0cd609639 100644 --- a/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj +++ b/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj @@ -52,7 +52,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -62,7 +61,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false @@ -72,9 +70,31 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -100,6 +120,7 @@ + @@ -172,13 +193,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) diff --git a/HeuristicLab.DataPreprocessing/3.4/packages.config b/HeuristicLab.DataPreprocessing/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.DataPreprocessing/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.DebugEngine.Views/3.3/HeuristicLab.DebugEngine.Views-3.3.csproj b/HeuristicLab.DebugEngine.Views/3.3/HeuristicLab.DebugEngine.Views-3.3.csproj index e2712edae3..211cd50017 100644 --- a/HeuristicLab.DebugEngine.Views/3.3/HeuristicLab.DebugEngine.Views-3.3.csproj +++ b/HeuristicLab.DebugEngine.Views/3.3/HeuristicLab.DebugEngine.Views-3.3.csproj @@ -43,7 +43,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -60,7 +59,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -78,7 +76,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -96,7 +93,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -110,12 +106,35 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + UserControl @@ -194,6 +213,10 @@ HeuristicLab.Operators-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.DebugEngine.Views/3.3/packages.config b/HeuristicLab.DebugEngine.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.DebugEngine.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.DebugEngine/3.3/HeuristicLab.DebugEngine-3.3.csproj b/HeuristicLab.DebugEngine/3.3/HeuristicLab.DebugEngine-3.3.csproj index 16797bb575..e7b2fef850 100644 --- a/HeuristicLab.DebugEngine/3.3/HeuristicLab.DebugEngine-3.3.csproj +++ b/HeuristicLab.DebugEngine/3.3/HeuristicLab.DebugEngine-3.3.csproj @@ -1,40 +1,20 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {49F28045-7B5F-411B-8D59-16C846FA26E0} + netstandard2.0 Library - Properties HeuristicLab.DebugEngine - HeuristicLab.DebugEngine-3.3 - v4.7.2 - - - 512 - + false + $(SolutionDir)\bin\ + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 false - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - false true @@ -43,134 +23,35 @@ HeuristicLab.snk - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 bin\Debug\HeuristicLab.DebugEngine.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 $(SolutionDir)\bin\HeuristicLab.DebugEngine.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - - - x64 - $(SolutionDir)\bin\ - false - - x64 - $(SolutionDir)\bin\ - false - - - - - - - - - - - - - - + - - - + + + + + + - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj b/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj index dbab4ecbc7..81d8cb2943 100644 --- a/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj +++ b/HeuristicLab.Encodings.BinaryVectorEncoding/3.3/HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {66D249C3-A01D-42A8-82A2-919BC8EC3D83} + netstandard2.0 Library - Properties HeuristicLab.Encodings.BinaryVectorEncoding - HeuristicLab.Encodings.BinaryVectorEncoding-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,175 +20,31 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + + + + + @@ -223,33 +64,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj b/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj index 9922aabde1..259a3cd6c2 100644 --- a/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj +++ b/HeuristicLab.Encodings.IntegerVectorEncoding/3.3/HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0} + netstandard2.0 Library - Properties HeuristicLab.Encodings.IntegerVectorEncoding - HeuristicLab.Encodings.IntegerVectorEncoding-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,130 +20,16 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - + 3.5 - - - - - - - - - - - - - - - - Code - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - @@ -178,90 +49,19 @@ - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Encodings.LinearLinkageEncoding/3.4/HeuristicLab.Encodings.LinearLinkageEncoding-3.4.csproj b/HeuristicLab.Encodings.LinearLinkageEncoding/3.4/HeuristicLab.Encodings.LinearLinkageEncoding-3.4.csproj index 69588e5615..8e21f44e95 100644 --- a/HeuristicLab.Encodings.LinearLinkageEncoding/3.4/HeuristicLab.Encodings.LinearLinkageEncoding-3.4.csproj +++ b/HeuristicLab.Encodings.LinearLinkageEncoding/3.4/HeuristicLab.Encodings.LinearLinkageEncoding-3.4.csproj @@ -1,84 +1,33 @@ - - - + - Debug - AnyCPU - {BE698769-975A-429E-828C-72BB2B6182C8} + netstandard2.0 Library - Properties HeuristicLab.Encodings.LinearLinkageEncoding - HeuristicLab.Encodings.LinearLinkageEncoding-3.4 - v4.7.2 - 512 + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - false - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + true @@ -87,155 +36,21 @@ HeuristicLab.snk - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Encodings.PermutationEncoding.Views/3.3/HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj b/HeuristicLab.Encodings.PermutationEncoding.Views/3.3/HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj index 3817302baa..022aeff2e2 100644 --- a/HeuristicLab.Encodings.PermutationEncoding.Views/3.3/HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj +++ b/HeuristicLab.Encodings.PermutationEncoding.Views/3.3/HeuristicLab.Encodings.PermutationEncoding.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x86 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x64 prompt - AllRules.ruleset false @@ -94,15 +89,36 @@ pdbonly x64 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -132,6 +148,7 @@ + @@ -196,6 +213,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Encodings.PermutationEncoding.Views/3.3/packages.config b/HeuristicLab.Encodings.PermutationEncoding.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Encodings.PermutationEncoding.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj b/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj index e46cfc351c..64dcb77f1c 100644 --- a/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj +++ b/HeuristicLab.Encodings.PermutationEncoding/3.3/HeuristicLab.Encodings.PermutationEncoding-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} + netstandard2.0 Library - Properties HeuristicLab.Encodings.PermutationEncoding - HeuristicLab.Encodings.PermutationEncoding-3.3 true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -35,236 +20,49 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - false - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + + + + + + @@ -284,33 +82,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Encodings.RealVectorEncoding/3.3/HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj b/HeuristicLab.Encodings.RealVectorEncoding/3.3/HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj index 73149d7d60..2de47c2b02 100644 --- a/HeuristicLab.Encodings.RealVectorEncoding/3.3/HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj +++ b/HeuristicLab.Encodings.RealVectorEncoding/3.3/HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB} + netstandard2.0 Library - Properties HeuristicLab.Encodings.RealVectorEncoding - HeuristicLab.Encodings.RealVectorEncoding-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,227 +20,49 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - + + + + + + + + + + + @@ -275,33 +82,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.csproj b/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.csproj index 12b2662732..cd4ef8e07b 100644 --- a/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.csproj +++ b/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -83,7 +81,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -100,7 +97,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -108,9 +104,31 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -145,6 +163,7 @@ + @@ -192,6 +211,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/packages.config b/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Encodings.ScheduleEncoding.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Encodings.ScheduleEncoding/3.3/HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj b/HeuristicLab.Encodings.ScheduleEncoding/3.3/HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj index 0b7fc05478..3681429973 100644 --- a/HeuristicLab.Encodings.ScheduleEncoding/3.3/HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj +++ b/HeuristicLab.Encodings.ScheduleEncoding/3.3/HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606} + netstandard2.0 Library - Properties HeuristicLab.Encodings.ScheduleEncoding - HeuristicLab.Encodings.ScheduleEncoding-3.3 - v4.7.2 - 512 - - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,219 +16,61 @@ HeuristicLab.snk - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 ..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 ..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 ..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 ..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0} - HeuristicLab.Encodings.IntegerVectorEncoding-3.3 - False - - - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj index 0feb792e2a..8f55cc089e 100644 --- a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj +++ b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,15 +89,36 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -239,6 +255,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -257,6 +277,7 @@ + diff --git a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.cs b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.cs index aa6d2b8b7d..16eb4936dc 100644 --- a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.cs +++ b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarEditorView.cs @@ -307,7 +307,7 @@ private void addButton_Click(object sender, EventArgs e) { if (groupSymbol != null) groupSymbol.SymbolsCollection.Add(symbol); else Content.AddSymbol(symbol); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.cs b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.cs index 6aa4dbabe2..73845fabbf 100644 --- a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.cs +++ b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionGrammarSampleExpressionTreeView.cs @@ -108,7 +108,7 @@ private void UpdateSampleTreeView() { } catch (Exception ex) { sampleTreeView.Content = null; - ErrorHandling.ShowErrorDialog(ex); + ErrorHandlingUI.ShowErrorDialog(ex); } } diff --git a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/packages.config b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj index 3c095f98bf..a78fd6b17d 100644 --- a/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj +++ b/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {06D4A186-9319-48A0-BADE-A2058D462EEA} + netstandard2.0 Library - Properties HeuristicLab.Encodings.SymbolicExpressionTreeEncoding - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,246 +20,41 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - true - AllRules.ruleset - false - - - pdbonly - true + false $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false - - true + $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false + true $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - + + + + + + + + + + + + + @@ -294,33 +74,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.ExactOptimization.Views/3.3/HeuristicLab.ExactOptimization.Views-3.3.csproj b/HeuristicLab.ExactOptimization.Views/3.3/HeuristicLab.ExactOptimization.Views-3.3.csproj index 7d60fcc581..6461c2c2b9 100644 --- a/HeuristicLab.ExactOptimization.Views/3.3/HeuristicLab.ExactOptimization.Views-3.3.csproj +++ b/HeuristicLab.ExactOptimization.Views/3.3/HeuristicLab.ExactOptimization.Views-3.3.csproj @@ -25,7 +25,6 @@ prompt 4 false - AllRules.ruleset 7.3 @@ -56,11 +55,33 @@ false + + ..\..\bin\Google.ProtocolBuffers-2.4.1.473.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -92,6 +113,8 @@ ProgrammableLinearProblemDefinitionView.cs + + @@ -160,6 +183,10 @@ HeuristicLab.Optimization-3.3 True + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -196,7 +223,8 @@ set Outdir=$(Outdir) call PreBuildEvent.cmd - copy /y "$(TargetPath)" "$(SolutionDir)\bin" + + + + + netstandard2.0 + Library + ALGLIB + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + ALGLIB-3.15.0 + ALGLIB® - numerical analysis library, 1999-2019 + ALGLIB project + ALGLIB-3.15.0 + Copyright © Sergey Bochkanov (ALGLIB project) 1999-2019 + 3.15.0.0 + 3.15.0.0 + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/ALGLIB-3.15.0/Properties/AssemblyInfo.cs b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/ALGLIB-3.15.0/Properties/AssemblyInfo.cs index 998a1a35f5..aefe2fbe4c 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/ALGLIB-3.15.0/Properties/AssemblyInfo.cs +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/ALGLIB-3.15.0/Properties/AssemblyInfo.cs @@ -1,15 +1,5 @@ using System.Reflection; using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ALGLIB-3.15.0")] -[assembly: AssemblyDescription("ALGLIB® - numerical analysis library, 1999-2019")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("ALGLIB project")] -[assembly: AssemblyProduct("ALGLIB-3.15.0")] -[assembly: AssemblyCopyright("Copyright © Sergey Bochkanov (ALGLIB project) 1999-2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -17,16 +7,3 @@ // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.15.0.0")] -[assembly: AssemblyFileVersion("3.15.0.0")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/HeuristicLab.ALGLIB-3.15.0/HeuristicLab.ALGLIB-3.15.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/HeuristicLab.ALGLIB-3.15.0/HeuristicLab.ALGLIB-3.15.0.csproj index 5b2e8c339c..4689e06d00 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/HeuristicLab.ALGLIB-3.15.0/HeuristicLab.ALGLIB-3.15.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.15.0/HeuristicLab.ALGLIB-3.15.0/HeuristicLab.ALGLIB-3.15.0.csproj @@ -1,113 +1,59 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {6CAB3410-EBD4-40D9-ABD6-AA95BB684C65} - Library - Properties - HeuristicLab.ALGLIB - HeuristicLab.ALGLIB-3.15.0 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - - - - - - - - - - - - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - - - - - - - Always - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - + + + netstandard2.0 + Library + HeuristicLab.ALGLIB + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + HeuristicLab.ALGLIB + Provides an interface to ALGLIB + HeuristicLab + (c) HEAL + 3.15.0 + 3.15.0.8896 + + + + + + + + Always + + + + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) +set ProjectDir=$(ProjectDir) +set SolutionDir=$(SolutionDir) +set Outdir=$(Outdir) + +call PreBuildEvent.cmd + + +export ProjectDir=$(ProjectDir) +export SolutionDir=$(SolutionDir) + +$SolutionDir/PreBuildEvent.sh + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/ALGLIB-3.17.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/ALGLIB-3.17.0.csproj index 272606d416..d0979a2861 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/ALGLIB-3.17.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/ALGLIB-3.17.0.csproj @@ -1,100 +1,41 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {A9CED8BA-9055-4DA6-A302-A4207C465AF0} - Library - Properties - ALGLIB - ALGLIB-3.17.0 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + netstandard2.0 + Library + ALGLIB + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + ALGLIB Project + ALGLIB for C# (managed) + 3.17.0.0 + ALGLIB-3.17.0 + ALGLIB® - numerical analysis library, 1999-2021 + Copyright © Sergey Bochkanov (ALGLIB project) 1999-2021 + 3.17.0.0 + 3.17.0.0 + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/Properties/AssemblyInfo.cs b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/Properties/AssemblyInfo.cs index f283fe1249..aefe2fbe4c 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/Properties/AssemblyInfo.cs +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/Properties/AssemblyInfo.cs @@ -1,13 +1,5 @@ using System.Reflection; using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ALGLIB-3.17.0")] -[assembly: AssemblyDescription("ALGLIB® - numerical analysis library, 1999-2021")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCopyright("Copyright © Sergey Bochkanov (ALGLIB project) 1999-2021")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -15,16 +7,3 @@ // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.17.0.0")] -[assembly: AssemblyFileVersion("3.17.0.0")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/alglib_info.cs b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/alglib_info.cs index 8bad144b06..2e15eb2643 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/alglib_info.cs +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/ALGLIB-3.17.0/alglib_info.cs @@ -17,6 +17,3 @@ A copy of the GNU General Public License is available at http://www.fsf.org/licensing/licenses >>> END OF LICENSE >>> *************************************************************************/ -[assembly:System.Reflection.AssemblyCompanyAttribute("ALGLIB Project")] -[assembly:System.Reflection.AssemblyProductAttribute("ALGLIB for C# (managed)")] -[assembly:System.Reflection.AssemblyInformationalVersionAttribute("3.17.0.0")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/HeuristicLab.ALGLIB-3.17.0/HeuristicLab.ALGLIB-3.17.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/HeuristicLab.ALGLIB-3.17.0/HeuristicLab.ALGLIB-3.17.0.csproj index 69e8842541..440bd43581 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/HeuristicLab.ALGLIB-3.17.0/HeuristicLab.ALGLIB-3.17.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.17.0/HeuristicLab.ALGLIB-3.17.0/HeuristicLab.ALGLIB-3.17.0.csproj @@ -1,113 +1,59 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {8A56F216-2B71-4F72-B86B-2DE489D578DB} - Library - Properties - HeuristicLab.ALGLIB - HeuristicLab.ALGLIB-3.17.0 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - - - - - - - - - - - - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - - - - - - - Always - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - + + + netstandard2.0 + Library + HeuristicLab.ALGLIB + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + HeuristicLab.ALGLIB + Provides an interface to ALGLIB + HeuristicLab + (c) HEAL + 3.17.0 + 3.17.0.8896 + + + + + + + + Always + + + + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) +set ProjectDir=$(ProjectDir) +set SolutionDir=$(SolutionDir) +set Outdir=$(Outdir) + +call PreBuildEvent.cmd + + +export ProjectDir=$(ProjectDir) +export SolutionDir=$(SolutionDir) + +$SolutionDir/PreBuildEvent.sh + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/ALGLIB-3.7.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/ALGLIB-3.7.0.csproj index c0ae7eab50..fca5c52c81 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/ALGLIB-3.7.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/ALGLIB-3.7.0.csproj @@ -1,138 +1,39 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {AE723DEF-1A44-4F9C-8670-DBCAB79626A2} - Library - Properties - ALGLIB - ALGLIB-3.7.0 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + netstandard2.0 + Library + ALGLIB + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + ALGLIB-3.7.0 + ALGLIB® - numerical analysis library, 1999-2013 + ALGLIB project + ALGLIB-3.7.0 + Copyright © Sergey Bochkanov (ALGLIB project) 1999-2013 + 3.7.0.0 + 3.7.0.0 + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/Properties/AssemblyInfo.cs b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/Properties/AssemblyInfo.cs index 20b89ee10b..c1f527dd2c 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/Properties/AssemblyInfo.cs +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/ALGLIB-3.7.0/Properties/AssemblyInfo.cs @@ -1,15 +1,5 @@ using System.Reflection; using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ALGLIB-3.7.0")] -[assembly: AssemblyDescription("ALGLIB® - numerical analysis library, 1999-2013")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("ALGLIB project")] -[assembly: AssemblyProduct("ALGLIB-3.7.0")] -[assembly: AssemblyCopyright("Copyright © Sergey Bochkanov (ALGLIB project) 1999-2013")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,16 +10,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("4703AE78-3EA4-405A-921B-1FAF8DECA3F2")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.7.0.0")] -[assembly: AssemblyFileVersion("3.7.0.0")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/HeuristicLab.ALGLIB-3.7.0/HeuristicLab.ALGLIB-3.7.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/HeuristicLab.ALGLIB-3.7.0/HeuristicLab.ALGLIB-3.7.0.csproj index 8633f7bbf3..212f3e6a69 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/HeuristicLab.ALGLIB-3.7.0/HeuristicLab.ALGLIB-3.7.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ALGLIB/3.7.0/HeuristicLab.ALGLIB-3.7.0/HeuristicLab.ALGLIB-3.7.0.csproj @@ -1,157 +1,60 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {6F1D7847-D610-4E52-A184-405DAEFA41A9} - Library - Properties - HeuristicLab.ALGLIB - HeuristicLab.ALGLIB-3.7.0 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - - - - - - - - - - - - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {ae723def-1a44-4f9c-8670-dbcab79626a2} - ALGLIB-3.7.0 - - - - - - - - - - - Always - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - + + + netstandard2.0 + Library + HeuristicLab.ALGLIB + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + HeuristicLab.ALGLIB + Provides an interface to ALGLIB + HeuristicLab + (c) HEAL + 3.7.0 + 3.7.0.8896 + + + + + + + + + Always + + + + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) +set ProjectDir=$(ProjectDir) +set SolutionDir=$(SolutionDir) +set Outdir=$(Outdir) + +call PreBuildEvent.cmd + + +export ProjectDir=$(ProjectDir) +export SolutionDir=$(SolutionDir) + +$SolutionDir/PreBuildEvent.sh + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/HeuristicLab.Attic.csproj b/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/HeuristicLab.Attic.csproj index d0ec64c584..1fb991c77f 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/HeuristicLab.Attic.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/HeuristicLab.Attic.csproj @@ -21,7 +21,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -31,7 +30,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -60,7 +58,7 @@ - 1.5.0 + 1.7.0 @@ -69,10 +67,6 @@ HeuristicLab.PluginInfrastructure-3.3 False - - {44b10478-d290-43d3-9757-c08f5292fea5} - HeuristicLab.Protobuf - diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/Plugin.cs.frame b/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/Plugin.cs.frame index 2a10a40e9b..cea04dc28d 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/Plugin.cs.frame +++ b/HeuristicLab.ExtLibs/HeuristicLab.Attic/1.0.0/Plugin.cs.frame @@ -31,7 +31,7 @@ namespace HeuristicLab.Attic { [PluginFile("HEAL.Attic.dll", PluginFileType.Assembly)] [PluginFile("HEAL.Attic.License.txt", PluginFileType.License)] [PluginFile("System.Drawing.Common.dll", PluginFileType.Assembly)] - [PluginDependency("HeuristicLab.Protobuf", "3.6.1")] + [PluginDependency("HeuristicLab.Protobuf", "3.15.0")] public class Plugin : PluginBase { } } diff --git a/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/AutoDiff-1.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/AutoDiff-1.0.csproj index 2dab6d061c..7d589ac864 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/AutoDiff-1.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/AutoDiff-1.0.csproj @@ -1,227 +1,123 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {62551FD3-C21F-4E16-A7FC-6A017508809C} - Library - Properties - AutoDiff - AutoDiff-1.0 - v4.7.2 - 512 - 0 - - - - - - - - - - - - true - full - false - ..\..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - True - False - False - False - False - False - False - False - False - False - True - False - False - True - - - - - - - Full - Build - false - - - pdbonly - true - ..\..\..\..\bin\ - TRACE - prompt - 4 - - - False - False - True - False - False - False - False - False - False - True - False - False - True - - - - - - - False - Full - Build - false - - - true - - - HeuristicLab.snk - - - true - ..\..\..\..\bin\ - DEBUG;TRACE - full - x64 - bin\Debug\AutoDiff.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - true - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - true - false - false - - - ..\..\..\..\bin\ - TRACE - true - pdbonly - x64 - bin\Release\AutoDiff.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - true - ..\..\..\..\bin\ - DEBUG;TRACE - full - x86 - bin\Debug\AutoDiff.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - - - ..\..\..\..\bin\ - TRACE - true - pdbonly - x86 - bin\Release\AutoDiff.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + Library + AutoDiff + 0 + + + + + + + + + netstandard2.0 + AutoDiff + High-performance and high-accuracy automatic function-differentiation library suitable for optimization and numeric computing. + Alex Shtof + AutoDiff + Copyright © NA 2010 + 1.0.0.14388 + 1.0.0.14388 + false + + + ..\..\..\..\bin\ + 4 + True + False + False + False + False + False + False + False + False + False + True + False + False + True + + + + + + + Full + Build + + + ..\..\..\..\bin\ + 4 + + + False + False + True + False + False + False + False + False + False + True + False + False + True + + + + + + + False + Full + Build + + + true + + + HeuristicLab.snk + + + ..\..\..\..\bin\ + bin\Debug\AutoDiff.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + true + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + true + false + + + ..\..\..\..\bin\ + bin\Release\AutoDiff.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + + + ..\..\..\..\bin\ + bin\Debug\AutoDiff.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + + + ..\..\..\..\bin\ + bin\Release\AutoDiff.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets + false + ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules + false + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/Properties/AssemblyInfo.cs b/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/Properties/AssemblyInfo.cs index 34cd706e15..b5630280e3 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/Properties/AssemblyInfo.cs +++ b/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/AutoDiff-1.0/Properties/AssemblyInfo.cs @@ -1,15 +1,5 @@ using System.Reflection; using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AutoDiff")] -[assembly: AssemblyDescription("High-performance and high-accuracy automatic function-differentiation library suitable for optimization and numeric computing.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Alex Shtof")] -[assembly: AssemblyProduct("AutoDiff")] -[assembly: AssemblyCopyright("Copyright © NA 2010")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,16 +10,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("e294e492-271d-48ae-a047-c03bc13b9f6f")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.14388")] -[assembly: AssemblyFileVersion("1.0.0.14388")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/HeuristicLab.AutoDiff-1.0/HeuristicLab.AutoDiff-1.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/HeuristicLab.AutoDiff-1.0/HeuristicLab.AutoDiff-1.0.csproj index 2a6e0cd39e..366074375a 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/HeuristicLab.AutoDiff-1.0/HeuristicLab.AutoDiff-1.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.AutoDiff/1.0/HeuristicLab.AutoDiff-1.0/HeuristicLab.AutoDiff-1.0.csproj @@ -1,156 +1,56 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {C8BB29AC-C64A-4EF4-9773-9208F9AE0B49} - Library - Properties - HeuristicLab.AutoDiff - HeuristicLab.AutoDiff-1.0 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - - - - - - - - - - - - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {62551FD3-C21F-4E16-A7FC-6A017508809C} - AutoDiff-1.0 - - - - - - - - - - Always - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - + + + net6.0 + Library + HeuristicLab.AutoDiff + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + HeuristicLab.AutoDiff + Provides an interface to AutoDiff + HeuristicLab + (c) HEAL + 1.0 + 1.0.0.8896 + + + + + + + + Always + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) +set ProjectDir=$(ProjectDir) +set SolutionDir=$(SolutionDir) +set Outdir=$(Outdir) + +call PreBuildEvent.cmd + + +export ProjectDir=$(ProjectDir) +export SolutionDir=$(SolutionDir) + +$SolutionDir/PreBuildEvent.sh + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/AvalonEdit-5.0.1/ICSharpCode.AvalonEdit-5.0.1.csproj b/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/AvalonEdit-5.0.1/ICSharpCode.AvalonEdit-5.0.1.csproj index c5458669a2..743711ae32 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/AvalonEdit-5.0.1/ICSharpCode.AvalonEdit-5.0.1.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/AvalonEdit-5.0.1/ICSharpCode.AvalonEdit-5.0.1.csproj @@ -9,7 +9,6 @@ TRACE;DEBUG;DOTNET4;NREFACTORY prompt 4 - AllRules.ruleset false @@ -19,7 +18,6 @@ TRACE;DOTNET4;NREFACTORY prompt 4 - AllRules.ruleset false @@ -29,7 +27,6 @@ full x86 prompt - AllRules.ruleset false @@ -39,7 +36,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -49,7 +45,6 @@ full x64 prompt - AllRules.ruleset false @@ -59,7 +54,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/HeuristicLab.AvalonEdit-5.0.1/HeuristicLab.AvalonEdit-5.0.1.csproj b/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/HeuristicLab.AvalonEdit-5.0.1/HeuristicLab.AvalonEdit-5.0.1.csproj index b72811708d..3e3883a7cb 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/HeuristicLab.AvalonEdit-5.0.1/HeuristicLab.AvalonEdit-5.0.1.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.AvalonEdit/5.0.1/HeuristicLab.AvalonEdit-5.0.1/HeuristicLab.AvalonEdit-5.0.1.csproj @@ -20,7 +20,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -30,7 +29,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -40,7 +38,6 @@ full x86 prompt - AllRules.ruleset false @@ -50,7 +47,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -60,7 +56,6 @@ full x64 prompt - AllRules.ruleset false @@ -70,7 +65,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/HeuristicLab.Cecil-0.9.5/HeuristicLab.Cecil-0.9.5.csproj b/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/HeuristicLab.Cecil-0.9.5/HeuristicLab.Cecil-0.9.5.csproj index 8e2cc731d1..470c91b9ab 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/HeuristicLab.Cecil-0.9.5/HeuristicLab.Cecil-0.9.5.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/HeuristicLab.Cecil-0.9.5/HeuristicLab.Cecil-0.9.5.csproj @@ -20,7 +20,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -30,7 +29,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -40,7 +38,6 @@ full x86 prompt - AllRules.ruleset false @@ -50,7 +47,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -60,7 +56,6 @@ full x64 prompt - AllRules.ruleset false @@ -70,7 +65,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Mono.Cecil-0.9.5.csproj b/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Mono.Cecil-0.9.5.csproj index e47eb3e85b..8c7021d07f 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Mono.Cecil-0.9.5.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Mono.Cecil-0.9.5.csproj @@ -20,7 +20,6 @@ TRACE;DEBUG;NET_4_0;CECIL prompt 4 - AllRules.ruleset false 0649 @@ -31,7 +30,6 @@ TRACE;NET_4_0;CECIL prompt 4 - AllRules.ruleset false 0649 @@ -42,7 +40,6 @@ full x86 prompt - AllRules.ruleset false 0649 @@ -53,7 +50,6 @@ pdbonly x86 prompt - AllRules.ruleset false 0649 @@ -64,7 +60,6 @@ full x64 prompt - AllRules.ruleset false 0649 @@ -75,7 +70,6 @@ pdbonly x64 prompt - AllRules.ruleset false 0649 diff --git a/HeuristicLab.ExtLibs/HeuristicLab.DayView/1.0/HeuristicLab.DayView-1.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.DayView/1.0/HeuristicLab.DayView-1.0.csproj index cbdbcdbfbe..51387bbfdc 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.DayView/1.0/HeuristicLab.DayView-1.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.DayView/1.0/HeuristicLab.DayView-1.0.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x86 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.DotNetScilab/1.0/HeuristicLab.DotNetScilab-1.0/HeuristicLab.DotNetScilab-1.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.DotNetScilab/1.0/HeuristicLab.DotNetScilab-1.0/HeuristicLab.DotNetScilab-1.0.csproj index 4d9714e6f1..30b29d9807 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.DotNetScilab/1.0/HeuristicLab.DotNetScilab-1.0/HeuristicLab.DotNetScilab-1.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.DotNetScilab/1.0/HeuristicLab.DotNetScilab-1.0/HeuristicLab.DotNetScilab-1.0.csproj @@ -45,7 +45,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset false @@ -55,7 +54,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -65,7 +63,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -75,7 +72,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/EPPlus-4.0.3/EPPlus-4.0.3.csproj b/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/EPPlus-4.0.3/EPPlus-4.0.3.csproj index 363b139283..daad4c31cc 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/EPPlus-4.0.3/EPPlus-4.0.3.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/EPPlus-4.0.3/EPPlus-4.0.3.csproj @@ -54,7 +54,6 @@ 4 - AllRules.ruleset AnyCPU @@ -69,7 +68,6 @@ 4 - AllRules.ruleset AnyCPU false @@ -80,7 +78,6 @@ full x86 prompt - AllRules.ruleset bin\x86\Release\ @@ -89,7 +86,6 @@ pdbonly x86 prompt - AllRules.ruleset true @@ -98,7 +94,6 @@ full x64 prompt - AllRules.ruleset bin\x64\Release\ @@ -107,7 +102,6 @@ pdbonly x64 prompt - AllRules.ruleset diff --git a/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/HeuristicLab.EPPlus-4.0.3/HeuristicLab.EPPlus-4.0.3.csproj b/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/HeuristicLab.EPPlus-4.0.3/HeuristicLab.EPPlus-4.0.3.csproj index 17c1aff0ed..ac2f75b6f0 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/HeuristicLab.EPPlus-4.0.3/HeuristicLab.EPPlus-4.0.3.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.EPPlus/4.0.3/HeuristicLab.EPPlus-4.0.3/HeuristicLab.EPPlus-4.0.3.csproj @@ -45,7 +45,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset false @@ -55,7 +54,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -65,7 +63,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -75,7 +72,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.GeoIP/1.12/HeuristicLab.GeoIP.csproj b/HeuristicLab.ExtLibs/HeuristicLab.GeoIP/1.12/HeuristicLab.GeoIP.csproj index cf036c3554..834f8558fb 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.GeoIP/1.12/HeuristicLab.GeoIP.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.GeoIP/1.12/HeuristicLab.GeoIP.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/HeuristicLab.LibSVM-3.12/HeuristicLab.LibSVM-3.12.csproj b/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/HeuristicLab.LibSVM-3.12/HeuristicLab.LibSVM-3.12.csproj index 95c1dedb55..8510668bc1 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/HeuristicLab.LibSVM-3.12/HeuristicLab.LibSVM-3.12.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/HeuristicLab.LibSVM-3.12/HeuristicLab.LibSVM-3.12.csproj @@ -1,185 +1,99 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {005C27BE-ED6E-4602-8199-5F9EB7591CEB} - Library - Properties - HeuristicLab.LibSVM - HeuristicLab.LibSVM-3.12 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - - - 3.5 - - - 3.5 - - - 3.5 - - - - - - - - - - - - - - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE} - LibSVM-3.12 - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - - - - - Always - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - + + + netstandard2.0 + Library + HeuristicLab.LibSVM + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + HeuristicLab.LibSVM + HeuristicLab transport plugin for libSVM version 3.12 by Chih-Chung Chang and Chih-Jen Lin + HeuristicLab + (c) HEAL + 3.12.0.0 + 3.12.0.8896 + + + $(SolutionDir)\bin\ + + + $(SolutionDir)\bin\ + + + + + $(SolutionDir)\bin\ + + + $(SolutionDir)\bin\ + + + + + $(SolutionDir)\bin\ + + + $(SolutionDir)\bin\ + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + Always + + + + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) +set ProjectDir=$(ProjectDir) +set SolutionDir=$(SolutionDir) +set Outdir=$(Outdir) + +call PreBuildEvent.cmd + + +export ProjectDir=$(ProjectDir) +export SolutionDir=$(SolutionDir) + +$SolutionDir/PreBuildEvent.sh + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/LibSVM-3.12.csproj b/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/LibSVM-3.12.csproj index 6e777ce23c..32eba805ab 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/LibSVM-3.12.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/LibSVM-3.12.csproj @@ -1,154 +1,61 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {4C41E3A3-B2FD-46EA-98FB-F21433E58FBE} - Library - Properties - LibSVM - LibSVM-3.12 - v4.7.2 - - - 512 - true - HeuristicLab.snk - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - - - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - - - 3.5 - - - 3.5 - - - 3.5 - - - - - - - - - - - - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - - - - - - - - + + + netstandard2.0 + Library + LibSVM + true + HeuristicLab.snk + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + false + $(SolutionDir)\bin\ + SVM.NET + A C# port of libSVM (translated from the libSVM 3.12 java sources) + libSVM + Copyright (c) 2000-2012 Chih-Chung Chang and Chih-Jen Lin + 3.12 + 3.12 + + + $(SolutionDir)\bin\ + + + $(SolutionDir)\bin\ + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/Properties/AssemblyInfo.cs b/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/Properties/AssemblyInfo.cs index c8cc03604f..b31b1a1568 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/Properties/AssemblyInfo.cs +++ b/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/3.12/LibSVM-3.12/Properties/AssemblyInfo.cs @@ -1,15 +1,5 @@ using System.Reflection; using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SVM.NET")] -[assembly: AssemblyDescription("A C# port of libSVM (translated from the libSVM 3.12 java sources)")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("libSVM")] -[assembly: AssemblyCopyright("Copyright (c) 2000-2012 Chih-Chung Chang and Chih-Jen Lin")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,15 +10,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("D5DC009D-0938-4867-91F0-5CF0DD9386B9")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("3.12")] -[assembly: AssemblyFileVersion("3.12")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.MathJax/2.7.5/HeuristicLab.MathJax-2.7.5/HeuristicLab.MathJax-2.7.5.csproj b/HeuristicLab.ExtLibs/HeuristicLab.MathJax/2.7.5/HeuristicLab.MathJax-2.7.5/HeuristicLab.MathJax-2.7.5.csproj index da5559f507..e80ff0444c 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.MathJax/2.7.5/HeuristicLab.MathJax-2.7.5/HeuristicLab.MathJax-2.7.5.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.MathJax/2.7.5/HeuristicLab.MathJax-2.7.5/HeuristicLab.MathJax-2.7.5.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,7 +95,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -108,8 +102,6 @@ 3.5 - - 3.5 diff --git a/HeuristicLab.ExtLibs/HeuristicLab.MatlabConnector/1.0/HeuristicLab.MatlabConnector-1.0/HeuristicLab.MatlabConnector-1.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.MatlabConnector/1.0/HeuristicLab.MatlabConnector-1.0/HeuristicLab.MatlabConnector-1.0.csproj index ef911163cd..c79814cf79 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.MatlabConnector/1.0/HeuristicLab.MatlabConnector-1.0/HeuristicLab.MatlabConnector-1.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.MatlabConnector/1.0/HeuristicLab.MatlabConnector-1.0/HeuristicLab.MatlabConnector-1.0.csproj @@ -45,7 +45,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset false @@ -55,7 +54,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -65,7 +63,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -75,7 +72,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/HeuristicLab.NRefactory-5.5.0/HeuristicLab.NRefactory-5.5.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/HeuristicLab.NRefactory-5.5.0/HeuristicLab.NRefactory-5.5.0.csproj index df132df7ce..13aae09fc4 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/HeuristicLab.NRefactory-5.5.0/HeuristicLab.NRefactory-5.5.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/HeuristicLab.NRefactory-5.5.0/HeuristicLab.NRefactory-5.5.0.csproj @@ -20,7 +20,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -30,7 +29,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -40,7 +38,6 @@ full x86 prompt - AllRules.ruleset false @@ -50,7 +47,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -60,7 +56,6 @@ full x64 prompt - AllRules.ruleset false @@ -70,7 +65,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory-5.5.0/ICSharpCode.NRefactory-5.5.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory-5.5.0/ICSharpCode.NRefactory-5.5.0.csproj index 5baef4c3b0..1373858fd8 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory-5.5.0/ICSharpCode.NRefactory-5.5.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory-5.5.0/ICSharpCode.NRefactory-5.5.0.csproj @@ -9,7 +9,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -19,7 +18,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -29,7 +27,6 @@ full x86 prompt - AllRules.ruleset false @@ -39,7 +36,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -49,7 +45,6 @@ full x64 prompt - AllRules.ruleset false @@ -59,7 +54,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.CSharp-5.5.0/ICSharpCode.NRefactory.CSharp-5.5.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.CSharp-5.5.0/ICSharpCode.NRefactory.CSharp-5.5.0.csproj index c84e6243e0..d686bab891 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.CSharp-5.5.0/ICSharpCode.NRefactory.CSharp-5.5.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.CSharp-5.5.0/ICSharpCode.NRefactory.CSharp-5.5.0.csproj @@ -20,7 +20,6 @@ TRACE;DEBUG;FULL_AST prompt 4 - AllRules.ruleset false true @@ -31,7 +30,6 @@ TRACE;FULL_AST prompt 4 - AllRules.ruleset false true @@ -42,7 +40,6 @@ full x86 prompt - AllRules.ruleset false true @@ -53,7 +50,6 @@ pdbonly x86 prompt - AllRules.ruleset false true @@ -64,7 +60,6 @@ full x64 prompt - AllRules.ruleset false true @@ -75,7 +70,6 @@ pdbonly x64 prompt - AllRules.ruleset false true diff --git a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Cecil-5.5.0/ICSharpCode.NRefactory.Cecil-5.5.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Cecil-5.5.0/ICSharpCode.NRefactory.Cecil-5.5.0.csproj index e0a7f96bf6..480bdbc3cf 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Cecil-5.5.0/ICSharpCode.NRefactory.Cecil-5.5.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Cecil-5.5.0/ICSharpCode.NRefactory.Cecil-5.5.0.csproj @@ -20,7 +20,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -30,7 +29,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -40,7 +38,6 @@ full x86 prompt - AllRules.ruleset false @@ -50,7 +47,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -60,7 +56,6 @@ full x64 prompt - AllRules.ruleset false @@ -70,7 +65,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Xml-5.5.0/ICSharpCode.NRefactory.Xml-5.5.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Xml-5.5.0/ICSharpCode.NRefactory.Xml-5.5.0.csproj index be466ed5ea..3bcd850e93 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Xml-5.5.0/ICSharpCode.NRefactory.Xml-5.5.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.NRefactory/5.5.0/NRefactory.Xml-5.5.0/ICSharpCode.NRefactory.Xml-5.5.0.csproj @@ -20,7 +20,6 @@ TRACE;DEBUG prompt 4 - AllRules.ruleset false true @@ -31,7 +30,6 @@ TRACE prompt 4 - AllRules.ruleset false true @@ -42,7 +40,6 @@ full x86 prompt - AllRules.ruleset false true @@ -53,7 +50,6 @@ pdbonly x86 prompt - AllRules.ruleset false true @@ -64,7 +60,6 @@ full x64 prompt - AllRules.ruleset false true @@ -75,7 +70,6 @@ pdbonly x64 prompt - AllRules.ruleset false true diff --git a/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/HeuristicLab.NativeInterpreter-0.2.csproj b/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/HeuristicLab.NativeInterpreter-0.2.csproj index 492c619aed..1323a16acf 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/HeuristicLab.NativeInterpreter-0.2.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/HeuristicLab.NativeInterpreter-0.2.csproj @@ -1,35 +1,18 @@ - - - + - Debug - AnyCPU - {E05AC63F-6924-4C83-BD0A-EDF3C103C1D8} + netstandard2.0 Library - Properties HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter-0.2 - v4.7.2 - 512 - true - - - - true - full - false - ..\..\..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true + false ..\..\..\..\bin\ - TRACE - prompt - 4 + HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter-0.2 + A wrapper for a native code implementation of a tree interpreter + HEAL + HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter-0.2 + (c) HEAL + 0.2.0.1 + 0.2.0.1 true @@ -38,34 +21,15 @@ HeuristicLab.snk - - - - - - - - - - - - - - - - - - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - + PreserveNewest - + + + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/Properties/AssemblyInfo.cs b/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/Properties/AssemblyInfo.cs index 2ea086c322..6cfc3d0061 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/Properties/AssemblyInfo.cs +++ b/HeuristicLab.ExtLibs/HeuristicLab.NativeInterpreter/0.2/HeuristicLab.NativeInterpreter-0.2/Properties/AssemblyInfo.cs @@ -1,16 +1,6 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter-0.2")] -[assembly: AssemblyDescription("A wrapper for a native code implementation of a tree interpreter")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("HEAL")] -[assembly: AssemblyProduct("HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter-0.2")] -[assembly: AssemblyCopyright("(c) HEAL")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -21,16 +11,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("e05ac63f-6924-4c83-bd0a-edf3c103c1d8")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.0.1")] -[assembly: AssemblyFileVersion("0.2.0.1")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446.csproj b/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446.csproj index e278483273..dc02d05593 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446/HeuristicLab.Netron-3.0.2672.12446.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x86 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x64 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446.csproj b/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446.csproj index 0cd7f384f5..76a8c4cdb1 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.Netron/3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446/Netron.Diagramming.Core-3.0.2672.12446.csproj @@ -72,7 +72,6 @@ false - Migrated rules for Netron.Diagramming.Core-3.0.2672.12446.ruleset false @@ -99,7 +98,6 @@ prompt - Migrated rules for Netron.Diagramming.Core-3.0.2672.12446 (2).ruleset false @@ -117,7 +115,6 @@ Auto prompt - AllRules.ruleset false @@ -130,7 +127,6 @@ prompt - Migrated rules for Netron.Diagramming.Core-3.0.2672.12446 (2).ruleset false @@ -146,7 +142,6 @@ Auto prompt - Migrated rules for Netron.Diagramming.Core-3.0.2672.12446.ruleset false @@ -159,7 +154,6 @@ prompt - Migrated rules for Netron.Diagramming.Core-3.0.2672.12446 (2).ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/HeuristicLab.OrTools-7.0.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/HeuristicLab.OrTools-7.0.0.csproj index 9bcf61126e..af9d865c0c 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/HeuristicLab.OrTools-7.0.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/HeuristicLab.OrTools-7.0.0.csproj @@ -23,7 +23,6 @@ prompt 4 true - AllRules.ruleset pdbonly @@ -48,7 +47,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset ..\..\..\..\bin\ @@ -58,7 +56,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset true @@ -68,7 +65,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset ..\..\..\..\bin\ @@ -78,11 +74,29 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset + + + true + + ..\..\..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -97,6 +111,7 @@ + diff --git a/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Plugin.cs.frame b/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Plugin.cs.frame index 56f6b55163..b15dea76ba 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Plugin.cs.frame +++ b/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/Plugin.cs.frame @@ -34,7 +34,7 @@ namespace HeuristicLab.OrTools { [PluginFile("Google.OrTools-license.txt", PluginFileType.License)] [PluginFile("Google.OrTools.runtime.win-x64.dll", PluginFileType.NativeDll)] [PluginFile("Google.OrTools_version.txt", PluginFileType.Data)] - [PluginDependency("HeuristicLab.Protobuf", "3.6.1")] + [PluginDependency("HeuristicLab.Protobuf", "3.15.0")] public class HeuristicLabOrToolsPlugin : PluginBase { ~HeuristicLabOrToolsPlugin() { diff --git a/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/packages.config b/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/packages.config new file mode 100644 index 0000000000..2807c1c9d5 --- /dev/null +++ b/HeuristicLab.ExtLibs/HeuristicLab.OrTools/7.0.0/HeuristicLab.OrTools-7.0.0/packages.config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Google.Protobuf.License.txt b/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Google.Protobuf.License.txt similarity index 100% rename from HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Google.Protobuf.License.txt rename to HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Google.Protobuf.License.txt diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/HeuristicLab.Protobuf.csproj b/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/HeuristicLab.Protobuf.csproj similarity index 93% rename from HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/HeuristicLab.Protobuf.csproj rename to HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/HeuristicLab.Protobuf.csproj index 87bf07f20c..d01b115cd4 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/HeuristicLab.Protobuf.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/HeuristicLab.Protobuf.csproj @@ -21,7 +21,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -31,7 +30,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -60,7 +58,7 @@ - 3.6.1 + 3.15.0 diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Plugin.cs.frame b/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Plugin.cs.frame similarity index 94% rename from HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Plugin.cs.frame rename to HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Plugin.cs.frame index 3486c7eef5..d73c4987eb 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Plugin.cs.frame +++ b/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Plugin.cs.frame @@ -26,7 +26,7 @@ using System.Text; using HeuristicLab.PluginInfrastructure; namespace HeuristicLab.Protobuf { - [Plugin("HeuristicLab.Protobuf","HeuristicLab wrapper for Google.Protobuf nuget package","3.6.1.$WCREV$")] + [Plugin("HeuristicLab.Protobuf","HeuristicLab wrapper for Google.Protobuf nuget package","3.15.0.$WCREV$")] [PluginFile("HeuristicLab.Protobuf.dll", PluginFileType.Assembly)] [PluginFile("Google.Protobuf.dll", PluginFileType.Assembly)] [PluginFile("Google.Protobuf.License.txt", PluginFileType.License)] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Properties/AssemblyInfo.cs.frame b/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Properties/AssemblyInfo.cs.frame similarity index 93% rename from HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Properties/AssemblyInfo.cs.frame rename to HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Properties/AssemblyInfo.cs.frame index a07d152c2d..f45226eed2 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.6.1/Properties/AssemblyInfo.cs.frame +++ b/HeuristicLab.ExtLibs/HeuristicLab.Protobuf/3.15.0/Properties/AssemblyInfo.cs.frame @@ -54,5 +54,5 @@ using HeuristicLab.PluginInfrastructure; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.6.1")] -[assembly: AssemblyFileVersion("3.6.1.$WCREV$")] +[assembly: AssemblyVersion("3.15.0")] +[assembly: AssemblyFileVersion("3.15.0.$WCREV$")] diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/HeuristicLab.ProtobufCS/HeuristicLab.ProtobufCS-2.4.1.473.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/HeuristicLab.ProtobufCS/HeuristicLab.ProtobufCS-2.4.1.473.csproj index 39b9d0bd3a..54b03f1ee9 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/HeuristicLab.ProtobufCS/HeuristicLab.ProtobufCS-2.4.1.473.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/HeuristicLab.ProtobufCS/HeuristicLab.ProtobufCS-2.4.1.473.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x86 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x64 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtoGen/ProtoGen-2.4.1.473.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtoGen/ProtoGen-2.4.1.473.csproj index f069724da9..e25f4c2309 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtoGen/ProtoGen-2.4.1.473.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtoGen/ProtoGen-2.4.1.473.csproj @@ -45,7 +45,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -55,7 +54,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -68,7 +66,6 @@ true GlobalSuppressions.cs prompt - AllRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -85,7 +82,6 @@ true GlobalSuppressions.cs prompt - AllRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -102,7 +98,6 @@ true GlobalSuppressions.cs prompt - AllRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -119,7 +114,6 @@ true GlobalSuppressions.cs prompt - AllRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules diff --git a/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtocolBuffers/ProtocolBuffers-2.4.1.473.csproj b/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtocolBuffers/ProtocolBuffers-2.4.1.473.csproj index 12a74d674d..b177cc7e10 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtocolBuffers/ProtocolBuffers-2.4.1.473.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/2.4.1/ProtobufCS/src/ProtocolBuffers/ProtocolBuffers-2.4.1.473.csproj @@ -56,7 +56,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -75,7 +74,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -94,7 +92,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -113,7 +110,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules diff --git a/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/HeuristicLab.WinFormsUI-2.7.0/HeuristicLab.WinFormsUI-2.7.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/HeuristicLab.WinFormsUI-2.7.0/HeuristicLab.WinFormsUI-2.7.0.csproj index af37e66958..2d5a29d768 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/HeuristicLab.WinFormsUI-2.7.0/HeuristicLab.WinFormsUI-2.7.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/HeuristicLab.WinFormsUI-2.7.0/HeuristicLab.WinFormsUI-2.7.0.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x86 prompt - AllRules.ruleset false diff --git a/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/WinFormsUI-2.7.0/WinFormsUI-2.7.0.csproj b/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/WinFormsUI-2.7.0/WinFormsUI-2.7.0.csproj index 44843beb49..4e84ce685c 100644 --- a/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/WinFormsUI-2.7.0/WinFormsUI-2.7.0.csproj +++ b/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.7.0/WinFormsUI-2.7.0/WinFormsUI-2.7.0.csproj @@ -44,7 +44,6 @@ TRACE;DEBUG prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x86 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x64 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Hive/3.3/HeuristicLab.Hive-3.3.csproj b/HeuristicLab.Hive/3.3/HeuristicLab.Hive-3.3.csproj index 97cf2c136c..b121698dbf 100644 --- a/HeuristicLab.Hive/3.3/HeuristicLab.Hive-3.3.csproj +++ b/HeuristicLab.Hive/3.3/HeuristicLab.Hive-3.3.csproj @@ -1,85 +1,33 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {F98A1740-9AC9-4D36-A582-6A2D0D06978D} + netstandard2.0 Library - Properties HeuristicLab.Hive - HeuristicLab.Hive-3.3 - v4.7.2 - 512 - + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + true @@ -88,72 +36,12 @@ HeuristicLab.snk - - - - - - - - - - - - - - - - - + + + - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj b/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj index 8ebbb6357e..1591af006a 100644 --- a/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj +++ b/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,15 +95,36 @@ prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -163,6 +179,7 @@ ContentView.cs + @@ -255,10 +272,13 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + - {94186A6A-5176-4402-AE83-886557B53CCA} + {94186a6a-5176-4402-ae83-886557b53cca} HeuristicLab.PluginInfrastructure-3.3 - False diff --git a/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs b/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs index dd408590d1..0070f57948 100644 --- a/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs +++ b/HeuristicLab.MainForm.WindowsForms/3.3/MainForms/MainForm.cs @@ -551,7 +551,7 @@ private void ToolStripItemClicked(object sender, EventArgs e) { try { ((IActionUserInterfaceItem)item.Tag).Execute(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog((Control)MainFormManager.MainForm, ex); + ErrorHandlingUI.ShowErrorDialog((Control)MainFormManager.MainForm, ex); } } #endregion diff --git a/HeuristicLab.MainForm.WindowsForms/3.3/packages.config b/HeuristicLab.MainForm.WindowsForms/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.MainForm.WindowsForms/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.MainForm/3.3/HeuristicLab.MainForm-3.3.csproj b/HeuristicLab.MainForm/3.3/HeuristicLab.MainForm-3.3.csproj index fe536d6a4f..b31faa10f1 100644 --- a/HeuristicLab.MainForm/3.3/HeuristicLab.MainForm-3.3.csproj +++ b/HeuristicLab.MainForm/3.3/HeuristicLab.MainForm-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,15 +95,36 @@ prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -119,6 +135,7 @@ + diff --git a/HeuristicLab.MainForm/3.3/packages.config b/HeuristicLab.MainForm/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.MainForm/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Operators.Programmable.Views/3.3/HeuristicLab.Operators.Programmable.Views-3.3.csproj b/HeuristicLab.Operators.Programmable.Views/3.3/HeuristicLab.Operators.Programmable.Views-3.3.csproj index bc31627904..e984801330 100644 --- a/HeuristicLab.Operators.Programmable.Views/3.3/HeuristicLab.Operators.Programmable.Views-3.3.csproj +++ b/HeuristicLab.Operators.Programmable.Views/3.3/HeuristicLab.Operators.Programmable.Views-3.3.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false @@ -64,7 +63,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false @@ -81,7 +79,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -98,7 +95,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -106,9 +102,34 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.CodeDom.6.0.0\lib\net461\System.CodeDom.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -120,6 +141,7 @@ ProgrammableOperatorView.cs + @@ -177,6 +199,10 @@ HeuristicLab.Operators-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Operators.Programmable.Views/3.3/ProgrammableOperatorView.cs b/HeuristicLab.Operators.Programmable.Views/3.3/ProgrammableOperatorView.cs index ea07721c8b..393a9fc6d4 100644 --- a/HeuristicLab.Operators.Programmable.Views/3.3/ProgrammableOperatorView.cs +++ b/HeuristicLab.Operators.Programmable.Views/3.3/ProgrammableOperatorView.cs @@ -202,7 +202,7 @@ private void Recompile() { try { ProgrammableOperator.Compile(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } this.Enabled = true; UpdateCompilationLabel(); diff --git a/HeuristicLab.Operators.Programmable.Views/3.3/packages.config b/HeuristicLab.Operators.Programmable.Views/3.3/packages.config new file mode 100644 index 0000000000..6dc2e76c93 --- /dev/null +++ b/HeuristicLab.Operators.Programmable.Views/3.3/packages.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Operators.Programmable/3.3/HeuristicLab.Operators.Programmable-3.3.csproj b/HeuristicLab.Operators.Programmable/3.3/HeuristicLab.Operators.Programmable-3.3.csproj index 441a2bb8bf..fb4ed733db 100644 --- a/HeuristicLab.Operators.Programmable/3.3/HeuristicLab.Operators.Programmable-3.3.csproj +++ b/HeuristicLab.Operators.Programmable/3.3/HeuristicLab.Operators.Programmable-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6} + netstandard2.0 Library - Properties HeuristicLab.Operators.Programmable - HeuristicLab.Operators.Programmable-3.3 true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -35,187 +20,50 @@ false false true + false + true + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - - 3.5 - - - 3.5 + - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file + diff --git a/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs b/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs index 6f4afa9e45..6bbe5474e9 100644 --- a/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs +++ b/HeuristicLab.Operators.Programmable/3.3/ProgrammableOperator.cs @@ -259,7 +259,7 @@ private static Dictionary> GroupAssemblies(IEnumerabletrue GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true @@ -82,7 +80,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -99,7 +96,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -108,6 +104,12 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + ..\..\bin\HeuristicLab.Netron-3.0.2672.12446.dll False @@ -117,16 +119,33 @@ False + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + UserControl @@ -204,6 +223,10 @@ HeuristicLab.Optimizer-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/packages.config b/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Operators.Views.GraphVisualization.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Operators.Views.GraphVisualization/3.3/HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj b/HeuristicLab.Operators.Views.GraphVisualization/3.3/HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj index 744a45132c..c8f02e500c 100644 --- a/HeuristicLab.Operators.Views.GraphVisualization/3.3/HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj +++ b/HeuristicLab.Operators.Views.GraphVisualization/3.3/HeuristicLab.Operators.Views.GraphVisualization-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x86 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x64 prompt - AllRules.ruleset false @@ -100,15 +95,36 @@ prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -127,6 +143,7 @@ + @@ -170,6 +187,10 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -193,13 +214,6 @@ true - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Optimization.Operators/3.3/HeuristicLab.Optimization.Operators-3.3.csproj b/HeuristicLab.Optimization.Operators/3.3/HeuristicLab.Optimization.Operators-3.3.csproj index 71d6e9c9b1..d2a7b7b110 100644 --- a/HeuristicLab.Optimization.Operators/3.3/HeuristicLab.Optimization.Operators-3.3.csproj +++ b/HeuristicLab.Optimization.Operators/3.3/HeuristicLab.Optimization.Operators-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {25087811-F74C-4128-BC86-8324271DA13E} + netstandard2.0 Library - Properties HeuristicLab.Optimization.Operators - HeuristicLab.Optimization.Operators-3.3 true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -35,183 +20,49 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - false - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {6A5F8C2D-B0C3-4B36-BC20-9B1A91EE6DB6} - HeuristicLab.Operators.Programmable-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - False - + + + + + + + + + + + @@ -231,33 +82,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs b/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs index 36fe0248a9..3dfa7a32d1 100644 --- a/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs +++ b/HeuristicLab.Optimization.Views/3.3/AlgorithmView.cs @@ -159,7 +159,7 @@ protected virtual void newProblemButton_Click(object sender, EventArgs e) { Content.Problem = (IProblem)problemTypeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } @@ -183,7 +183,7 @@ protected virtual void openProblemButton_Click(object sender, EventArgs e) { Content.Problem = problem; } catch (Exception ex) { - Invoke(new Action(() => ErrorHandling.ShowErrorDialog(this, ex))); + Invoke(new Action(() => ErrorHandlingUI.ShowErrorDialog(this, ex))); } finally { Invoke(new Action(delegate() { diff --git a/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs b/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs index b56b72a808..30c3e19ed8 100644 --- a/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs +++ b/HeuristicLab.Optimization.Views/3.3/BatchRunView.cs @@ -138,7 +138,7 @@ private void newOptimizerButton_Click(object sender, EventArgs e) { Content.Optimizer = (IOptimizer)optimizerTypeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } @@ -158,7 +158,7 @@ private void openOptimizerButton_Click(object sender, EventArgs e) { Content.Optimizer = optimizer; } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } finally { Invoke(new Action(delegate() { diff --git a/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs b/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs index 5f87bf2726..1559147e63 100644 --- a/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs +++ b/HeuristicLab.Optimization.Views/3.3/ExperimentTreeView.cs @@ -721,7 +721,7 @@ private void addButton_Click(object sender, System.EventArgs e) { } } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj b/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj index 7e7ecceca3..d19021cfdd 100644 --- a/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj +++ b/HeuristicLab.Optimization.Views/3.3/HeuristicLab.Optimization.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x86 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x64 prompt - AllRules.ruleset false @@ -100,16 +95,37 @@ pdbonly x64 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -122,6 +138,7 @@ + UserControl @@ -428,6 +445,10 @@ HeuristicLab.Parameters-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Optimization.Views/3.3/IOptimizerView.cs b/HeuristicLab.Optimization.Views/3.3/IOptimizerView.cs index b1aa12c9bd..a4cfeaf6ec 100644 --- a/HeuristicLab.Optimization.Views/3.3/IOptimizerView.cs +++ b/HeuristicLab.Optimization.Views/3.3/IOptimizerView.cs @@ -130,7 +130,7 @@ protected virtual void Content_ExceptionOccurred(object sender, EventArgs>(Content_ExceptionOccurred), sender, e); else - ErrorHandling.ShowErrorDialog(this, e.Value); + ErrorHandlingUI.ShowErrorDialog(this, e.Value); } #endregion @@ -139,7 +139,7 @@ protected virtual async void startButton_Click(object sender, EventArgs e) { try { await Content.StartAsync(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } protected virtual void pauseButton_Click(object sender, EventArgs e) { diff --git a/HeuristicLab.Optimization.Views/3.3/MultiEncodingView.cs b/HeuristicLab.Optimization.Views/3.3/MultiEncodingView.cs index 4832b29a8a..4498babbe4 100644 --- a/HeuristicLab.Optimization.Views/3.3/MultiEncodingView.cs +++ b/HeuristicLab.Optimization.Views/3.3/MultiEncodingView.cs @@ -81,13 +81,13 @@ private void addEncodingButton_Click(object sender, EventArgs e) { try { encoding = (IEncoding)Activator.CreateInstance(dialog.EncodingType, dialog.EncodingName); } catch (MissingMethodException mmex) { - PluginInfrastructure.ErrorHandling.ShowErrorDialog("The encoding must have a constructor that takes the name as a single string argument", mmex); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog("The encoding must have a constructor that takes the name as a single string argument", mmex); return; } catch (TargetInvocationException tiex) { - PluginInfrastructure.ErrorHandling.ShowErrorDialog("The encoding could not be created due to an error in the constructor.", tiex); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog("The encoding could not be created due to an error in the constructor.", tiex); return; } catch (MethodAccessException maex) { - PluginInfrastructure.ErrorHandling.ShowErrorDialog("The encoding's string constructor is not public.", maex); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog("The encoding's string constructor is not public.", maex); return; } Content.Add(encoding); diff --git a/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs b/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs index a46cc73feb..aeb3f98d9f 100644 --- a/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs +++ b/HeuristicLab.Optimization.Views/3.3/OptimizerListView.cs @@ -51,7 +51,7 @@ protected override IOptimizer CreateItem() { try { return (IOptimizer)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } return null; diff --git a/HeuristicLab.Optimization.Views/3.3/ResultParameterView.cs b/HeuristicLab.Optimization.Views/3.3/ResultParameterView.cs index b3dd4d1d7c..a72da7b7d1 100644 --- a/HeuristicLab.Optimization.Views/3.3/ResultParameterView.cs +++ b/HeuristicLab.Optimization.Views/3.3/ResultParameterView.cs @@ -118,7 +118,7 @@ private void setDefaultValueButton_Click(object sender, EventArgs e) { try { Content.DefaultValue = (T)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionConstraintCollectionView.cs b/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionConstraintCollectionView.cs index f72e697e3c..7e816df766 100644 --- a/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionConstraintCollectionView.cs +++ b/HeuristicLab.Optimization.Views/3.3/RunCollectionConstraintViews/RunCollectionConstraintCollectionView.cs @@ -50,7 +50,7 @@ protected override IRunCollectionConstraint CreateItem() { return (IRunCollectionConstraint)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } return null; diff --git a/HeuristicLab.Optimization.Views/3.3/RunCollectionModifierListView.cs b/HeuristicLab.Optimization.Views/3.3/RunCollectionModifierListView.cs index 95da561d3a..925db5fad2 100644 --- a/HeuristicLab.Optimization.Views/3.3/RunCollectionModifierListView.cs +++ b/HeuristicLab.Optimization.Views/3.3/RunCollectionModifierListView.cs @@ -52,7 +52,7 @@ protected override IRunCollectionModifier CreateItem() { try { return (IRunCollectionModifier)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } return null; diff --git a/HeuristicLab.Optimization.Views/3.3/TimeLimitRunView.cs b/HeuristicLab.Optimization.Views/3.3/TimeLimitRunView.cs index e6457db457..08c538dcc5 100644 --- a/HeuristicLab.Optimization.Views/3.3/TimeLimitRunView.cs +++ b/HeuristicLab.Optimization.Views/3.3/TimeLimitRunView.cs @@ -241,7 +241,7 @@ private void newAlgorithmButton_Click(object sender, EventArgs e) { try { Content.Algorithm = (IAlgorithm)algorithmTypeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } @@ -261,7 +261,7 @@ private void openAlgorithmButton_Click(object sender, EventArgs e) { else Content.Algorithm = algorithm; } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } finally { Invoke(new Action(delegate() { algorithmViewHost.Enabled = true; diff --git a/HeuristicLab.Optimization.Views/3.3/packages.config b/HeuristicLab.Optimization.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Optimization.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj b/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj index d1808c6859..5cfa3623c4 100644 --- a/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj +++ b/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {14AB8D24-25BC-400C-A846-4627AA945192} + netstandard2.0 Library - Properties HeuristicLab.Optimization - HeuristicLab.Optimization-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,283 +20,50 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + + + + @@ -331,33 +83,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Optimizer/3.3/FileManager.cs b/HeuristicLab.Optimizer/3.3/FileManager.cs index 4fd43e98f6..9702f27e25 100644 --- a/HeuristicLab.Optimizer/3.3/FileManager.cs +++ b/HeuristicLab.Optimizer/3.3/FileManager.cs @@ -48,7 +48,7 @@ public static void New() { if (newItemDialog.ShowDialog() == DialogResult.OK) { IView view = MainFormManager.MainForm.ShowContent(newItemDialog.Item); if (view == null) - ErrorHandling.ShowErrorDialog("There is no view for the new item. It cannot be displayed.", new InvalidOperationException("No View Available")); + ErrorHandlingUI.ShowErrorDialog("There is no view for the new item. It cannot be displayed.", new InvalidOperationException("No View Available")); } } @@ -83,9 +83,9 @@ private static void LoadingCompleted(IStorableContent content, Exception error, } IView view = MainFormManager.MainForm.ShowContent(content); if (view == null) - ErrorHandling.ShowErrorDialog("There is no view for the loaded item. It cannot be displayed.", new InvalidOperationException("No View Available")); + ErrorHandlingUI.ShowErrorDialog("There is no view for the loaded item. It cannot be displayed.", new InvalidOperationException("No View Available")); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog((Control)MainFormManager.MainForm, "Cannot open file.", ex); + ErrorHandlingUI.ShowErrorDialog((Control)MainFormManager.MainForm, "Cannot open file.", ex); } finally { ((MainForm.WindowsForms.MainForm)MainFormManager.MainForm).ResetAppStartingCursor(); } @@ -151,7 +151,7 @@ private static void SavingCompleted(IStorableContent content, Exception error) { MainFormManager.GetMainForm().UpdateTitle(); } catch (OperationCanceledException) { // do nothing if canceled } catch (Exception ex) { - ErrorHandling.ShowErrorDialog((Control)MainFormManager.MainForm, "Cannot save file.", ex); + ErrorHandlingUI.ShowErrorDialog((Control)MainFormManager.MainForm, "Cannot save file.", ex); } finally { Progress.Hide(content); MainFormManager.GetMainForm().ResetAppStartingCursor(); diff --git a/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj b/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj index 54748d0312..a9e82dd996 100644 --- a/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj +++ b/HeuristicLab.Optimizer/3.3/HeuristicLab.Optimizer-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,16 +95,37 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -154,6 +170,7 @@ + Form @@ -313,6 +330,10 @@ HeuristicLab.Parameters-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -358,13 +379,6 @@ true - - - False - ..\..\bin\HEAL.Attic.dll - False - - \ No newline at end of file diff --git a/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj b/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj index 66c21ddc8f..8378218e1d 100644 --- a/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj +++ b/HeuristicLab.Parameters.Views/3.3/HeuristicLab.Parameters.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,15 +95,36 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -120,6 +136,7 @@ + UserControl @@ -221,6 +238,10 @@ HeuristicLab.Parameters-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs b/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs index 5635e75db2..f3a8147ab9 100644 --- a/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs +++ b/HeuristicLab.Parameters.Views/3.3/ValueLookupParameterView.cs @@ -158,7 +158,7 @@ protected virtual void setValueButton_Click(object sender, EventArgs e) { Content.Value = (T)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs b/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs index 98b3d0c89c..70f5449a2b 100644 --- a/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs +++ b/HeuristicLab.Parameters.Views/3.3/ValueParameterView.cs @@ -145,7 +145,7 @@ protected virtual void setValueButton_Click(object sender, EventArgs e) { try { Content.Value = (T)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Parameters.Views/3.3/packages.config b/HeuristicLab.Parameters.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Parameters.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Parameters/3.3/HeuristicLab.Parameters-3.3.csproj b/HeuristicLab.Parameters/3.3/HeuristicLab.Parameters-3.3.csproj index a4a73666af..a9571d6a8d 100644 --- a/HeuristicLab.Parameters/3.3/HeuristicLab.Parameters-3.3.csproj +++ b/HeuristicLab.Parameters/3.3/HeuristicLab.Parameters-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {56F9106A-079F-4C61-92F6-86A84C2D84B7} + netstandard2.0 Library - Properties HeuristicLab.Parameters - HeuristicLab.Parameters-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,140 +20,47 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + @@ -188,33 +80,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Persistence.GUI/3.3/HeuristicLab.Persistence.GUI-3.3.csproj b/HeuristicLab.Persistence.GUI/3.3/HeuristicLab.Persistence.GUI-3.3.csproj index 2124322fbd..eeaaae06c3 100644 --- a/HeuristicLab.Persistence.GUI/3.3/HeuristicLab.Persistence.GUI-3.3.csproj +++ b/HeuristicLab.Persistence.GUI/3.3/HeuristicLab.Persistence.GUI-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x86 prompt - AllRules.ruleset false @@ -100,7 +95,6 @@ prompt - AllRules.ruleset false @@ -136,6 +130,7 @@ + @@ -149,12 +144,34 @@ + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -184,13 +201,6 @@ true - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) set ProjectDir=$(ProjectDir) diff --git a/HeuristicLab.Persistence.GUI/3.3/packages.config b/HeuristicLab.Persistence.GUI/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Persistence.GUI/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj b/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj index 28700a2296..c9ff15a25b 100644 --- a/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj +++ b/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj @@ -1,27 +1,11 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} + netstandard2.0 Library - Properties HeuristicLab.Persistence - HeuristicLab.Persistence-3.3 - v4.7.2 - - - 512 - - + true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -37,248 +21,55 @@ false false true + false + true + + + false - true - full - false $(SolutionDir)\bin\ - TRACE;DEBUG - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - false - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - TRACE;DEBUG - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - TRACE;DEBUG - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - - - AllRules.ruleset - false + - - - - This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + True True Settings.settings - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - - + SettingsSingleFileGenerator Settings.Designer.cs - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {EE2034D9-6E27-48A1-B855-42D45F69A4FC} - HeuristicLab.Tracing-3.3 - False - + + @@ -301,10 +92,13 @@ $SolutionDir/PreBuildEvent.sh - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/AvailablePluginsView.Designer.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/AvailablePluginsView.Designer.cs index a9e06a30d2..09ae3e2244 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/AvailablePluginsView.Designer.cs @@ -1,317 +1,317 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class AvailablePluginsView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.pluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); - this.nameHeader = new System.Windows.Forms.ColumnHeader(); - this.versionHeader = new System.Windows.Forms.ColumnHeader(); - this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginsImageList = new System.Windows.Forms.ImageList(this.components); - this.productsListView = new System.Windows.Forms.ListView(); - this.productNameHeader = new System.Windows.Forms.ColumnHeader(); - this.productVersionHeader = new System.Windows.Forms.ColumnHeader(); - this.productLargeImageList = new System.Windows.Forms.ImageList(this.components); - this.productImageList = new System.Windows.Forms.ImageList(this.components); - this.productsGroupBox = new System.Windows.Forms.GroupBox(); - this.showDetailsButton = new System.Windows.Forms.RadioButton(); - this.showLargeIconsButton = new System.Windows.Forms.RadioButton(); - this.installProductsButton = new System.Windows.Forms.Button(); - this.refreshButton = new System.Windows.Forms.Button(); - this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); - this.installPluginsButton = new System.Windows.Forms.Button(); - this.splitContainer = new System.Windows.Forms.SplitContainer(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.productsGroupBox.SuspendLayout(); - this.pluginsGroupBox.SuspendLayout(); - this.splitContainer.Panel1.SuspendLayout(); - this.splitContainer.Panel2.SuspendLayout(); - this.splitContainer.SuspendLayout(); - this.SuspendLayout(); - // - // pluginsListView - // - this.pluginsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pluginsListView.CheckBoxes = true; - this.pluginsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.nameHeader, - this.versionHeader, - this.descriptionHeader}); - this.pluginsListView.Location = new System.Drawing.Point(6, 19); - this.pluginsListView.Name = "pluginsListView"; - this.pluginsListView.ShowGroups = false; - this.pluginsListView.Size = new System.Drawing.Size(266, 502); - this.pluginsListView.SmallImageList = this.pluginsImageList; - this.pluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.pluginsListView.SuppressItemCheckedEvents = false; - this.pluginsListView.TabIndex = 0; - this.pluginsListView.UseCompatibleStateImageBehavior = false; - this.pluginsListView.View = System.Windows.Forms.View.Details; - this.pluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.remotePluginsListView_ItemChecked); - // - // nameHeader - // - this.nameHeader.Text = "Name"; - this.nameHeader.Width = 185; - // - // versionHeader - // - this.versionHeader.Text = "Version"; - this.versionHeader.Width = 93; - // - // descriptionHeader - // - this.descriptionHeader.Text = "Description"; - this.descriptionHeader.Width = 250; - // - // pluginsImageList - // - this.pluginsImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.pluginsImageList.ImageSize = new System.Drawing.Size(16, 16); - this.pluginsImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // productsListView - // - this.productsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.productsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.productNameHeader, - this.productVersionHeader}); - this.productsListView.HideSelection = false; - this.productsListView.LargeImageList = this.productLargeImageList; - this.productsListView.Location = new System.Drawing.Point(6, 50); - this.productsListView.MultiSelect = false; - this.productsListView.Name = "productsListView"; - this.productsListView.ShowGroups = false; - this.productsListView.Size = new System.Drawing.Size(240, 471); - this.productsListView.SmallImageList = this.productImageList; - this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.productsListView.TabIndex = 18; - this.productsListView.UseCompatibleStateImageBehavior = false; - this.productsListView.View = System.Windows.Forms.View.Details; - this.productsListView.SelectedIndexChanged += new System.EventHandler(this.productsListView_SelectedIndexChanged); - // - // productNameHeader - // - this.productNameHeader.Text = "Name"; - // - // productVersionHeader - // - this.productVersionHeader.Text = "Version"; - // - // productLargeImageList - // - this.productLargeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.productLargeImageList.ImageSize = new System.Drawing.Size(32, 32); - this.productLargeImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // productImageList - // - this.productImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.productImageList.ImageSize = new System.Drawing.Size(16, 16); - this.productImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // productsGroupBox - // - this.productsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.productsGroupBox.Controls.Add(this.showDetailsButton); - this.productsGroupBox.Controls.Add(this.showLargeIconsButton); - this.productsGroupBox.Controls.Add(this.installProductsButton); - this.productsGroupBox.Controls.Add(this.refreshButton); - this.productsGroupBox.Controls.Add(this.productsListView); - this.productsGroupBox.Location = new System.Drawing.Point(0, 0); - this.productsGroupBox.Name = "productsGroupBox"; - this.productsGroupBox.Size = new System.Drawing.Size(252, 558); - this.productsGroupBox.TabIndex = 19; - this.productsGroupBox.TabStop = false; - this.productsGroupBox.Text = "Products"; - // - // showDetailsButton - // - this.showDetailsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.showDetailsButton.Appearance = System.Windows.Forms.Appearance.Button; - this.showDetailsButton.Checked = true; - this.showDetailsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowDetails; - this.showDetailsButton.Location = new System.Drawing.Point(221, 19); - this.showDetailsButton.Name = "showDetailsButton"; - this.showDetailsButton.Size = new System.Drawing.Size(25, 25); - this.showDetailsButton.TabIndex = 22; - this.showDetailsButton.TabStop = true; - this.toolTip.SetToolTip(this.showDetailsButton, "Show Details"); - this.showDetailsButton.UseVisualStyleBackColor = true; - this.showDetailsButton.CheckedChanged += new System.EventHandler(this.showDetailsButton_CheckedChanged); - // - // showLargeIconsButton - // - this.showLargeIconsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.showLargeIconsButton.Appearance = System.Windows.Forms.Appearance.Button; - this.showLargeIconsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowIcons; - this.showLargeIconsButton.Location = new System.Drawing.Point(190, 19); - this.showLargeIconsButton.Name = "showLargeIconsButton"; - this.showLargeIconsButton.Size = new System.Drawing.Size(25, 25); - this.showLargeIconsButton.TabIndex = 21; - this.toolTip.SetToolTip(this.showLargeIconsButton, "Show Large Icons"); - this.showLargeIconsButton.UseVisualStyleBackColor = true; - this.showLargeIconsButton.CheckedChanged += new System.EventHandler(this.showLargeIconsButton_CheckedChanged); - // - // installProductsButton - // - this.installProductsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.installProductsButton.Enabled = false; - this.installProductsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Install; - this.installProductsButton.Location = new System.Drawing.Point(6, 527); - this.installProductsButton.Name = "installProductsButton"; - this.installProductsButton.Size = new System.Drawing.Size(146, 25); - this.installProductsButton.TabIndex = 20; - this.installProductsButton.Text = "Install Selected Product"; - this.installProductsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.installProductsButton, "Install all plugins for the selected product"); - this.installProductsButton.UseVisualStyleBackColor = true; - this.installProductsButton.Click += new System.EventHandler(this.installProductsButton_Click); - // - // refreshButton - // - this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; - this.refreshButton.Location = new System.Drawing.Point(6, 19); - this.refreshButton.Name = "refreshButton"; - this.refreshButton.Size = new System.Drawing.Size(72, 25); - this.refreshButton.TabIndex = 16; - this.refreshButton.Text = "Refresh"; - this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.refreshButton, "Refresh available products from HeuristicLab deployment service"); - this.refreshButton.UseVisualStyleBackColor = true; - this.refreshButton.Click += new System.EventHandler(this.refreshRemoteButton_Click); - // - // pluginsGroupBox - // - this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pluginsGroupBox.Controls.Add(this.pluginsListView); - this.pluginsGroupBox.Controls.Add(this.installPluginsButton); - this.pluginsGroupBox.Location = new System.Drawing.Point(-1, 0); - this.pluginsGroupBox.Name = "pluginsGroupBox"; - this.pluginsGroupBox.Size = new System.Drawing.Size(278, 558); - this.pluginsGroupBox.TabIndex = 20; - this.pluginsGroupBox.TabStop = false; - this.pluginsGroupBox.Text = "Plugins"; - // - // installPluginsButton - // - this.installPluginsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.installPluginsButton.Enabled = false; - this.installPluginsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Install; - this.installPluginsButton.Location = new System.Drawing.Point(6, 527); - this.installPluginsButton.Name = "installPluginsButton"; - this.installPluginsButton.Size = new System.Drawing.Size(140, 25); - this.installPluginsButton.TabIndex = 17; - this.installPluginsButton.Text = "Install Selected Plugins"; - this.installPluginsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.installPluginsButton, "Install only checked plugins"); - this.installPluginsButton.UseVisualStyleBackColor = true; - this.installPluginsButton.Click += new System.EventHandler(this.installPluginsButton_Click); - // - // splitContainer - // - this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.splitContainer.Location = new System.Drawing.Point(0, 0); - this.splitContainer.Name = "splitContainer"; - // - // splitContainer.Panel1 - // - this.splitContainer.Panel1.Controls.Add(this.productsGroupBox); - // - // splitContainer.Panel2 - // - this.splitContainer.Panel2.Controls.Add(this.pluginsGroupBox); - this.splitContainer.Size = new System.Drawing.Size(533, 558); - this.splitContainer.SplitterDistance = 252; - this.splitContainer.TabIndex = 21; - // - // RemotePluginInstallerView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.Controls.Add(this.splitContainer); - this.Name = "RemotePluginInstallerView"; - this.Size = new System.Drawing.Size(533, 558); - this.productsGroupBox.ResumeLayout(false); - this.pluginsGroupBox.ResumeLayout(false); - this.splitContainer.Panel1.ResumeLayout(false); - this.splitContainer.Panel2.ResumeLayout(false); - this.splitContainer.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private MultiSelectListView pluginsListView; - private System.Windows.Forms.ColumnHeader nameHeader; - private System.Windows.Forms.ColumnHeader versionHeader; - private System.Windows.Forms.ColumnHeader descriptionHeader; - private System.Windows.Forms.Button refreshButton; - private System.Windows.Forms.Button installPluginsButton; - private System.Windows.Forms.ListView productsListView; - private System.Windows.Forms.GroupBox productsGroupBox; - private System.Windows.Forms.GroupBox pluginsGroupBox; - private System.Windows.Forms.SplitContainer splitContainer; - private System.Windows.Forms.Button installProductsButton; - private System.Windows.Forms.ColumnHeader productNameHeader; - private System.Windows.Forms.ColumnHeader productVersionHeader; - private System.Windows.Forms.ImageList productImageList; - private System.Windows.Forms.ImageList pluginsImageList; - private System.Windows.Forms.RadioButton showDetailsButton; - private System.Windows.Forms.RadioButton showLargeIconsButton; - private System.Windows.Forms.ToolTip toolTip; - private System.Windows.Forms.ImageList productLargeImageList; - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class AvailablePluginsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.pluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.nameHeader = new System.Windows.Forms.ColumnHeader(); + this.versionHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginsImageList = new System.Windows.Forms.ImageList(this.components); + this.productsListView = new System.Windows.Forms.ListView(); + this.productNameHeader = new System.Windows.Forms.ColumnHeader(); + this.productVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.productLargeImageList = new System.Windows.Forms.ImageList(this.components); + this.productImageList = new System.Windows.Forms.ImageList(this.components); + this.productsGroupBox = new System.Windows.Forms.GroupBox(); + this.showDetailsButton = new System.Windows.Forms.RadioButton(); + this.showLargeIconsButton = new System.Windows.Forms.RadioButton(); + this.installProductsButton = new System.Windows.Forms.Button(); + this.refreshButton = new System.Windows.Forms.Button(); + this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); + this.installPluginsButton = new System.Windows.Forms.Button(); + this.splitContainer = new System.Windows.Forms.SplitContainer(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.productsGroupBox.SuspendLayout(); + this.pluginsGroupBox.SuspendLayout(); + this.splitContainer.Panel1.SuspendLayout(); + this.splitContainer.Panel2.SuspendLayout(); + this.splitContainer.SuspendLayout(); + this.SuspendLayout(); + // + // pluginsListView + // + this.pluginsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsListView.CheckBoxes = true; + this.pluginsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.nameHeader, + this.versionHeader, + this.descriptionHeader}); + this.pluginsListView.Location = new System.Drawing.Point(6, 19); + this.pluginsListView.Name = "pluginsListView"; + this.pluginsListView.ShowGroups = false; + this.pluginsListView.Size = new System.Drawing.Size(266, 502); + this.pluginsListView.SmallImageList = this.pluginsImageList; + this.pluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.pluginsListView.SuppressItemCheckedEvents = false; + this.pluginsListView.TabIndex = 0; + this.pluginsListView.UseCompatibleStateImageBehavior = false; + this.pluginsListView.View = System.Windows.Forms.View.Details; + this.pluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.remotePluginsListView_ItemChecked); + // + // nameHeader + // + this.nameHeader.Text = "Name"; + this.nameHeader.Width = 185; + // + // versionHeader + // + this.versionHeader.Text = "Version"; + this.versionHeader.Width = 93; + // + // descriptionHeader + // + this.descriptionHeader.Text = "Description"; + this.descriptionHeader.Width = 250; + // + // pluginsImageList + // + this.pluginsImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginsImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginsImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // productsListView + // + this.productsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.productNameHeader, + this.productVersionHeader}); + this.productsListView.HideSelection = false; + this.productsListView.LargeImageList = this.productLargeImageList; + this.productsListView.Location = new System.Drawing.Point(6, 50); + this.productsListView.MultiSelect = false; + this.productsListView.Name = "productsListView"; + this.productsListView.ShowGroups = false; + this.productsListView.Size = new System.Drawing.Size(240, 471); + this.productsListView.SmallImageList = this.productImageList; + this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.productsListView.TabIndex = 18; + this.productsListView.UseCompatibleStateImageBehavior = false; + this.productsListView.View = System.Windows.Forms.View.Details; + this.productsListView.SelectedIndexChanged += new System.EventHandler(this.productsListView_SelectedIndexChanged); + // + // productNameHeader + // + this.productNameHeader.Text = "Name"; + // + // productVersionHeader + // + this.productVersionHeader.Text = "Version"; + // + // productLargeImageList + // + this.productLargeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.productLargeImageList.ImageSize = new System.Drawing.Size(32, 32); + this.productLargeImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // productImageList + // + this.productImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.productImageList.ImageSize = new System.Drawing.Size(16, 16); + this.productImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // productsGroupBox + // + this.productsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsGroupBox.Controls.Add(this.showDetailsButton); + this.productsGroupBox.Controls.Add(this.showLargeIconsButton); + this.productsGroupBox.Controls.Add(this.installProductsButton); + this.productsGroupBox.Controls.Add(this.refreshButton); + this.productsGroupBox.Controls.Add(this.productsListView); + this.productsGroupBox.Location = new System.Drawing.Point(0, 0); + this.productsGroupBox.Name = "productsGroupBox"; + this.productsGroupBox.Size = new System.Drawing.Size(252, 558); + this.productsGroupBox.TabIndex = 19; + this.productsGroupBox.TabStop = false; + this.productsGroupBox.Text = "Products"; + // + // showDetailsButton + // + this.showDetailsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.showDetailsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showDetailsButton.Checked = true; + this.showDetailsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowDetails; + this.showDetailsButton.Location = new System.Drawing.Point(221, 19); + this.showDetailsButton.Name = "showDetailsButton"; + this.showDetailsButton.Size = new System.Drawing.Size(25, 25); + this.showDetailsButton.TabIndex = 22; + this.showDetailsButton.TabStop = true; + this.toolTip.SetToolTip(this.showDetailsButton, "Show Details"); + this.showDetailsButton.UseVisualStyleBackColor = true; + this.showDetailsButton.CheckedChanged += new System.EventHandler(this.showDetailsButton_CheckedChanged); + // + // showLargeIconsButton + // + this.showLargeIconsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.showLargeIconsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showLargeIconsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowIcons; + this.showLargeIconsButton.Location = new System.Drawing.Point(190, 19); + this.showLargeIconsButton.Name = "showLargeIconsButton"; + this.showLargeIconsButton.Size = new System.Drawing.Size(25, 25); + this.showLargeIconsButton.TabIndex = 21; + this.toolTip.SetToolTip(this.showLargeIconsButton, "Show Large Icons"); + this.showLargeIconsButton.UseVisualStyleBackColor = true; + this.showLargeIconsButton.CheckedChanged += new System.EventHandler(this.showLargeIconsButton_CheckedChanged); + // + // installProductsButton + // + this.installProductsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.installProductsButton.Enabled = false; + this.installProductsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Install; + this.installProductsButton.Location = new System.Drawing.Point(6, 527); + this.installProductsButton.Name = "installProductsButton"; + this.installProductsButton.Size = new System.Drawing.Size(146, 25); + this.installProductsButton.TabIndex = 20; + this.installProductsButton.Text = "Install Selected Product"; + this.installProductsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.installProductsButton, "Install all plugins for the selected product"); + this.installProductsButton.UseVisualStyleBackColor = true; + this.installProductsButton.Click += new System.EventHandler(this.installProductsButton_Click); + // + // refreshButton + // + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.refreshButton.Location = new System.Drawing.Point(6, 19); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(72, 25); + this.refreshButton.TabIndex = 16; + this.refreshButton.Text = "Refresh"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Refresh available products from HeuristicLab deployment service"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshRemoteButton_Click); + // + // pluginsGroupBox + // + this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsGroupBox.Controls.Add(this.pluginsListView); + this.pluginsGroupBox.Controls.Add(this.installPluginsButton); + this.pluginsGroupBox.Location = new System.Drawing.Point(-1, 0); + this.pluginsGroupBox.Name = "pluginsGroupBox"; + this.pluginsGroupBox.Size = new System.Drawing.Size(278, 558); + this.pluginsGroupBox.TabIndex = 20; + this.pluginsGroupBox.TabStop = false; + this.pluginsGroupBox.Text = "Plugins"; + // + // installPluginsButton + // + this.installPluginsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.installPluginsButton.Enabled = false; + this.installPluginsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Install; + this.installPluginsButton.Location = new System.Drawing.Point(6, 527); + this.installPluginsButton.Name = "installPluginsButton"; + this.installPluginsButton.Size = new System.Drawing.Size(140, 25); + this.installPluginsButton.TabIndex = 17; + this.installPluginsButton.Text = "Install Selected Plugins"; + this.installPluginsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.installPluginsButton, "Install only checked plugins"); + this.installPluginsButton.UseVisualStyleBackColor = true; + this.installPluginsButton.Click += new System.EventHandler(this.installPluginsButton_Click); + // + // splitContainer + // + this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.splitContainer.Location = new System.Drawing.Point(0, 0); + this.splitContainer.Name = "splitContainer"; + // + // splitContainer.Panel1 + // + this.splitContainer.Panel1.Controls.Add(this.productsGroupBox); + // + // splitContainer.Panel2 + // + this.splitContainer.Panel2.Controls.Add(this.pluginsGroupBox); + this.splitContainer.Size = new System.Drawing.Size(533, 558); + this.splitContainer.SplitterDistance = 252; + this.splitContainer.TabIndex = 21; + // + // RemotePluginInstallerView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.splitContainer); + this.Name = "RemotePluginInstallerView"; + this.Size = new System.Drawing.Size(533, 558); + this.productsGroupBox.ResumeLayout(false); + this.pluginsGroupBox.ResumeLayout(false); + this.splitContainer.Panel1.ResumeLayout(false); + this.splitContainer.Panel2.ResumeLayout(false); + this.splitContainer.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private MultiSelectListView pluginsListView; + private System.Windows.Forms.ColumnHeader nameHeader; + private System.Windows.Forms.ColumnHeader versionHeader; + private System.Windows.Forms.ColumnHeader descriptionHeader; + private System.Windows.Forms.Button refreshButton; + private System.Windows.Forms.Button installPluginsButton; + private System.Windows.Forms.ListView productsListView; + private System.Windows.Forms.GroupBox productsGroupBox; + private System.Windows.Forms.GroupBox pluginsGroupBox; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.Button installProductsButton; + private System.Windows.Forms.ColumnHeader productNameHeader; + private System.Windows.Forms.ColumnHeader productVersionHeader; + private System.Windows.Forms.ImageList productImageList; + private System.Windows.Forms.ImageList pluginsImageList; + private System.Windows.Forms.RadioButton showDetailsButton; + private System.Windows.Forms.RadioButton showLargeIconsButton; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ImageList productLargeImageList; + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/AvailablePluginsView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/AvailablePluginsView.cs index 72cb7cfe22..e820b25d1e 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/AvailablePluginsView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/AvailablePluginsView.cs @@ -1,329 +1,329 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class AvailablePluginsView : InstallationManagerControl { - private class RefreshBackgroundWorkerResult { - public IEnumerable RemotePlugins { get; set; } - public IEnumerable RemoteProducts { get; set; } - } - private class UpdateOrInstallPluginsBackgroundWorkerArgument { - public IEnumerable PluginsToUpdate { get; set; } - public IEnumerable PluginsToInstall { get; set; } - } - private const string PluginDiscoveryMessage = "Looking for new plugins..."; - private BackgroundWorker refreshServerPluginsBackgroundWorker; - private BackgroundWorker updateOrInstallPluginsBackgroundWorker; - - private IEnumerable products; - private IEnumerable plugins; - - private IEnumerable CheckedPlugins { - get { - return (from item in pluginsListView.Items.OfType() - where item.Checked - let plugin = item.Tag as IPluginDescription - where plugin != null - select plugin).ToList(); - } - } - - private InstallationManager installationManager; - public InstallationManager InstallationManager { - get { return installationManager; } - set { installationManager = value; } - } - private PluginManager pluginManager; - public PluginManager PluginManager { - get { return pluginManager; } - set { pluginManager = value; } - } - public AvailablePluginsView() { - InitializeComponent(); - productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); - productLargeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); - pluginsImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); - refreshServerPluginsBackgroundWorker = new BackgroundWorker(); - refreshServerPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(refreshServerPluginsBackgroundWorker_DoWork); - refreshServerPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshServerPluginsBackgroundWorker_RunWorkerCompleted); - - updateOrInstallPluginsBackgroundWorker = new BackgroundWorker(); - updateOrInstallPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updateOrInstallPluginsBackgroundWorker_DoWork); - updateOrInstallPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted); - } - - - #region event handlers for refresh server plugins background worker - void refreshServerPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - } else { - RefreshBackgroundWorkerResult refreshResult = (RefreshBackgroundWorkerResult)e.Result; - products = refreshResult.RemoteProducts; - plugins = refreshResult.RemotePlugins; - UpdateControl(); - } - StatusView.UnlockUI(); - StatusView.RemoveMessage(PluginDiscoveryMessage); - StatusView.HideProgressIndicator(); - } - - void refreshServerPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { - RefreshBackgroundWorkerResult result = new RefreshBackgroundWorkerResult(); - result.RemotePlugins = installationManager.GetRemotePluginList(); - result.RemoteProducts = installationManager.GetRemoteProductList(); - e.Result = result; - } - #endregion - #region event handlers for plugin update background worker - void updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - } else { - UpdateControl(); - } - StatusView.UnlockUI(); - StatusView.HideProgressIndicator(); - } - - void updateOrInstallPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { - UpdateOrInstallPluginsBackgroundWorkerArgument info = (UpdateOrInstallPluginsBackgroundWorkerArgument)e.Argument; - bool cancelled = false; - if (info.PluginsToInstall.Count() > 0) - installationManager.Install(info.PluginsToInstall, out cancelled); - if (info.PluginsToUpdate.Count() > 0) - installationManager.Update(info.PluginsToUpdate, out cancelled); - - if (!cancelled && (info.PluginsToInstall.Count() > 0 || info.PluginsToUpdate.Count() > 0)) - pluginManager.DiscoverAndCheckPlugins(); - } - #endregion - - - #region button events - private void refreshRemoteButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.ShowMessage(PluginDiscoveryMessage); - refreshServerPluginsBackgroundWorker.RunWorkerAsync(); - } - private void installPluginsButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument(); - // if there is a local plugin with same name and same major and minor version then it's an update - var pluginsToUpdate = from remotePlugin in CheckedPlugins - let matchingLocalPlugins = from localPlugin in pluginManager.Plugins - where localPlugin.Name == remotePlugin.Name - where localPlugin.Version.Major == remotePlugin.Version.Major - where localPlugin.Version.Minor == remotePlugin.Version.Minor - where IsNewerThan(remotePlugin, localPlugin) - select localPlugin - where matchingLocalPlugins.Count() > 0 - select remotePlugin; - - // otherwise install a new plugin - var pluginsToInstall = CheckedPlugins.Except(pluginsToUpdate); - - updateOrInstallInfo.PluginsToInstall = pluginsToInstall; - updateOrInstallInfo.PluginsToUpdate = pluginsToUpdate; - updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo); - } - private void installProductsButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument(); - var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; - // if there is a local plugin with same name and same major and minor version then it's an update - var pluginsToUpdate = from plugin in selectedProduct.Plugins - let matchingLocalPlugins = from localPlugin in pluginManager.Plugins - where localPlugin.Name == plugin.Name - where localPlugin.Version.Major == plugin.Version.Major - where localPlugin.Version.Minor == plugin.Version.Minor - where IsNewerThan(plugin, localPlugin) - select localPlugin - where matchingLocalPlugins.Count() > 0 - select plugin; - - // otherwise install a new plugin - var pluginsToInstall = selectedProduct.Plugins.Except(pluginsToUpdate); - - updateOrInstallInfo.PluginsToInstall = - pluginsToInstall - .Cast() - .ToList(); - updateOrInstallInfo.PluginsToUpdate = - pluginsToUpdate - .Cast() - .ToList(); - updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo); - } - - private void showLargeIconsButton_CheckedChanged(object sender, EventArgs e) { - productsListView.View = View.LargeIcon; - } - - private void showDetailsButton_CheckedChanged(object sender, EventArgs e) { - productsListView.View = View.Details; - } - - #endregion - - private void UpdateControl() { - // clear products view - List productItemsToDelete = new List(productsListView.Items.OfType()); - productItemsToDelete.ForEach(item => productsListView.Items.Remove(item)); - - // populate products list view - foreach (var product in products) { - var item = CreateListViewItem(product); - productsListView.Items.Add(item); - } - var allPluginsListViewItem = new ListViewItem(); - allPluginsListViewItem.Text = "All Plugins"; - allPluginsListViewItem.ImageIndex = 0; - productsListView.Items.Add(allPluginsListViewItem); - Util.ResizeColumns(productsListView.Columns.OfType()); - } - - private void UpdatePluginsList() { - pluginsListView.Items.Clear(); - - // populate plugins list - if (productsListView.SelectedItems.Count > 0) { - pluginsListView.SuppressItemCheckedEvents = true; - - var selectedItem = productsListView.SelectedItems[0]; - if (selectedItem.Text == "All Plugins") { - foreach (var plugin in plugins) { - var item = CreateListViewItem(plugin); - pluginsListView.Items.Add(item); - } - } else { - var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; - foreach (var plugin in selectedProduct.Plugins) { - var item = CreateListViewItem(plugin); - pluginsListView.Items.Add(item); - } - } - - Util.ResizeColumns(pluginsListView.Columns.OfType()); - pluginsListView.SuppressItemCheckedEvents = false; - } - } - - private ListViewItem CreateListViewItem(DeploymentService.ProductDescription product) { - ListViewItem item = new ListViewItem(new string[] { product.Name, product.Version.ToString() }); - item.Tag = product; - item.ImageIndex = 0; - return item; - } - - private ListViewItem CreateListViewItem(IPluginDescription plugin) { - ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); - item.Tag = plugin; - item.ImageIndex = 0; - return item; - } - - #region products list view events - private void productsListView_SelectedIndexChanged(object sender, EventArgs e) { - UpdatePluginsList(); - installProductsButton.Enabled = (productsListView.SelectedItems.Count > 0 && - productsListView.SelectedItems[0].Text != "All Plugins"); - } - #endregion - - #region item checked event handler - private void remotePluginsListView_ItemChecked(object sender, ItemCheckedEventArgs e) { - foreach (ListViewItem item in pluginsListView.SelectedItems) { - IPluginDescription plugin = (IPluginDescription)item.Tag; - if (e.Item.Checked) - HandlePluginChecked(plugin); - else - HandlePluginUnchecked(plugin); - } - installPluginsButton.Enabled = pluginsListView.CheckedItems.Count > 0; - } - - private void HandlePluginUnchecked(IPluginDescription plugin) { - // also uncheck all dependent plugins - List modifiedItems = new List(); - modifiedItems.AddRange(FindItemsForPlugin(plugin)); - var dependentPlugins = Util.GetAllDependents(plugin, plugins); - foreach (var dependentPlugin in dependentPlugins) { - // there can be multiple entries for a single plugin in different groups - foreach (var item in FindItemsForPlugin(dependentPlugin)) { - if (item != null && item.Checked) { - if (!modifiedItems.Contains(item)) - modifiedItems.Add(item); - } - } - } - pluginsListView.UncheckItems(modifiedItems); - } - - private void HandlePluginChecked(IPluginDescription plugin) { - // also check all dependencies - List modifiedItems = new List(); - modifiedItems.AddRange(FindItemsForPlugin(plugin)); - foreach (var dep in Util.GetAllDependencies(plugin)) { - // there can be multiple entries for a single plugin in different groups - foreach (ListViewItem item in FindItemsForPlugin(dep)) { - if (item != null && !item.Checked) { - if (!modifiedItems.Contains(item)) - modifiedItems.Add(item); - } - } - } - pluginsListView.CheckItems(modifiedItems); - } - - #endregion - - #region helper methods - private IEnumerable FindItemsForPlugin(IPluginDescription plugin) { - return (from item in pluginsListView.Items.OfType() - let otherPlugin = item.Tag as IPluginDescription - where otherPlugin != null && otherPlugin.Name == plugin.Name && otherPlugin.Version == plugin.Version - select item); - } - - // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 - private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { - // newer: build version is higher, or if build version is the same revision is higher - return plugin1.Version.Build > plugin2.Version.Build || - (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); - } - #endregion - - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class AvailablePluginsView : InstallationManagerControl { + private class RefreshBackgroundWorkerResult { + public IEnumerable RemotePlugins { get; set; } + public IEnumerable RemoteProducts { get; set; } + } + private class UpdateOrInstallPluginsBackgroundWorkerArgument { + public IEnumerable PluginsToUpdate { get; set; } + public IEnumerable PluginsToInstall { get; set; } + } + private const string PluginDiscoveryMessage = "Looking for new plugins..."; + private BackgroundWorker refreshServerPluginsBackgroundWorker; + private BackgroundWorker updateOrInstallPluginsBackgroundWorker; + + private IEnumerable products; + private IEnumerable plugins; + + private IEnumerable CheckedPlugins { + get { + return (from item in pluginsListView.Items.OfType() + where item.Checked + let plugin = item.Tag as IPluginDescription + where plugin != null + select plugin).ToList(); + } + } + + private InstallationManager installationManager; + public InstallationManager InstallationManager { + get { return installationManager; } + set { installationManager = value; } + } + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { pluginManager = value; } + } + public AvailablePluginsView() { + InitializeComponent(); + productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); + productLargeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); + pluginsImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + refreshServerPluginsBackgroundWorker = new BackgroundWorker(); + refreshServerPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(refreshServerPluginsBackgroundWorker_DoWork); + refreshServerPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshServerPluginsBackgroundWorker_RunWorkerCompleted); + + updateOrInstallPluginsBackgroundWorker = new BackgroundWorker(); + updateOrInstallPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updateOrInstallPluginsBackgroundWorker_DoWork); + updateOrInstallPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted); + } + + + #region event handlers for refresh server plugins background worker + void refreshServerPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + RefreshBackgroundWorkerResult refreshResult = (RefreshBackgroundWorkerResult)e.Result; + products = refreshResult.RemoteProducts; + plugins = refreshResult.RemotePlugins; + UpdateControl(); + } + StatusView.UnlockUI(); + StatusView.RemoveMessage(PluginDiscoveryMessage); + StatusView.HideProgressIndicator(); + } + + void refreshServerPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + RefreshBackgroundWorkerResult result = new RefreshBackgroundWorkerResult(); + result.RemotePlugins = installationManager.GetRemotePluginList(); + result.RemoteProducts = installationManager.GetRemoteProductList(); + e.Result = result; + } + #endregion + #region event handlers for plugin update background worker + void updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + UpdateControl(); + } + StatusView.UnlockUI(); + StatusView.HideProgressIndicator(); + } + + void updateOrInstallPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + UpdateOrInstallPluginsBackgroundWorkerArgument info = (UpdateOrInstallPluginsBackgroundWorkerArgument)e.Argument; + bool cancelled = false; + if (info.PluginsToInstall.Count() > 0) + installationManager.Install(info.PluginsToInstall, out cancelled); + if (info.PluginsToUpdate.Count() > 0) + installationManager.Update(info.PluginsToUpdate, out cancelled); + + if (!cancelled && (info.PluginsToInstall.Count() > 0 || info.PluginsToUpdate.Count() > 0)) + pluginManager.DiscoverAndCheckPlugins(); + } + #endregion + + + #region button events + private void refreshRemoteButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(PluginDiscoveryMessage); + refreshServerPluginsBackgroundWorker.RunWorkerAsync(); + } + private void installPluginsButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in CheckedPlugins + let matchingLocalPlugins = from localPlugin in pluginManager.Plugins + where localPlugin.Name == remotePlugin.Name + where localPlugin.Version.Major == remotePlugin.Version.Major + where localPlugin.Version.Minor == remotePlugin.Version.Minor + where IsNewerThan(remotePlugin, localPlugin) + select localPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + + // otherwise install a new plugin + var pluginsToInstall = CheckedPlugins.Except(pluginsToUpdate); + + updateOrInstallInfo.PluginsToInstall = pluginsToInstall; + updateOrInstallInfo.PluginsToUpdate = pluginsToUpdate; + updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo); + } + private void installProductsButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument(); + var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from plugin in selectedProduct.Plugins + let matchingLocalPlugins = from localPlugin in pluginManager.Plugins + where localPlugin.Name == plugin.Name + where localPlugin.Version.Major == plugin.Version.Major + where localPlugin.Version.Minor == plugin.Version.Minor + where IsNewerThan(plugin, localPlugin) + select localPlugin + where matchingLocalPlugins.Count() > 0 + select plugin; + + // otherwise install a new plugin + var pluginsToInstall = selectedProduct.Plugins.Except(pluginsToUpdate); + + updateOrInstallInfo.PluginsToInstall = + pluginsToInstall + .Cast() + .ToList(); + updateOrInstallInfo.PluginsToUpdate = + pluginsToUpdate + .Cast() + .ToList(); + updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo); + } + + private void showLargeIconsButton_CheckedChanged(object sender, EventArgs e) { + productsListView.View = View.LargeIcon; + } + + private void showDetailsButton_CheckedChanged(object sender, EventArgs e) { + productsListView.View = View.Details; + } + + #endregion + + private void UpdateControl() { + // clear products view + List productItemsToDelete = new List(productsListView.Items.OfType()); + productItemsToDelete.ForEach(item => productsListView.Items.Remove(item)); + + // populate products list view + foreach (var product in products) { + var item = CreateListViewItem(product); + productsListView.Items.Add(item); + } + var allPluginsListViewItem = new ListViewItem(); + allPluginsListViewItem.Text = "All Plugins"; + allPluginsListViewItem.ImageIndex = 0; + productsListView.Items.Add(allPluginsListViewItem); + Util.ResizeColumns(productsListView.Columns.OfType()); + } + + private void UpdatePluginsList() { + pluginsListView.Items.Clear(); + + // populate plugins list + if (productsListView.SelectedItems.Count > 0) { + pluginsListView.SuppressItemCheckedEvents = true; + + var selectedItem = productsListView.SelectedItems[0]; + if (selectedItem.Text == "All Plugins") { + foreach (var plugin in plugins) { + var item = CreateListViewItem(plugin); + pluginsListView.Items.Add(item); + } + } else { + var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; + foreach (var plugin in selectedProduct.Plugins) { + var item = CreateListViewItem(plugin); + pluginsListView.Items.Add(item); + } + } + + Util.ResizeColumns(pluginsListView.Columns.OfType()); + pluginsListView.SuppressItemCheckedEvents = false; + } + } + + private ListViewItem CreateListViewItem(DeploymentService.ProductDescription product) { + ListViewItem item = new ListViewItem(new string[] { product.Name, product.Version.ToString() }); + item.Tag = product; + item.ImageIndex = 0; + return item; + } + + private ListViewItem CreateListViewItem(IPluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + return item; + } + + #region products list view events + private void productsListView_SelectedIndexChanged(object sender, EventArgs e) { + UpdatePluginsList(); + installProductsButton.Enabled = (productsListView.SelectedItems.Count > 0 && + productsListView.SelectedItems[0].Text != "All Plugins"); + } + #endregion + + #region item checked event handler + private void remotePluginsListView_ItemChecked(object sender, ItemCheckedEventArgs e) { + foreach (ListViewItem item in pluginsListView.SelectedItems) { + IPluginDescription plugin = (IPluginDescription)item.Tag; + if (e.Item.Checked) + HandlePluginChecked(plugin); + else + HandlePluginUnchecked(plugin); + } + installPluginsButton.Enabled = pluginsListView.CheckedItems.Count > 0; + } + + private void HandlePluginUnchecked(IPluginDescription plugin) { + // also uncheck all dependent plugins + List modifiedItems = new List(); + modifiedItems.AddRange(FindItemsForPlugin(plugin)); + var dependentPlugins = Util.GetAllDependents(plugin, plugins); + foreach (var dependentPlugin in dependentPlugins) { + // there can be multiple entries for a single plugin in different groups + foreach (var item in FindItemsForPlugin(dependentPlugin)) { + if (item != null && item.Checked) { + if (!modifiedItems.Contains(item)) + modifiedItems.Add(item); + } + } + } + pluginsListView.UncheckItems(modifiedItems); + } + + private void HandlePluginChecked(IPluginDescription plugin) { + // also check all dependencies + List modifiedItems = new List(); + modifiedItems.AddRange(FindItemsForPlugin(plugin)); + foreach (var dep in Util.GetAllDependencies(plugin)) { + // there can be multiple entries for a single plugin in different groups + foreach (ListViewItem item in FindItemsForPlugin(dep)) { + if (item != null && !item.Checked) { + if (!modifiedItems.Contains(item)) + modifiedItems.Add(item); + } + } + } + pluginsListView.CheckItems(modifiedItems); + } + + #endregion + + #region helper methods + private IEnumerable FindItemsForPlugin(IPluginDescription plugin) { + return (from item in pluginsListView.Items.OfType() + let otherPlugin = item.Tag as IPluginDescription + where otherPlugin != null && otherPlugin.Name == plugin.Name && otherPlugin.Version == plugin.Version + select item); + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + #endregion + + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/BasicUpdateView.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/BasicUpdateView.Designer.cs index 79b02ea182..5ca1f52a62 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/BasicUpdateView.Designer.cs @@ -1,82 +1,82 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class BasicUpdateView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.updateAndInstallButton = new System.Windows.Forms.Button(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.SuspendLayout(); - // - // updateAndInstallButton - // - this.updateAndInstallButton.Anchor = System.Windows.Forms.AnchorStyles.None; - this.updateAndInstallButton.Image = HeuristicLab.PluginInfrastructure.Resources.Internet; - this.updateAndInstallButton.Location = new System.Drawing.Point(3, 2); - this.updateAndInstallButton.Name = "updateAndInstallButton"; - this.updateAndInstallButton.Size = new System.Drawing.Size(155, 50); - this.updateAndInstallButton.TabIndex = 0; - this.updateAndInstallButton.Text = "Find and Install Updates"; - this.updateAndInstallButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; - this.toolTip.SetToolTip(this.updateAndInstallButton, "Find, download and install updates for all installed plugins."); - this.updateAndInstallButton.UseVisualStyleBackColor = true; - this.updateAndInstallButton.Click += new System.EventHandler(this.updateAndInstallButton_Click); - // - // BasicUpdateView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.Controls.Add(this.updateAndInstallButton); - this.Name = "BasicUpdateView"; - this.Size = new System.Drawing.Size(163, 55); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button updateAndInstallButton; - private System.Windows.Forms.ToolTip toolTip; - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class BasicUpdateView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.updateAndInstallButton = new System.Windows.Forms.Button(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.SuspendLayout(); + // + // updateAndInstallButton + // + this.updateAndInstallButton.Anchor = System.Windows.Forms.AnchorStyles.None; + this.updateAndInstallButton.Image = HeuristicLab.PluginInfrastructure.Resources.Internet; + this.updateAndInstallButton.Location = new System.Drawing.Point(3, 2); + this.updateAndInstallButton.Name = "updateAndInstallButton"; + this.updateAndInstallButton.Size = new System.Drawing.Size(155, 50); + this.updateAndInstallButton.TabIndex = 0; + this.updateAndInstallButton.Text = "Find and Install Updates"; + this.updateAndInstallButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; + this.toolTip.SetToolTip(this.updateAndInstallButton, "Find, download and install updates for all installed plugins."); + this.updateAndInstallButton.UseVisualStyleBackColor = true; + this.updateAndInstallButton.Click += new System.EventHandler(this.updateAndInstallButton_Click); + // + // BasicUpdateView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.updateAndInstallButton); + this.Name = "BasicUpdateView"; + this.Size = new System.Drawing.Size(163, 55); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button updateAndInstallButton; + private System.Windows.Forms.ToolTip toolTip; + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/BasicUpdateView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/BasicUpdateView.cs index 9976a108bd..7684c0cb4b 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/BasicUpdateView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/BasicUpdateView.cs @@ -1,108 +1,108 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class BasicUpdateView : InstallationManagerControl { - private BackgroundWorker updatePluginsBackgroundWorker; - private const string CheckingPluginsMessage = "Checking for updated plugins..."; - private const string NoUpdatesAvailableMessage = "No updates available."; - - private PluginManager pluginManager; - public PluginManager PluginManager { - get { return pluginManager; } - set { pluginManager = value; } - } - - private InstallationManager installationManager; - public InstallationManager InstallationManager { - get { return installationManager; } - set { installationManager = value; } - } - - public BasicUpdateView() { - InitializeComponent(); - updatePluginsBackgroundWorker = new BackgroundWorker(); - updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); - updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); - } - - #region event handlers for update plugins backgroundworker - void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - } else if (e.Cancelled) { - StatusView.ShowMessage(NoUpdatesAvailableMessage); - } - StatusView.RemoveMessage(CheckingPluginsMessage); - StatusView.HideProgressIndicator(); - StatusView.UnlockUI(); - } - - void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { - IEnumerable installedPlugins = (IEnumerable)e.Argument; - var remotePlugins = installationManager.GetRemotePluginList(); - // if there is a local plugin with same name and same major and minor version then it's an update - var pluginsToUpdate = from remotePlugin in remotePlugins - let matchingLocalPlugins = from installedPlugin in installedPlugins - where installedPlugin.Name == remotePlugin.Name - where installedPlugin.Version.Major == remotePlugin.Version.Major - where installedPlugin.Version.Minor == remotePlugin.Version.Minor - where IsNewerThan(remotePlugin, installedPlugin) - select installedPlugin - where matchingLocalPlugins.Count() > 0 - select remotePlugin; - if (pluginsToUpdate.Count() > 0) { - bool cancelled; - installationManager.Update(pluginsToUpdate, out cancelled); - if (!cancelled) - pluginManager.DiscoverAndCheckPlugins(); - e.Cancel = false; - } else { - e.Cancel = true; - } - } - - // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 - private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { - // newer: build version is higher, or if build version is the same revision is higher - return plugin1.Version.Build > plugin2.Version.Build || - (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); - } - - #endregion - private void updateAndInstallButton_Click(object sender, EventArgs e) { - var installedPlugins = pluginManager.Plugins.OfType().ToList(); - updatePluginsBackgroundWorker.RunWorkerAsync(installedPlugins); - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.RemoveMessage(NoUpdatesAvailableMessage); - StatusView.ShowMessage(CheckingPluginsMessage); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class BasicUpdateView : InstallationManagerControl { + private BackgroundWorker updatePluginsBackgroundWorker; + private const string CheckingPluginsMessage = "Checking for updated plugins..."; + private const string NoUpdatesAvailableMessage = "No updates available."; + + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { pluginManager = value; } + } + + private InstallationManager installationManager; + public InstallationManager InstallationManager { + get { return installationManager; } + set { installationManager = value; } + } + + public BasicUpdateView() { + InitializeComponent(); + updatePluginsBackgroundWorker = new BackgroundWorker(); + updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); + updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); + } + + #region event handlers for update plugins backgroundworker + void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else if (e.Cancelled) { + StatusView.ShowMessage(NoUpdatesAvailableMessage); + } + StatusView.RemoveMessage(CheckingPluginsMessage); + StatusView.HideProgressIndicator(); + StatusView.UnlockUI(); + } + + void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable installedPlugins = (IEnumerable)e.Argument; + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in installedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + if (pluginsToUpdate.Count() > 0) { + bool cancelled; + installationManager.Update(pluginsToUpdate, out cancelled); + if (!cancelled) + pluginManager.DiscoverAndCheckPlugins(); + e.Cancel = false; + } else { + e.Cancel = true; + } + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + + #endregion + private void updateAndInstallButton_Click(object sender, EventArgs e) { + var installedPlugins = pluginManager.Plugins.OfType().ToList(); + updatePluginsBackgroundWorker.RunWorkerAsync(installedPlugins); + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.RemoveMessage(NoUpdatesAvailableMessage); + StatusView.ShowMessage(CheckingPluginsMessage); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConfirmationDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConfirmationDialog.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/ConfirmationDialog.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConfirmationDialog.Designer.cs index c4395077b7..dee3b47326 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConfirmationDialog.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConfirmationDialog.Designer.cs @@ -1,163 +1,163 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class ConfirmationDialog { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfirmationDialog)); - this.informationTextBox = new System.Windows.Forms.RichTextBox(); - this.messageLabel = new System.Windows.Forms.Label(); - this.okButton = new System.Windows.Forms.Button(); - this.cancelButton = new System.Windows.Forms.Button(); - this.icon = new System.Windows.Forms.PictureBox(); - this.panel1 = new System.Windows.Forms.Panel(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - ((System.ComponentModel.ISupportInitialize)(this.icon)).BeginInit(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // informationTextBox - // - this.informationTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.informationTextBox.BackColor = System.Drawing.SystemColors.HighlightText; - this.informationTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.informationTextBox.Location = new System.Drawing.Point(105, 46); - this.informationTextBox.Name = "informationTextBox"; - this.informationTextBox.ReadOnly = true; - this.informationTextBox.Size = new System.Drawing.Size(301, 181); - this.informationTextBox.TabIndex = 0; - this.informationTextBox.Text = ""; - // - // messageLabel - // - this.messageLabel.AutoSize = true; - this.messageLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.messageLabel.Location = new System.Drawing.Point(13, 13); - this.messageLabel.Name = "messageLabel"; - this.messageLabel.Size = new System.Drawing.Size(0, 13); - this.messageLabel.TabIndex = 1; - // - // okButton - // - this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.okButton.Location = new System.Drawing.Point(250, 14); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(75, 23); - this.okButton.TabIndex = 2; - this.okButton.Text = "&OK"; - this.toolTip.SetToolTip(this.okButton, "Confirm Action"); - this.okButton.UseVisualStyleBackColor = true; - this.okButton.Click += new System.EventHandler(this.okButton_Click); - // - // cancelButton - // - this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Location = new System.Drawing.Point(331, 14); - this.cancelButton.Name = "cancelButton"; - this.cancelButton.Size = new System.Drawing.Size(75, 23); - this.cancelButton.TabIndex = 3; - this.cancelButton.Text = "&Cancel"; - this.toolTip.SetToolTip(this.cancelButton, "Cancel Action"); - this.cancelButton.UseVisualStyleBackColor = true; - this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); - // - // icon - // - this.icon.Location = new System.Drawing.Point(31, 66); - this.icon.Name = "icon"; - this.icon.Size = new System.Drawing.Size(47, 50); - this.icon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.icon.TabIndex = 4; - this.icon.TabStop = false; - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.BackColor = System.Drawing.SystemColors.Control; - this.panel1.Controls.Add(this.okButton); - this.panel1.Controls.Add(this.cancelButton); - this.panel1.Location = new System.Drawing.Point(0, 233); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(418, 50); - this.panel1.TabIndex = 6; - // - // ConfirmationDialog - // - this.AcceptButton = this.okButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.BackColor = System.Drawing.SystemColors.HighlightText; - this.CancelButton = this.cancelButton; - this.ClientSize = new System.Drawing.Size(418, 282); - this.Controls.Add(this.panel1); - this.Controls.Add(this.icon); - this.Controls.Add(this.messageLabel); - this.Controls.Add(this.informationTextBox); - this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ConfirmationDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "ConfirmationDialog"; - ((System.ComponentModel.ISupportInitialize)(this.icon)).EndInit(); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.RichTextBox informationTextBox; - private System.Windows.Forms.Label messageLabel; - private System.Windows.Forms.Button okButton; - private System.Windows.Forms.Button cancelButton; - private System.Windows.Forms.PictureBox icon; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ToolTip toolTip; - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class ConfirmationDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfirmationDialog)); + this.informationTextBox = new System.Windows.Forms.RichTextBox(); + this.messageLabel = new System.Windows.Forms.Label(); + this.okButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.icon = new System.Windows.Forms.PictureBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + ((System.ComponentModel.ISupportInitialize)(this.icon)).BeginInit(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // informationTextBox + // + this.informationTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.informationTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.informationTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.informationTextBox.Location = new System.Drawing.Point(105, 46); + this.informationTextBox.Name = "informationTextBox"; + this.informationTextBox.ReadOnly = true; + this.informationTextBox.Size = new System.Drawing.Size(301, 181); + this.informationTextBox.TabIndex = 0; + this.informationTextBox.Text = ""; + // + // messageLabel + // + this.messageLabel.AutoSize = true; + this.messageLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.messageLabel.Location = new System.Drawing.Point(13, 13); + this.messageLabel.Name = "messageLabel"; + this.messageLabel.Size = new System.Drawing.Size(0, 13); + this.messageLabel.TabIndex = 1; + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.Location = new System.Drawing.Point(250, 14); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 2; + this.okButton.Text = "&OK"; + this.toolTip.SetToolTip(this.okButton, "Confirm Action"); + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(331, 14); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 3; + this.cancelButton.Text = "&Cancel"; + this.toolTip.SetToolTip(this.cancelButton, "Cancel Action"); + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // icon + // + this.icon.Location = new System.Drawing.Point(31, 66); + this.icon.Name = "icon"; + this.icon.Size = new System.Drawing.Size(47, 50); + this.icon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.icon.TabIndex = 4; + this.icon.TabStop = false; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.Control; + this.panel1.Controls.Add(this.okButton); + this.panel1.Controls.Add(this.cancelButton); + this.panel1.Location = new System.Drawing.Point(0, 233); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(418, 50); + this.panel1.TabIndex = 6; + // + // ConfirmationDialog + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.SystemColors.HighlightText; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(418, 282); + this.Controls.Add(this.panel1); + this.Controls.Add(this.icon); + this.Controls.Add(this.messageLabel); + this.Controls.Add(this.informationTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ConfirmationDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "ConfirmationDialog"; + ((System.ComponentModel.ISupportInitialize)(this.icon)).EndInit(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox informationTextBox; + private System.Windows.Forms.Label messageLabel; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.PictureBox icon; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolTip toolTip; + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConfirmationDialog.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConfirmationDialog.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/ConfirmationDialog.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConfirmationDialog.cs index ede08854c3..276e294157 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConfirmationDialog.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConfirmationDialog.cs @@ -1,50 +1,50 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class ConfirmationDialog : Form { - public ConfirmationDialog() - : base() { - InitializeComponent(); - icon.Image = System.Drawing.SystemIcons.Exclamation.ToBitmap(); - DialogResult = DialogResult.Cancel; - } - - public ConfirmationDialog(string caption, string message, string text) - : this() { - this.Text = caption; - messageLabel.Text = message; - informationTextBox.Text = text; - } - - private void okButton_Click(object sender, EventArgs e) { - DialogResult = DialogResult.OK; - this.Close(); - } - - private void cancelButton_Click(object sender, EventArgs e) { - DialogResult = DialogResult.Cancel; - this.Close(); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class ConfirmationDialog : Form { + public ConfirmationDialog() + : base() { + InitializeComponent(); + icon.Image = System.Drawing.SystemIcons.Exclamation.ToBitmap(); + DialogResult = DialogResult.Cancel; + } + + public ConfirmationDialog(string caption, string message, string text) + : this() { + this.Text = caption; + messageLabel.Text = message; + informationTextBox.Text = text; + } + + private void okButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.OK; + this.Close(); + } + + private void cancelButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.Cancel; + this.Close(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConnectionSetupView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConnectionSetupView.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/ConnectionSetupView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConnectionSetupView.Designer.cs index a5a087e7a0..fddfbb42b3 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConnectionSetupView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConnectionSetupView.Designer.cs @@ -1,212 +1,212 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class ConnectionSetupView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectionSetupView)); - this.urlTextBox = new System.Windows.Forms.TextBox(); - this.urlLabel = new System.Windows.Forms.Label(); - this.userLabel = new System.Windows.Forms.Label(); - this.userTextBox = new System.Windows.Forms.TextBox(); - this.passwordLabel = new System.Windows.Forms.Label(); - this.passwordTextBox = new System.Windows.Forms.TextBox(); - this.applyButton = new System.Windows.Forms.Button(); - this.savePasswordCheckbox = new System.Windows.Forms.CheckBox(); - this.cancelButton = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // urlTextBox - // - this.urlTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.urlTextBox.Location = new System.Drawing.Point(66, 15); - this.urlTextBox.Name = "urlTextBox"; - this.urlTextBox.Size = new System.Drawing.Size(410, 20); - this.urlTextBox.TabIndex = 0; - this.toolTip.SetToolTip(this.urlTextBox, "URL of HeuristicLab Plugin Deployment Service"); - // - // urlLabel - // - this.urlLabel.AutoSize = true; - this.urlLabel.Location = new System.Drawing.Point(12, 18); - this.urlLabel.Name = "urlLabel"; - this.urlLabel.Size = new System.Drawing.Size(48, 13); - this.urlLabel.TabIndex = 1; - this.urlLabel.Text = "&Address:"; - // - // userLabel - // - this.userLabel.AutoSize = true; - this.userLabel.Location = new System.Drawing.Point(6, 22); - this.userLabel.Name = "userLabel"; - this.userLabel.Size = new System.Drawing.Size(58, 13); - this.userLabel.TabIndex = 3; - this.userLabel.Text = "&Username:"; - // - // userTextBox - // - this.userTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.userTextBox.Location = new System.Drawing.Point(94, 19); - this.userTextBox.Name = "userTextBox"; - this.userTextBox.Size = new System.Drawing.Size(155, 20); - this.userTextBox.TabIndex = 0; - this.toolTip.SetToolTip(this.userTextBox, "Username used to connect to the HeuristicLab plugin deployment service"); - // - // passwordLabel - // - this.passwordLabel.AutoSize = true; - this.passwordLabel.Location = new System.Drawing.Point(6, 48); - this.passwordLabel.Name = "passwordLabel"; - this.passwordLabel.Size = new System.Drawing.Size(56, 13); - this.passwordLabel.TabIndex = 5; - this.passwordLabel.Text = "&Password:"; - // - // passwordTextBox - // - this.passwordTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.passwordTextBox.Location = new System.Drawing.Point(94, 45); - this.passwordTextBox.Name = "passwordTextBox"; - this.passwordTextBox.Size = new System.Drawing.Size(155, 20); - this.passwordTextBox.TabIndex = 1; - this.toolTip.SetToolTip(this.passwordTextBox, "Passwort used to connect to the HeuristicLab plugin deployment service"); - this.passwordTextBox.UseSystemPasswordChar = true; - // - // applyButton - // - this.applyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.applyButton.Location = new System.Drawing.Point(320, 148); - this.applyButton.Name = "applyButton"; - this.applyButton.Size = new System.Drawing.Size(75, 23); - this.applyButton.TabIndex = 2; - this.applyButton.Text = "&OK"; - this.toolTip.SetToolTip(this.applyButton, "Apply and save changes"); - this.applyButton.UseVisualStyleBackColor = true; - this.applyButton.Click += new System.EventHandler(this.applyButton_Click); - // - // savePasswordCheckbox - // - this.savePasswordCheckbox.AutoSize = true; - this.savePasswordCheckbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; - this.savePasswordCheckbox.Location = new System.Drawing.Point(6, 71); - this.savePasswordCheckbox.Name = "savePasswordCheckbox"; - this.savePasswordCheckbox.Size = new System.Drawing.Size(103, 17); - this.savePasswordCheckbox.TabIndex = 2; - this.savePasswordCheckbox.Text = "&Save Password:"; - this.toolTip.SetToolTip(this.savePasswordCheckbox, "Check to save the user credentials to disk"); - this.savePasswordCheckbox.UseVisualStyleBackColor = true; - // - // cancelButton - // - this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Location = new System.Drawing.Point(401, 148); - this.cancelButton.Name = "cancelButton"; - this.cancelButton.Size = new System.Drawing.Size(75, 23); - this.cancelButton.TabIndex = 3; - this.cancelButton.Text = "&Cancel"; - this.toolTip.SetToolTip(this.cancelButton, "Cancel and revert changes"); - this.cancelButton.UseVisualStyleBackColor = true; - this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.userTextBox); - this.groupBox1.Controls.Add(this.userLabel); - this.groupBox1.Controls.Add(this.savePasswordCheckbox); - this.groupBox1.Controls.Add(this.passwordTextBox); - this.groupBox1.Controls.Add(this.passwordLabel); - this.groupBox1.Location = new System.Drawing.Point(12, 41); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(255, 96); - this.groupBox1.TabIndex = 1; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "User Credentials"; - // - // ConnectionSetupView - // - this.AcceptButton = this.applyButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.CancelButton = this.cancelButton; - this.ClientSize = new System.Drawing.Size(488, 183); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.cancelButton); - this.Controls.Add(this.applyButton); - this.Controls.Add(this.urlLabel); - this.Controls.Add(this.urlTextBox); - this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ConnectionSetupView"; - this.ShowInTaskbar = false; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Edit Connection Settings"; - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox urlTextBox; - private System.Windows.Forms.Label urlLabel; - private System.Windows.Forms.Label userLabel; - private System.Windows.Forms.TextBox userTextBox; - private System.Windows.Forms.Label passwordLabel; - private System.Windows.Forms.TextBox passwordTextBox; - private System.Windows.Forms.Button applyButton; - private System.Windows.Forms.CheckBox savePasswordCheckbox; - private System.Windows.Forms.Button cancelButton; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.ToolTip toolTip; - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class ConnectionSetupView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectionSetupView)); + this.urlTextBox = new System.Windows.Forms.TextBox(); + this.urlLabel = new System.Windows.Forms.Label(); + this.userLabel = new System.Windows.Forms.Label(); + this.userTextBox = new System.Windows.Forms.TextBox(); + this.passwordLabel = new System.Windows.Forms.Label(); + this.passwordTextBox = new System.Windows.Forms.TextBox(); + this.applyButton = new System.Windows.Forms.Button(); + this.savePasswordCheckbox = new System.Windows.Forms.CheckBox(); + this.cancelButton = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // urlTextBox + // + this.urlTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.urlTextBox.Location = new System.Drawing.Point(66, 15); + this.urlTextBox.Name = "urlTextBox"; + this.urlTextBox.Size = new System.Drawing.Size(410, 20); + this.urlTextBox.TabIndex = 0; + this.toolTip.SetToolTip(this.urlTextBox, "URL of HeuristicLab Plugin Deployment Service"); + // + // urlLabel + // + this.urlLabel.AutoSize = true; + this.urlLabel.Location = new System.Drawing.Point(12, 18); + this.urlLabel.Name = "urlLabel"; + this.urlLabel.Size = new System.Drawing.Size(48, 13); + this.urlLabel.TabIndex = 1; + this.urlLabel.Text = "&Address:"; + // + // userLabel + // + this.userLabel.AutoSize = true; + this.userLabel.Location = new System.Drawing.Point(6, 22); + this.userLabel.Name = "userLabel"; + this.userLabel.Size = new System.Drawing.Size(58, 13); + this.userLabel.TabIndex = 3; + this.userLabel.Text = "&Username:"; + // + // userTextBox + // + this.userTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.userTextBox.Location = new System.Drawing.Point(94, 19); + this.userTextBox.Name = "userTextBox"; + this.userTextBox.Size = new System.Drawing.Size(155, 20); + this.userTextBox.TabIndex = 0; + this.toolTip.SetToolTip(this.userTextBox, "Username used to connect to the HeuristicLab plugin deployment service"); + // + // passwordLabel + // + this.passwordLabel.AutoSize = true; + this.passwordLabel.Location = new System.Drawing.Point(6, 48); + this.passwordLabel.Name = "passwordLabel"; + this.passwordLabel.Size = new System.Drawing.Size(56, 13); + this.passwordLabel.TabIndex = 5; + this.passwordLabel.Text = "&Password:"; + // + // passwordTextBox + // + this.passwordTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.passwordTextBox.Location = new System.Drawing.Point(94, 45); + this.passwordTextBox.Name = "passwordTextBox"; + this.passwordTextBox.Size = new System.Drawing.Size(155, 20); + this.passwordTextBox.TabIndex = 1; + this.toolTip.SetToolTip(this.passwordTextBox, "Passwort used to connect to the HeuristicLab plugin deployment service"); + this.passwordTextBox.UseSystemPasswordChar = true; + // + // applyButton + // + this.applyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.applyButton.Location = new System.Drawing.Point(320, 148); + this.applyButton.Name = "applyButton"; + this.applyButton.Size = new System.Drawing.Size(75, 23); + this.applyButton.TabIndex = 2; + this.applyButton.Text = "&OK"; + this.toolTip.SetToolTip(this.applyButton, "Apply and save changes"); + this.applyButton.UseVisualStyleBackColor = true; + this.applyButton.Click += new System.EventHandler(this.applyButton_Click); + // + // savePasswordCheckbox + // + this.savePasswordCheckbox.AutoSize = true; + this.savePasswordCheckbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.savePasswordCheckbox.Location = new System.Drawing.Point(6, 71); + this.savePasswordCheckbox.Name = "savePasswordCheckbox"; + this.savePasswordCheckbox.Size = new System.Drawing.Size(103, 17); + this.savePasswordCheckbox.TabIndex = 2; + this.savePasswordCheckbox.Text = "&Save Password:"; + this.toolTip.SetToolTip(this.savePasswordCheckbox, "Check to save the user credentials to disk"); + this.savePasswordCheckbox.UseVisualStyleBackColor = true; + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(401, 148); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 3; + this.cancelButton.Text = "&Cancel"; + this.toolTip.SetToolTip(this.cancelButton, "Cancel and revert changes"); + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.userTextBox); + this.groupBox1.Controls.Add(this.userLabel); + this.groupBox1.Controls.Add(this.savePasswordCheckbox); + this.groupBox1.Controls.Add(this.passwordTextBox); + this.groupBox1.Controls.Add(this.passwordLabel); + this.groupBox1.Location = new System.Drawing.Point(12, 41); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(255, 96); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "User Credentials"; + // + // ConnectionSetupView + // + this.AcceptButton = this.applyButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(488, 183); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.applyButton); + this.Controls.Add(this.urlLabel); + this.Controls.Add(this.urlTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ConnectionSetupView"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Edit Connection Settings"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox urlTextBox; + private System.Windows.Forms.Label urlLabel; + private System.Windows.Forms.Label userLabel; + private System.Windows.Forms.TextBox userTextBox; + private System.Windows.Forms.Label passwordLabel; + private System.Windows.Forms.TextBox passwordTextBox; + private System.Windows.Forms.Button applyButton; + private System.Windows.Forms.CheckBox savePasswordCheckbox; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ToolTip toolTip; + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConnectionSetupView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConnectionSetupView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/ConnectionSetupView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConnectionSetupView.cs index 12b927bd9d..47924a9481 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/ConnectionSetupView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/ConnectionSetupView.cs @@ -1,58 +1,58 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class ConnectionSetupView : Form { - public ConnectionSetupView() { - InitializeComponent(); - - urlTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation; - userTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; - passwordTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; - savePasswordCheckbox.Checked = !string.IsNullOrEmpty(passwordTextBox.Text); - } - - private void applyButton_Click(object sender, EventArgs e) { - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation = urlTextBox.Text; - if (!savePasswordCheckbox.Checked) { - // make sure we don't save username or password - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = string.Empty; - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = string.Empty; - // save - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.Save(); - // set user name and password for current process - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = userTextBox.Text; - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = passwordTextBox.Text; - } else { - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = userTextBox.Text; - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = passwordTextBox.Text; - HeuristicLab.PluginInfrastructure.Properties.Settings.Default.Save(); - } - Close(); - } - - private void cancelButton_Click(object sender, EventArgs e) { - Close(); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class ConnectionSetupView : Form { + public ConnectionSetupView() { + InitializeComponent(); + + urlTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation; + userTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; + passwordTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; + savePasswordCheckbox.Checked = !string.IsNullOrEmpty(passwordTextBox.Text); + } + + private void applyButton_Click(object sender, EventArgs e) { + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation = urlTextBox.Text; + if (!savePasswordCheckbox.Checked) { + // make sure we don't save username or password + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = string.Empty; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = string.Empty; + // save + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.Save(); + // set user name and password for current process + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = userTextBox.Text; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = passwordTextBox.Text; + } else { + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = userTextBox.Text; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = passwordTextBox.Text; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.Save(); + } + Close(); + } + + private void cancelButton_Click(object sender, EventArgs e) { + Close(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs index b96bb98159..69b32a50b0 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs @@ -1,63 +1,63 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System.Reflection; -using System.Security.Cryptography.X509Certificates; -using System.ServiceModel; - -namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { - /// - /// Factory class to generate administration service client instances for the deployment service. - /// - public static class AdminServiceClientFactory { - private static byte[] serverCrtData; - - /// - /// static constructor loads the embedded service certificate - /// - static AdminServiceClientFactory() { - var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer"); - serverCrtData = new byte[stream.Length]; - stream.Read(serverCrtData, 0, serverCrtData.Length); - } - - /// - /// Factory method to create new administration service clients for the deployment service. - /// Sets the connection string and user credentials from values provided in settings. - /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName - /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword - /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationnAdministrationAddress - /// - /// - /// A new instance of an adimistration service client - public static AdminServiceClient CreateClient() { - var client = new AdminServiceClient(); - client.ClientCredentials.UserName.UserName = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; - client.ClientCredentials.UserName.Password = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; - client.Endpoint.Address = new EndpointAddress(HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationAdministrationAddress); - client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom; - client.ClientCredentials.ServiceCertificate.Authentication.CustomCertificateValidator = - new DeploymentServerCertificateValidator(new X509Certificate2(serverCrtData)); - - return client; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + /// + /// Factory class to generate administration service client instances for the deployment service. + /// + public static class AdminServiceClientFactory { + private static byte[] serverCrtData; + + /// + /// static constructor loads the embedded service certificate + /// + static AdminServiceClientFactory() { + var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer"); + serverCrtData = new byte[stream.Length]; + stream.Read(serverCrtData, 0, serverCrtData.Length); + } + + /// + /// Factory method to create new administration service clients for the deployment service. + /// Sets the connection string and user credentials from values provided in settings. + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationnAdministrationAddress + /// + /// + /// A new instance of an adimistration service client + public static AdminServiceClient CreateClient() { + var client = new AdminServiceClient(); + client.ClientCredentials.UserName.UserName = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; + client.ClientCredentials.UserName.Password = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; + client.Endpoint.Address = new EndpointAddress(HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationAdministrationAddress); + client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom; + client.ClientCredentials.ServiceCertificate.Authentication.CustomCertificateValidator = + new DeploymentServerCertificateValidator(new X509Certificate2(serverCrtData)); + + return client; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs index a9b5186357..22b729b685 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs @@ -1,49 +1,49 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.IdentityModel.Selectors; -using System.IdentityModel.Tokens; -using System.Security.Cryptography.X509Certificates; - -namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { - internal class DeploymentServerCertificateValidator : X509CertificateValidator { - private X509Certificate2 allowedCertificate; - public DeploymentServerCertificateValidator(X509Certificate2 allowedCertificate) { - if (allowedCertificate == null) { - throw new ArgumentNullException("allowedCertificate"); - } - - this.allowedCertificate = allowedCertificate; - } - public override void Validate(X509Certificate2 certificate) { - // Check that there is a certificate. - if (certificate == null) { - throw new ArgumentNullException("certificate"); - } - - // Check that the certificate issuer matches the configured issuer - if (!allowedCertificate.Equals(certificate)) { - throw new SecurityTokenValidationException("Server certificate doesn't match."); - } - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.IdentityModel.Selectors; +using System.IdentityModel.Tokens; +using System.Security.Cryptography.X509Certificates; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + internal class DeploymentServerCertificateValidator : X509CertificateValidator { + private X509Certificate2 allowedCertificate; + public DeploymentServerCertificateValidator(X509Certificate2 allowedCertificate) { + if (allowedCertificate == null) { + throw new ArgumentNullException("allowedCertificate"); + } + + this.allowedCertificate = allowedCertificate; + } + public override void Validate(X509Certificate2 certificate) { + // Check that there is a certificate. + if (certificate == null) { + throw new ArgumentNullException("certificate"); + } + + // Check that the certificate issuer matches the configured issuer + if (!allowedCertificate.Equals(certificate)) { + throw new SecurityTokenValidationException("Server certificate doesn't match."); + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd index a93b521266..95bd1a5187 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd @@ -1,49 +1,49 @@ -@ECHO OFF - -SET HOST= -SET GENERATECONFIG= - -ECHO. -ECHO ******************************************************************************************* - -SET /P HOST=Which host should be used? [services.heuristiclab.com]: -IF "%HOST%"=="" SET HOST=services.heuristiclab.com - -SET /P GENERATECONFIG=Would you like to generate the configuration file? [y]: -IF "%GENERATECONFIG%"=="" SET GENERATECONFIG=y - -SET ARGS=http://%HOST%/Deployment-3.3/UpdateService.svc?wsdl http://%HOST%/Deployment-3.3/AdminService.svc?wsdl ^ -/out:ServiceClients ^ -/namespace:*,HeuristicLab.PluginInfrastructure.Advanced.DeploymentService ^ -/targetClientVersion:Version35 ^ -/syncOnly - -IF "%GENERATECONFIG%"=="y" ( - SET ARGS=%ARGS% /config:..\..\app.config /mergeConfig -) ELSE ( - SET ARGS=%ARGS% /noConfig -) - -ECHO. -ECHO Generating UpdateService and AdminService clients -ECHO. - -SETLOCAL ENABLEDELAYEDEXPANSION -svcutil.exe %ARGS% -ENDLOCAL - -ECHO. -ECHO --------------------------------------------------------------------------------------- -ECHO !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! -ECHO. -ECHO Following modifications have to be done manually: -ECHO * Change endpoint identity in app.config from "" to "", e.g. "" -ECHO. -ECHO !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! -ECHO --------------------------------------------------------------------------------------- -ECHO. -ECHO Generation of UpdateService and AdminService clients finished. -ECHO ******************************************************************************************* -ECHO. - -PAUSE +@ECHO OFF + +SET HOST= +SET GENERATECONFIG= + +ECHO. +ECHO ******************************************************************************************* + +SET /P HOST=Which host should be used? [services.heuristiclab.com]: +IF "%HOST%"=="" SET HOST=services.heuristiclab.com + +SET /P GENERATECONFIG=Would you like to generate the configuration file? [y]: +IF "%GENERATECONFIG%"=="" SET GENERATECONFIG=y + +SET ARGS=http://%HOST%/Deployment-3.3/UpdateService.svc?wsdl http://%HOST%/Deployment-3.3/AdminService.svc?wsdl ^ +/out:ServiceClients ^ +/namespace:*,HeuristicLab.PluginInfrastructure.Advanced.DeploymentService ^ +/targetClientVersion:Version35 ^ +/syncOnly + +IF "%GENERATECONFIG%"=="y" ( + SET ARGS=%ARGS% /config:..\..\app.config /mergeConfig +) ELSE ( + SET ARGS=%ARGS% /noConfig +) + +ECHO. +ECHO Generating UpdateService and AdminService clients +ECHO. + +SETLOCAL ENABLEDELAYEDEXPANSION +svcutil.exe %ARGS% +ENDLOCAL + +ECHO. +ECHO --------------------------------------------------------------------------------------- +ECHO !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! +ECHO. +ECHO Following modifications have to be done manually: +ECHO * Change endpoint identity in app.config from "" to "", e.g. "" +ECHO. +ECHO !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! +ECHO --------------------------------------------------------------------------------------- +ECHO. +ECHO Generation of UpdateService and AdminService clients finished. +ECHO ******************************************************************************************* +ECHO. + +PAUSE diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/PluginDescription.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/PluginDescription.cs index f550ed1400..fcd767a3f4 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/PluginDescription.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/PluginDescription.cs @@ -1,107 +1,107 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.Linq; - -namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { - // extension of auto-generated DataContract class PluginDescription - public partial class PluginDescription : IPluginDescription { - /// - /// Initializes an new instance of - /// with no dependencies, empty contact details and empty license text. - /// - /// Name of the plugin - /// Version of the plugin - public PluginDescription(string name, Version version) : this(name, version, new List()) { } - /// - /// Initializes a new instance of - /// with empty contact details and empty license text. - /// - /// Name of the plugin - /// Version of the plugin - /// Enumerable of dependencies of the plugin - public PluginDescription(string name, Version version, IEnumerable dependencies) - : this(name, version, dependencies, string.Empty, string.Empty, string.Empty) { - } - - /// - /// Initializes a new instance of . - /// - /// Name of the plugin - /// Version of the plugin - /// Enumerable of dependencies of the plugin - /// Name of the contact person for the plugin - /// E-mail of the contact person for the plugin - /// License text for the plugin - public PluginDescription(string name, Version version, IEnumerable dependencies, string contactName, string contactEmail, string licenseText) { - this.Name = name; - this.Version = version; - this.Dependencies = dependencies.ToArray(); - this.LicenseText = licenseText; - } - - #region IPluginDescription Members - /// - /// Gets the description of the plugin. Always string.Empty. - /// - public string Description { - get { return string.Empty; } - } - - /// - /// Gets an enumerable of dependencies of the plugin - /// - IEnumerable IPluginDescription.Dependencies { - get { - return Dependencies; - } - } - - /// - /// Gets and enumerable of files that are part of this pluing. Always empty. - /// - public IEnumerable Files { - get { return Enumerable.Empty(); } - } - - #endregion - - /// - /// ToString override - /// - /// String representation of the PluginDescription (name + version) - public override string ToString() { - return Name + " " + Version; - } - - public override bool Equals(object obj) { - PluginDescription other = obj as PluginDescription; - if (other == null) return false; - else return other.Name == this.Name && other.Version == this.Version; - } - - public override int GetHashCode() { - return Name.GetHashCode() + Version.GetHashCode(); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + // extension of auto-generated DataContract class PluginDescription + public partial class PluginDescription : IPluginDescription { + /// + /// Initializes an new instance of + /// with no dependencies, empty contact details and empty license text. + /// + /// Name of the plugin + /// Version of the plugin + public PluginDescription(string name, Version version) : this(name, version, new List()) { } + /// + /// Initializes a new instance of + /// with empty contact details and empty license text. + /// + /// Name of the plugin + /// Version of the plugin + /// Enumerable of dependencies of the plugin + public PluginDescription(string name, Version version, IEnumerable dependencies) + : this(name, version, dependencies, string.Empty, string.Empty, string.Empty) { + } + + /// + /// Initializes a new instance of . + /// + /// Name of the plugin + /// Version of the plugin + /// Enumerable of dependencies of the plugin + /// Name of the contact person for the plugin + /// E-mail of the contact person for the plugin + /// License text for the plugin + public PluginDescription(string name, Version version, IEnumerable dependencies, string contactName, string contactEmail, string licenseText) { + this.Name = name; + this.Version = version; + this.Dependencies = dependencies.ToArray(); + this.LicenseText = licenseText; + } + + #region IPluginDescription Members + /// + /// Gets the description of the plugin. Always string.Empty. + /// + public string Description { + get { return string.Empty; } + } + + /// + /// Gets an enumerable of dependencies of the plugin + /// + IEnumerable IPluginDescription.Dependencies { + get { + return Dependencies; + } + } + + /// + /// Gets and enumerable of files that are part of this pluing. Always empty. + /// + public IEnumerable Files { + get { return Enumerable.Empty(); } + } + + #endregion + + /// + /// ToString override + /// + /// String representation of the PluginDescription (name + version) + public override string ToString() { + return Name + " " + Version; + } + + public override bool Equals(object obj) { + PluginDescription other = obj as PluginDescription; + if (other == null) return false; + else return other.Name == this.Name && other.Version == this.Version; + } + + public override int GetHashCode() { + return Name.GetHashCode() + Version.GetHashCode(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/ProductDescription.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/ProductDescription.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/ProductDescription.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/ProductDescription.cs index 5aac2e4613..c0ea233fc4 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/ProductDescription.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/ProductDescription.cs @@ -1,54 +1,54 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.Linq; - -namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { - // extension of auto-generated DataContract class ProductDescription - /// - /// Product description as provided by the deployment service. - /// A product has a name, a version and a list of plugins that are part of the product. - /// - public partial class ProductDescription { - /// - /// Initializes a new instance of - /// - /// Name of the product - /// Version of the product - public ProductDescription(string name, Version version) - : this(name, version, new List()) { - } - - /// - /// Initializes a new instance of - /// - /// Name of the product - /// Version of the product - /// Enumerable of plugins of the product - public ProductDescription(string name, Version version, IEnumerable plugins) { - this.Name = name; - this.Version = version; - this.Plugins = plugins.ToArray(); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + // extension of auto-generated DataContract class ProductDescription + /// + /// Product description as provided by the deployment service. + /// A product has a name, a version and a list of plugins that are part of the product. + /// + public partial class ProductDescription { + /// + /// Initializes a new instance of + /// + /// Name of the product + /// Version of the product + public ProductDescription(string name, Version version) + : this(name, version, new List()) { + } + + /// + /// Initializes a new instance of + /// + /// Name of the product + /// Version of the product + /// Enumerable of plugins of the product + public ProductDescription(string name, Version version, IEnumerable plugins) { + this.Name = name; + this.Version = version; + this.Plugins = plugins.ToArray(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/ServiceClients.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/ServiceClients.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/ServiceClients.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/ServiceClients.cs index e1ef9493e7..eeba4da2d3 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/ServiceClients.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/ServiceClients.cs @@ -1,322 +1,322 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService -{ - using System.Runtime.Serialization; - - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="PluginDescription", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Deployment", IsReference=true)] - public partial class PluginDescription : object, System.Runtime.Serialization.IExtensibleDataObject - { - - private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - - private string ContactEmailField; - - private string ContactNameField; - - private HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] DependenciesField; - - private string LicenseTextField; - - private string NameField; - - private System.Version VersionField; - - public System.Runtime.Serialization.ExtensionDataObject ExtensionData - { - get - { - return this.extensionDataField; - } - set - { - this.extensionDataField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public string ContactEmail - { - get - { - return this.ContactEmailField; - } - set - { - this.ContactEmailField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public string ContactName - { - get - { - return this.ContactNameField; - } - set - { - this.ContactNameField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] Dependencies - { - get - { - return this.DependenciesField; - } - set - { - this.DependenciesField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public string LicenseText - { - get - { - return this.LicenseTextField; - } - set - { - this.LicenseTextField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public string Name - { - get - { - return this.NameField; - } - set - { - this.NameField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public System.Version Version - { - get - { - return this.VersionField; - } - set - { - this.VersionField = value; - } - } - } - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] - [System.Runtime.Serialization.DataContractAttribute(Name="ProductDescription", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Deployment")] - public partial class ProductDescription : object, System.Runtime.Serialization.IExtensibleDataObject - { - - private System.Runtime.Serialization.ExtensionDataObject extensionDataField; - - private string NameField; - - private HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] PluginsField; - - private System.Version VersionField; - - public System.Runtime.Serialization.ExtensionDataObject ExtensionData - { - get - { - return this.extensionDataField; - } - set - { - this.extensionDataField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public string Name - { - get - { - return this.NameField; - } - set - { - this.NameField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] Plugins - { - get - { - return this.PluginsField; - } - set - { - this.PluginsField = value; - } - } - - [System.Runtime.Serialization.DataMemberAttribute()] - public System.Version Version - { - get - { - return this.VersionField; - } - set - { - this.VersionField = value; - } - } - } - - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService")] - public interface IUpdateService - { - - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetPlugin", ReplyAction="http://tempuri.org/IUpdateService/GetPluginResponse")] - byte[] GetPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription description); - - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetProducts", ReplyAction="http://tempuri.org/IUpdateService/GetProductsResponse")] - HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[] GetProducts(); - - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetPlugins", ReplyAction="http://tempuri.org/IUpdateService/GetPluginsResponse")] - HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] GetPlugins(); - } - - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public interface IUpdateServiceChannel : HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService, System.ServiceModel.IClientChannel - { - } - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public partial class UpdateServiceClient : System.ServiceModel.ClientBase, HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService - { - - public UpdateServiceClient() - { - } - - public UpdateServiceClient(string endpointConfigurationName) : - base(endpointConfigurationName) - { - } - - public UpdateServiceClient(string endpointConfigurationName, string remoteAddress) : - base(endpointConfigurationName, remoteAddress) - { - } - - public UpdateServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : - base(endpointConfigurationName, remoteAddress) - { - } - - public UpdateServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : - base(binding, remoteAddress) - { - } - - public byte[] GetPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription description) - { - return base.Channel.GetPlugin(description); - } - - public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[] GetProducts() - { - return base.Channel.GetProducts(); - } - - public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] GetPlugins() - { - return base.Channel.GetPlugins(); - } - } - - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService")] - public interface IAdminService - { - - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeployProduct", ReplyAction="http://tempuri.org/IAdminService/DeployProductResponse")] - void DeployProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product); - - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeleteProduct", ReplyAction="http://tempuri.org/IAdminService/DeleteProductResponse")] - void DeleteProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product); - - [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeployPlugin", ReplyAction="http://tempuri.org/IAdminService/DeployPluginResponse")] - void DeployPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription plugin, byte[] zipFile); - } - - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public interface IAdminServiceChannel : HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService, System.ServiceModel.IClientChannel - { - } - - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] - public partial class AdminServiceClient : System.ServiceModel.ClientBase, HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService - { - - public AdminServiceClient() - { - } - - public AdminServiceClient(string endpointConfigurationName) : - base(endpointConfigurationName) - { - } - - public AdminServiceClient(string endpointConfigurationName, string remoteAddress) : - base(endpointConfigurationName, remoteAddress) - { - } - - public AdminServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : - base(endpointConfigurationName, remoteAddress) - { - } - - public AdminServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : - base(binding, remoteAddress) - { - } - - public void DeployProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product) - { - base.Channel.DeployProduct(product); - } - - public void DeleteProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product) - { - base.Channel.DeleteProduct(product); - } - - public void DeployPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription plugin, byte[] zipFile) - { - base.Channel.DeployPlugin(plugin, zipFile); - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService +{ + using System.Runtime.Serialization; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="PluginDescription", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Deployment", IsReference=true)] + public partial class PluginDescription : object, System.Runtime.Serialization.IExtensibleDataObject + { + + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private string ContactEmailField; + + private string ContactNameField; + + private HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] DependenciesField; + + private string LicenseTextField; + + private string NameField; + + private System.Version VersionField; + + public System.Runtime.Serialization.ExtensionDataObject ExtensionData + { + get + { + return this.extensionDataField; + } + set + { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string ContactEmail + { + get + { + return this.ContactEmailField; + } + set + { + this.ContactEmailField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string ContactName + { + get + { + return this.ContactNameField; + } + set + { + this.ContactNameField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] Dependencies + { + get + { + return this.DependenciesField; + } + set + { + this.DependenciesField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string LicenseText + { + get + { + return this.LicenseTextField; + } + set + { + this.LicenseTextField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Name + { + get + { + return this.NameField; + } + set + { + this.NameField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Version Version + { + get + { + return this.VersionField; + } + set + { + this.VersionField = value; + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="ProductDescription", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Deployment")] + public partial class ProductDescription : object, System.Runtime.Serialization.IExtensibleDataObject + { + + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private string NameField; + + private HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] PluginsField; + + private System.Version VersionField; + + public System.Runtime.Serialization.ExtensionDataObject ExtensionData + { + get + { + return this.extensionDataField; + } + set + { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Name + { + get + { + return this.NameField; + } + set + { + this.NameField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] Plugins + { + get + { + return this.PluginsField; + } + set + { + this.PluginsField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Version Version + { + get + { + return this.VersionField; + } + set + { + this.VersionField = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService")] + public interface IUpdateService + { + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetPlugin", ReplyAction="http://tempuri.org/IUpdateService/GetPluginResponse")] + byte[] GetPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription description); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetProducts", ReplyAction="http://tempuri.org/IUpdateService/GetProductsResponse")] + HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[] GetProducts(); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetPlugins", ReplyAction="http://tempuri.org/IUpdateService/GetPluginsResponse")] + HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] GetPlugins(); + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface IUpdateServiceChannel : HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService, System.ServiceModel.IClientChannel + { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class UpdateServiceClient : System.ServiceModel.ClientBase, HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService + { + + public UpdateServiceClient() + { + } + + public UpdateServiceClient(string endpointConfigurationName) : + base(endpointConfigurationName) + { + } + + public UpdateServiceClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public UpdateServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public UpdateServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) + { + } + + public byte[] GetPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription description) + { + return base.Channel.GetPlugin(description); + } + + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[] GetProducts() + { + return base.Channel.GetProducts(); + } + + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] GetPlugins() + { + return base.Channel.GetPlugins(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService")] + public interface IAdminService + { + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeployProduct", ReplyAction="http://tempuri.org/IAdminService/DeployProductResponse")] + void DeployProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeleteProduct", ReplyAction="http://tempuri.org/IAdminService/DeleteProductResponse")] + void DeleteProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeployPlugin", ReplyAction="http://tempuri.org/IAdminService/DeployPluginResponse")] + void DeployPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription plugin, byte[] zipFile); + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface IAdminServiceChannel : HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService, System.ServiceModel.IClientChannel + { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class AdminServiceClient : System.ServiceModel.ClientBase, HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService + { + + public AdminServiceClient() + { + } + + public AdminServiceClient(string endpointConfigurationName) : + base(endpointConfigurationName) + { + } + + public AdminServiceClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public AdminServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public AdminServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) + { + } + + public void DeployProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product) + { + base.Channel.DeployProduct(product); + } + + public void DeleteProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product) + { + base.Channel.DeleteProduct(product); + } + + public void DeployPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription plugin, byte[] zipFile) + { + base.Channel.DeployPlugin(plugin, zipFile); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs index 712aee611a..4e0b951092 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs @@ -1,62 +1,62 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System.Reflection; -using System.Security.Cryptography.X509Certificates; -using System.ServiceModel; - -namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { - /// - /// Factory class to generate update service client instances for the deployment service. - /// - public static class UpdateServiceClientFactory { - private static byte[] serverCrtData; - - /// - /// static constructor loads the embedded service certificate - /// - static UpdateServiceClientFactory() { - var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer"); - serverCrtData = new byte[stream.Length]; - stream.Read(serverCrtData, 0, serverCrtData.Length); - } - - /// - /// Factory method to create new update service clients for the deployment service. - /// Sets the connection string and user credentials from values provided in settings. - /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName - /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword - /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation - /// - /// - /// A new instance of an update service client - public static UpdateServiceClient CreateClient() { - var client = new UpdateServiceClient(); - client.ClientCredentials.UserName.UserName = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; - client.ClientCredentials.UserName.Password = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; - client.Endpoint.Address = new EndpointAddress(HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation); - client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom; - client.ClientCredentials.ServiceCertificate.Authentication.CustomCertificateValidator = - new DeploymentServerCertificateValidator(new X509Certificate2(serverCrtData)); - return client; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + /// + /// Factory class to generate update service client instances for the deployment service. + /// + public static class UpdateServiceClientFactory { + private static byte[] serverCrtData; + + /// + /// static constructor loads the embedded service certificate + /// + static UpdateServiceClientFactory() { + var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer"); + serverCrtData = new byte[stream.Length]; + stream.Read(serverCrtData, 0, serverCrtData.Length); + } + + /// + /// Factory method to create new update service clients for the deployment service. + /// Sets the connection string and user credentials from values provided in settings. + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation + /// + /// + /// A new instance of an update service client + public static UpdateServiceClient CreateClient() { + var client = new UpdateServiceClient(); + client.ClientCredentials.UserName.UserName = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; + client.ClientCredentials.UserName.Password = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; + client.Endpoint.Address = new EndpointAddress(HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation); + client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom; + client.ClientCredentials.ServiceCertificate.Authentication.CustomCertificateValidator = + new DeploymentServerCertificateValidator(new X509Certificate2(serverCrtData)); + return client; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/services.heuristiclab.com.cer b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/services.heuristiclab.com.cer similarity index 100% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/DeploymentService/services.heuristiclab.com.cer rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/DeploymentService/services.heuristiclab.com.cer diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/EditProductsView.Designer.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/EditProductsView.Designer.cs index 3c2a5e9725..75537eafef 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/EditProductsView.Designer.cs @@ -1,367 +1,367 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class EditProductsView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.refreshButton = new System.Windows.Forms.Button(); - this.uploadButton = new System.Windows.Forms.Button(); - this.splitContainer = new System.Windows.Forms.SplitContainer(); - this.productsGroupBox = new System.Windows.Forms.GroupBox(); - this.deleteProductButton = new System.Windows.Forms.Button(); - this.newProductButton = new System.Windows.Forms.Button(); - this.productsListView = new System.Windows.Forms.ListView(); - this.productNameHeader = new System.Windows.Forms.ColumnHeader(); - this.productVersionHeader = new System.Windows.Forms.ColumnHeader(); - this.productImageList = new System.Windows.Forms.ImageList(this.components); - this.detailsGroupBox = new System.Windows.Forms.GroupBox(); - this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); - this.pluginListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); - this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginImageList = new System.Windows.Forms.ImageList(this.components); - this.versionTextBox = new System.Windows.Forms.TextBox(); - this.nameLabel = new System.Windows.Forms.Label(); - this.nameTextBox = new System.Windows.Forms.TextBox(); - this.versionLabel = new System.Windows.Forms.Label(); - this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.splitContainer.Panel1.SuspendLayout(); - this.splitContainer.Panel2.SuspendLayout(); - this.splitContainer.SuspendLayout(); - this.productsGroupBox.SuspendLayout(); - this.detailsGroupBox.SuspendLayout(); - this.pluginsGroupBox.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); - this.SuspendLayout(); - // - // refreshButton - // - this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; - this.refreshButton.Location = new System.Drawing.Point(6, 394); - this.refreshButton.Name = "refreshButton"; - this.refreshButton.Size = new System.Drawing.Size(73, 26); - this.refreshButton.TabIndex = 1; - this.refreshButton.Text = "Refresh"; - this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.refreshButton, "Refresh list of plugins and products from server"); - this.refreshButton.UseVisualStyleBackColor = true; - this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); - // - // uploadButton - // - this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.uploadButton.Enabled = false; - this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.PublishToWeb; - this.uploadButton.Location = new System.Drawing.Point(85, 394); - this.uploadButton.Name = "uploadButton"; - this.uploadButton.Size = new System.Drawing.Size(120, 26); - this.uploadButton.TabIndex = 2; - this.uploadButton.Text = "Upload Products"; - this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.uploadButton, "Upload changed products to server"); - this.uploadButton.UseVisualStyleBackColor = true; - this.uploadButton.Click += new System.EventHandler(this.saveButton_Click); - // - // splitContainer - // - this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer.Location = new System.Drawing.Point(0, 0); - this.splitContainer.Name = "splitContainer"; - // - // splitContainer.Panel1 - // - this.splitContainer.Panel1.Controls.Add(this.productsGroupBox); - // - // splitContainer.Panel2 - // - this.splitContainer.Panel2.Controls.Add(this.detailsGroupBox); - this.splitContainer.Size = new System.Drawing.Size(665, 426); - this.splitContainer.SplitterDistance = 321; - this.splitContainer.TabIndex = 4; - // - // productsGroupBox - // - this.productsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.productsGroupBox.Controls.Add(this.deleteProductButton); - this.productsGroupBox.Controls.Add(this.uploadButton); - this.productsGroupBox.Controls.Add(this.newProductButton); - this.productsGroupBox.Controls.Add(this.productsListView); - this.productsGroupBox.Controls.Add(this.refreshButton); - this.productsGroupBox.Location = new System.Drawing.Point(0, 0); - this.productsGroupBox.Name = "productsGroupBox"; - this.productsGroupBox.Size = new System.Drawing.Size(321, 426); - this.productsGroupBox.TabIndex = 5; - this.productsGroupBox.TabStop = false; - this.productsGroupBox.Text = "Products"; - // - // deleteProductButton - // - this.deleteProductButton.Enabled = false; - this.deleteProductButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Remove; - this.deleteProductButton.Location = new System.Drawing.Point(116, 19); - this.deleteProductButton.Name = "deleteProductButton"; - this.deleteProductButton.Size = new System.Drawing.Size(104, 26); - this.deleteProductButton.TabIndex = 5; - this.deleteProductButton.Text = "Delete Product"; - this.deleteProductButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.deleteProductButton, "Deletes the selected product"); - this.deleteProductButton.UseVisualStyleBackColor = true; - this.deleteProductButton.Click += new System.EventHandler(this.deleteProductButton_Click); - // - // newProductButton - // - this.newProductButton.Enabled = false; - this.newProductButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Add; - this.newProductButton.Location = new System.Drawing.Point(6, 19); - this.newProductButton.Name = "newProductButton"; - this.newProductButton.Size = new System.Drawing.Size(104, 26); - this.newProductButton.TabIndex = 3; - this.newProductButton.Text = "Create Product"; - this.newProductButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.newProductButton, "Create a new product"); - this.newProductButton.UseVisualStyleBackColor = true; - this.newProductButton.Click += new System.EventHandler(this.newProductButton_Click); - // - // productsListView - // - this.productsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.productsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.productNameHeader, - this.productVersionHeader}); - this.productsListView.Enabled = false; - this.productsListView.FullRowSelect = true; - this.productsListView.HideSelection = false; - this.productsListView.Location = new System.Drawing.Point(6, 51); - this.productsListView.MultiSelect = false; - this.productsListView.Name = "productsListView"; - this.productsListView.Size = new System.Drawing.Size(309, 337); - this.productsListView.SmallImageList = this.productImageList; - this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.productsListView.TabIndex = 4; - this.productsListView.UseCompatibleStateImageBehavior = false; - this.productsListView.View = System.Windows.Forms.View.Details; - this.productsListView.SelectedIndexChanged += new System.EventHandler(this.productsListBox_SelectedIndexChanged); - // - // productNameHeader - // - this.productNameHeader.Text = "Name"; - this.productNameHeader.Width = 40; - // - // productVersionHeader - // - this.productVersionHeader.Text = "Version"; - this.productVersionHeader.Width = 265; - // - // productImageList - // - this.productImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.productImageList.ImageSize = new System.Drawing.Size(16, 16); - this.productImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // detailsGroupBox - // - this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.detailsGroupBox.Controls.Add(this.pluginsGroupBox); - this.detailsGroupBox.Controls.Add(this.versionTextBox); - this.detailsGroupBox.Controls.Add(this.nameLabel); - this.detailsGroupBox.Controls.Add(this.nameTextBox); - this.detailsGroupBox.Controls.Add(this.versionLabel); - this.detailsGroupBox.Enabled = false; - this.detailsGroupBox.Location = new System.Drawing.Point(0, 0); - this.detailsGroupBox.Name = "detailsGroupBox"; - this.detailsGroupBox.Size = new System.Drawing.Size(340, 426); - this.detailsGroupBox.TabIndex = 8; - this.detailsGroupBox.TabStop = false; - this.detailsGroupBox.Text = "Details"; - // - // pluginsGroupBox - // - this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pluginsGroupBox.Controls.Add(this.pluginListView); - this.pluginsGroupBox.Location = new System.Drawing.Point(6, 71); - this.pluginsGroupBox.Name = "pluginsGroupBox"; - this.pluginsGroupBox.Size = new System.Drawing.Size(328, 349); - this.pluginsGroupBox.TabIndex = 6; - this.pluginsGroupBox.TabStop = false; - this.pluginsGroupBox.Text = "Plugins"; - // - // pluginListView - // - this.pluginListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pluginListView.CheckBoxes = true; - this.pluginListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.pluginNameHeader, - this.pluginVersionHeader, - this.pluginDescriptionHeader}); - this.pluginListView.Location = new System.Drawing.Point(3, 16); - this.pluginListView.Name = "pluginListView"; - this.pluginListView.Size = new System.Drawing.Size(322, 330); - this.pluginListView.SmallImageList = this.pluginImageList; - this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.pluginListView.SuppressItemCheckedEvents = false; - this.pluginListView.TabIndex = 7; - this.pluginListView.UseCompatibleStateImageBehavior = false; - this.pluginListView.View = System.Windows.Forms.View.Details; - this.pluginListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listView_ItemChecked); - // - // pluginNameHeader - // - this.pluginNameHeader.Text = "Name"; - // - // pluginVersionHeader - // - this.pluginVersionHeader.Text = "Version"; - // - // pluginDescriptionHeader - // - this.pluginDescriptionHeader.Text = "Description"; - // - // pluginImageList - // - this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); - this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // versionTextBox - // - this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.versionTextBox.Location = new System.Drawing.Point(57, 45); - this.versionTextBox.Name = "versionTextBox"; - this.versionTextBox.Size = new System.Drawing.Size(243, 20); - this.versionTextBox.TabIndex = 5; - this.versionTextBox.TextChanged += new System.EventHandler(this.versionTextBox_TextChanged); - // - // nameLabel - // - this.nameLabel.AutoSize = true; - this.nameLabel.Location = new System.Drawing.Point(13, 22); - this.nameLabel.Name = "nameLabel"; - this.nameLabel.Size = new System.Drawing.Size(38, 13); - this.nameLabel.TabIndex = 2; - this.nameLabel.Text = "Name:"; - // - // nameTextBox - // - this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.nameTextBox.Location = new System.Drawing.Point(57, 19); - this.nameTextBox.Name = "nameTextBox"; - this.nameTextBox.Size = new System.Drawing.Size(243, 20); - this.nameTextBox.TabIndex = 3; - this.nameTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged); - // - // versionLabel - // - this.versionLabel.AutoSize = true; - this.versionLabel.Location = new System.Drawing.Point(6, 48); - this.versionLabel.Name = "versionLabel"; - this.versionLabel.Size = new System.Drawing.Size(45, 13); - this.versionLabel.TabIndex = 4; - this.versionLabel.Text = "Version:"; - // - // errorProvider - // - this.errorProvider.ContainerControl = this; - // - // ProductEditor - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.Controls.Add(this.splitContainer); - this.Name = "ProductEditor"; - this.Size = new System.Drawing.Size(665, 426); - this.splitContainer.Panel1.ResumeLayout(false); - this.splitContainer.Panel2.ResumeLayout(false); - this.splitContainer.ResumeLayout(false); - this.productsGroupBox.ResumeLayout(false); - this.detailsGroupBox.ResumeLayout(false); - this.detailsGroupBox.PerformLayout(); - this.pluginsGroupBox.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button refreshButton; - private System.Windows.Forms.Button uploadButton; - private System.Windows.Forms.Button newProductButton; - private System.Windows.Forms.SplitContainer splitContainer; - private System.Windows.Forms.TextBox versionTextBox; - private System.Windows.Forms.Label versionLabel; - private System.Windows.Forms.TextBox nameTextBox; - private System.Windows.Forms.Label nameLabel; - private System.Windows.Forms.ErrorProvider errorProvider; - private System.Windows.Forms.ListView productsListView; - private System.Windows.Forms.ColumnHeader productNameHeader; - private System.Windows.Forms.ColumnHeader productVersionHeader; - private System.Windows.Forms.ImageList productImageList; - private System.Windows.Forms.ImageList pluginImageList; - private MultiSelectListView pluginListView; - private System.Windows.Forms.GroupBox productsGroupBox; - private System.Windows.Forms.GroupBox detailsGroupBox; - private System.Windows.Forms.GroupBox pluginsGroupBox; - private System.Windows.Forms.ToolTip toolTip; - private System.Windows.Forms.Button deleteProductButton; - private System.Windows.Forms.ColumnHeader pluginNameHeader; - private System.Windows.Forms.ColumnHeader pluginVersionHeader; - private System.Windows.Forms.ColumnHeader pluginDescriptionHeader; - - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class EditProductsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.refreshButton = new System.Windows.Forms.Button(); + this.uploadButton = new System.Windows.Forms.Button(); + this.splitContainer = new System.Windows.Forms.SplitContainer(); + this.productsGroupBox = new System.Windows.Forms.GroupBox(); + this.deleteProductButton = new System.Windows.Forms.Button(); + this.newProductButton = new System.Windows.Forms.Button(); + this.productsListView = new System.Windows.Forms.ListView(); + this.productNameHeader = new System.Windows.Forms.ColumnHeader(); + this.productVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.productImageList = new System.Windows.Forms.ImageList(this.components); + this.detailsGroupBox = new System.Windows.Forms.GroupBox(); + this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); + this.pluginListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginImageList = new System.Windows.Forms.ImageList(this.components); + this.versionTextBox = new System.Windows.Forms.TextBox(); + this.nameLabel = new System.Windows.Forms.Label(); + this.nameTextBox = new System.Windows.Forms.TextBox(); + this.versionLabel = new System.Windows.Forms.Label(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.splitContainer.Panel1.SuspendLayout(); + this.splitContainer.Panel2.SuspendLayout(); + this.splitContainer.SuspendLayout(); + this.productsGroupBox.SuspendLayout(); + this.detailsGroupBox.SuspendLayout(); + this.pluginsGroupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + this.SuspendLayout(); + // + // refreshButton + // + this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.refreshButton.Location = new System.Drawing.Point(6, 394); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(73, 26); + this.refreshButton.TabIndex = 1; + this.refreshButton.Text = "Refresh"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Refresh list of plugins and products from server"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); + // + // uploadButton + // + this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.uploadButton.Enabled = false; + this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.PublishToWeb; + this.uploadButton.Location = new System.Drawing.Point(85, 394); + this.uploadButton.Name = "uploadButton"; + this.uploadButton.Size = new System.Drawing.Size(120, 26); + this.uploadButton.TabIndex = 2; + this.uploadButton.Text = "Upload Products"; + this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.uploadButton, "Upload changed products to server"); + this.uploadButton.UseVisualStyleBackColor = true; + this.uploadButton.Click += new System.EventHandler(this.saveButton_Click); + // + // splitContainer + // + this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer.Location = new System.Drawing.Point(0, 0); + this.splitContainer.Name = "splitContainer"; + // + // splitContainer.Panel1 + // + this.splitContainer.Panel1.Controls.Add(this.productsGroupBox); + // + // splitContainer.Panel2 + // + this.splitContainer.Panel2.Controls.Add(this.detailsGroupBox); + this.splitContainer.Size = new System.Drawing.Size(665, 426); + this.splitContainer.SplitterDistance = 321; + this.splitContainer.TabIndex = 4; + // + // productsGroupBox + // + this.productsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsGroupBox.Controls.Add(this.deleteProductButton); + this.productsGroupBox.Controls.Add(this.uploadButton); + this.productsGroupBox.Controls.Add(this.newProductButton); + this.productsGroupBox.Controls.Add(this.productsListView); + this.productsGroupBox.Controls.Add(this.refreshButton); + this.productsGroupBox.Location = new System.Drawing.Point(0, 0); + this.productsGroupBox.Name = "productsGroupBox"; + this.productsGroupBox.Size = new System.Drawing.Size(321, 426); + this.productsGroupBox.TabIndex = 5; + this.productsGroupBox.TabStop = false; + this.productsGroupBox.Text = "Products"; + // + // deleteProductButton + // + this.deleteProductButton.Enabled = false; + this.deleteProductButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Remove; + this.deleteProductButton.Location = new System.Drawing.Point(116, 19); + this.deleteProductButton.Name = "deleteProductButton"; + this.deleteProductButton.Size = new System.Drawing.Size(104, 26); + this.deleteProductButton.TabIndex = 5; + this.deleteProductButton.Text = "Delete Product"; + this.deleteProductButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.deleteProductButton, "Deletes the selected product"); + this.deleteProductButton.UseVisualStyleBackColor = true; + this.deleteProductButton.Click += new System.EventHandler(this.deleteProductButton_Click); + // + // newProductButton + // + this.newProductButton.Enabled = false; + this.newProductButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Add; + this.newProductButton.Location = new System.Drawing.Point(6, 19); + this.newProductButton.Name = "newProductButton"; + this.newProductButton.Size = new System.Drawing.Size(104, 26); + this.newProductButton.TabIndex = 3; + this.newProductButton.Text = "Create Product"; + this.newProductButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.newProductButton, "Create a new product"); + this.newProductButton.UseVisualStyleBackColor = true; + this.newProductButton.Click += new System.EventHandler(this.newProductButton_Click); + // + // productsListView + // + this.productsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.productNameHeader, + this.productVersionHeader}); + this.productsListView.Enabled = false; + this.productsListView.FullRowSelect = true; + this.productsListView.HideSelection = false; + this.productsListView.Location = new System.Drawing.Point(6, 51); + this.productsListView.MultiSelect = false; + this.productsListView.Name = "productsListView"; + this.productsListView.Size = new System.Drawing.Size(309, 337); + this.productsListView.SmallImageList = this.productImageList; + this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.productsListView.TabIndex = 4; + this.productsListView.UseCompatibleStateImageBehavior = false; + this.productsListView.View = System.Windows.Forms.View.Details; + this.productsListView.SelectedIndexChanged += new System.EventHandler(this.productsListBox_SelectedIndexChanged); + // + // productNameHeader + // + this.productNameHeader.Text = "Name"; + this.productNameHeader.Width = 40; + // + // productVersionHeader + // + this.productVersionHeader.Text = "Version"; + this.productVersionHeader.Width = 265; + // + // productImageList + // + this.productImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.productImageList.ImageSize = new System.Drawing.Size(16, 16); + this.productImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // detailsGroupBox + // + this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.detailsGroupBox.Controls.Add(this.pluginsGroupBox); + this.detailsGroupBox.Controls.Add(this.versionTextBox); + this.detailsGroupBox.Controls.Add(this.nameLabel); + this.detailsGroupBox.Controls.Add(this.nameTextBox); + this.detailsGroupBox.Controls.Add(this.versionLabel); + this.detailsGroupBox.Enabled = false; + this.detailsGroupBox.Location = new System.Drawing.Point(0, 0); + this.detailsGroupBox.Name = "detailsGroupBox"; + this.detailsGroupBox.Size = new System.Drawing.Size(340, 426); + this.detailsGroupBox.TabIndex = 8; + this.detailsGroupBox.TabStop = false; + this.detailsGroupBox.Text = "Details"; + // + // pluginsGroupBox + // + this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsGroupBox.Controls.Add(this.pluginListView); + this.pluginsGroupBox.Location = new System.Drawing.Point(6, 71); + this.pluginsGroupBox.Name = "pluginsGroupBox"; + this.pluginsGroupBox.Size = new System.Drawing.Size(328, 349); + this.pluginsGroupBox.TabIndex = 6; + this.pluginsGroupBox.TabStop = false; + this.pluginsGroupBox.Text = "Plugins"; + // + // pluginListView + // + this.pluginListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginListView.CheckBoxes = true; + this.pluginListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameHeader, + this.pluginVersionHeader, + this.pluginDescriptionHeader}); + this.pluginListView.Location = new System.Drawing.Point(3, 16); + this.pluginListView.Name = "pluginListView"; + this.pluginListView.Size = new System.Drawing.Size(322, 330); + this.pluginListView.SmallImageList = this.pluginImageList; + this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.pluginListView.SuppressItemCheckedEvents = false; + this.pluginListView.TabIndex = 7; + this.pluginListView.UseCompatibleStateImageBehavior = false; + this.pluginListView.View = System.Windows.Forms.View.Details; + this.pluginListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listView_ItemChecked); + // + // pluginNameHeader + // + this.pluginNameHeader.Text = "Name"; + // + // pluginVersionHeader + // + this.pluginVersionHeader.Text = "Version"; + // + // pluginDescriptionHeader + // + this.pluginDescriptionHeader.Text = "Description"; + // + // pluginImageList + // + this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // versionTextBox + // + this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.versionTextBox.Location = new System.Drawing.Point(57, 45); + this.versionTextBox.Name = "versionTextBox"; + this.versionTextBox.Size = new System.Drawing.Size(243, 20); + this.versionTextBox.TabIndex = 5; + this.versionTextBox.TextChanged += new System.EventHandler(this.versionTextBox_TextChanged); + // + // nameLabel + // + this.nameLabel.AutoSize = true; + this.nameLabel.Location = new System.Drawing.Point(13, 22); + this.nameLabel.Name = "nameLabel"; + this.nameLabel.Size = new System.Drawing.Size(38, 13); + this.nameLabel.TabIndex = 2; + this.nameLabel.Text = "Name:"; + // + // nameTextBox + // + this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nameTextBox.Location = new System.Drawing.Point(57, 19); + this.nameTextBox.Name = "nameTextBox"; + this.nameTextBox.Size = new System.Drawing.Size(243, 20); + this.nameTextBox.TabIndex = 3; + this.nameTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged); + // + // versionLabel + // + this.versionLabel.AutoSize = true; + this.versionLabel.Location = new System.Drawing.Point(6, 48); + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size(45, 13); + this.versionLabel.TabIndex = 4; + this.versionLabel.Text = "Version:"; + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // ProductEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.splitContainer); + this.Name = "ProductEditor"; + this.Size = new System.Drawing.Size(665, 426); + this.splitContainer.Panel1.ResumeLayout(false); + this.splitContainer.Panel2.ResumeLayout(false); + this.splitContainer.ResumeLayout(false); + this.productsGroupBox.ResumeLayout(false); + this.detailsGroupBox.ResumeLayout(false); + this.detailsGroupBox.PerformLayout(); + this.pluginsGroupBox.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button refreshButton; + private System.Windows.Forms.Button uploadButton; + private System.Windows.Forms.Button newProductButton; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.TextBox versionTextBox; + private System.Windows.Forms.Label versionLabel; + private System.Windows.Forms.TextBox nameTextBox; + private System.Windows.Forms.Label nameLabel; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.ListView productsListView; + private System.Windows.Forms.ColumnHeader productNameHeader; + private System.Windows.Forms.ColumnHeader productVersionHeader; + private System.Windows.Forms.ImageList productImageList; + private System.Windows.Forms.ImageList pluginImageList; + private MultiSelectListView pluginListView; + private System.Windows.Forms.GroupBox productsGroupBox; + private System.Windows.Forms.GroupBox detailsGroupBox; + private System.Windows.Forms.GroupBox pluginsGroupBox; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.Button deleteProductButton; + private System.Windows.Forms.ColumnHeader pluginNameHeader; + private System.Windows.Forms.ColumnHeader pluginVersionHeader; + private System.Windows.Forms.ColumnHeader pluginDescriptionHeader; + + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/EditProductsView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/EditProductsView.cs index c352318ced..4c45183450 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/EditProductsView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/EditProductsView.cs @@ -1,455 +1,455 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.ServiceModel; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class EditProductsView : InstallationManagerControl { - private const string RefreshMessage = "Downloading product and plugin information..."; - private const string UploadMessage = "Uploading product and plugin information..."; - private const string DeleteProductMessage = "Deleting product..."; - - private BackgroundWorker refreshProductsWorker; - private BackgroundWorker uploadChangedProductsWorker; - private BackgroundWorker deleteProductWorker; - - private List products; - private List plugins; - private HashSet dirtyProducts; - - public EditProductsView() { - InitializeComponent(); - - productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); - productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.ArrowUp); - pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); - - dirtyProducts = new HashSet(); - refreshProductsWorker = new BackgroundWorker(); - refreshProductsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshProductsWorker_RunWorkerCompleted); - refreshProductsWorker.DoWork += new DoWorkEventHandler(refreshProductsWorker_DoWork); - - uploadChangedProductsWorker = new BackgroundWorker(); - uploadChangedProductsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(uploadChangedProductsWorker_RunWorkerCompleted); - uploadChangedProductsWorker.DoWork += new DoWorkEventHandler(uploadChangedProductsWorker_DoWork); - - deleteProductWorker = new BackgroundWorker(); - deleteProductWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(deleteProductWorker_RunWorkerCompleted); - deleteProductWorker.DoWork += new DoWorkEventHandler(deleteProductWorker_DoWork); - } - - #region event handlers for delete product background worker - void deleteProductWorker_DoWork(object sender, DoWorkEventArgs e) { - var products = (IEnumerable)e.Argument; - var adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); - // upload - try { - foreach (var product in products) { - adminClient.DeleteProduct(product); - } - adminClient.Close(); - } - catch (TimeoutException) { - adminClient.Abort(); - throw; - } - catch (FaultException) { - adminClient.Abort(); - throw; - } - catch (CommunicationException) { - adminClient.Abort(); - throw; - } - // refresh - var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; - updateClient.Close(); - } - catch (TimeoutException) { - updateClient.Abort(); - throw; - } - catch (FaultException) { - updateClient.Abort(); - throw; - } - catch (CommunicationException) { - updateClient.Abort(); - throw; - } - } - - void deleteProductWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - this.products.Clear(); - this.plugins.Clear(); - } else { - this.products = new List( - (DeploymentService.ProductDescription[])((object[])e.Result)[0]); - this.plugins = new List( - (DeploymentService.PluginDescription[])((object[])e.Result)[1]); - - EnableControls(); - } - UpdateProductsList(); - dirtyProducts.Clear(); - StatusView.HideProgressIndicator(); - StatusView.RemoveMessage(DeleteProductMessage); - StatusView.UnlockUI(); - } - #endregion - - #region event handlers for upload products background worker - private void uploadChangedProductsWorker_DoWork(object sender, DoWorkEventArgs e) { - var products = (IEnumerable)e.Argument; - var adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); - // upload - try { - foreach (var product in products) { - adminClient.DeployProduct(product); - } - adminClient.Close(); - } - catch (TimeoutException) { - adminClient.Abort(); - throw; - } - catch (FaultException) { - adminClient.Abort(); - throw; - } - catch (CommunicationException) { - adminClient.Abort(); - throw; - } - // refresh - var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; - updateClient.Close(); - } - catch (TimeoutException) { - updateClient.Abort(); - throw; - } - catch (FaultException) { - updateClient.Abort(); - throw; - } - catch (CommunicationException) { - updateClient.Abort(); - throw; - } - } - - private void uploadChangedProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - this.products.Clear(); - this.plugins.Clear(); - } else { - this.products = new List( - (DeploymentService.ProductDescription[])((object[])e.Result)[0]); - this.plugins = new List( - (DeploymentService.PluginDescription[])((object[])e.Result)[1]); - - } - UpdateProductsList(); - dirtyProducts.Clear(); - EnableControls(); - StatusView.HideProgressIndicator(); - StatusView.RemoveMessage(UploadMessage); - StatusView.UnlockUI(); - } - #endregion - - #region event handlers for refresh products background worker - private void refreshProductsWorker_DoWork(object sender, DoWorkEventArgs e) { - var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; - updateClient.Close(); - } - catch (TimeoutException) { - updateClient.Abort(); - throw; - } - catch (FaultException) { - updateClient.Abort(); - throw; - } - catch (CommunicationException) { - updateClient.Abort(); - throw; - } - } - - private void refreshProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - this.products.Clear(); - this.plugins.Clear(); - - } else { - this.products = new List( - (DeploymentService.ProductDescription[])((object[])e.Result)[0]); - this.plugins = new List( - (DeploymentService.PluginDescription[])((object[])e.Result)[1]); - } - UpdateProductsList(); - dirtyProducts.Clear(); - EnableControls(); - StatusView.HideProgressIndicator(); - StatusView.RemoveMessage(RefreshMessage); - StatusView.UnlockUI(); - } - #endregion - - private void UpdateProductsList() { - productsListView.SelectedItems.Clear(); - productsListView.Items.Clear(); - foreach (var prodDesc in products) { - productsListView.Items.Add(CreateListViewItem(prodDesc)); - } - Util.ResizeColumns(productsListView.Columns.OfType()); - } - - private void productsListBox_SelectedIndexChanged(object sender, EventArgs e) { - bool productSelected = productsListView.SelectedItems.Count > 0; - detailsGroupBox.Enabled = productSelected; - UpdateProductButtons(); - if (productSelected) { - DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)((ListViewItem)productsListView.SelectedItems[0]).Tag; - nameTextBox.Text = activeProduct.Name; - versionTextBox.Text = activeProduct.Version.ToString(); - - // populate plugins list view - pluginListView.SuppressItemCheckedEvents = true; - foreach (var plugin in plugins.OfType()) { - pluginListView.Items.Add(CreateListViewItem(plugin)); - } - pluginListView.SuppressItemCheckedEvents = false; - foreach (var plugin in activeProduct.Plugins) { - pluginListView.CheckItems(FindItemsForPlugin(plugin)); - } - } else { - nameTextBox.Text = string.Empty; - versionTextBox.Text = string.Empty; - pluginListView.Items.Clear(); - } - Util.ResizeColumns(pluginListView.Columns.OfType()); - } - - private void UpdateProductButtons() { - uploadButton.Enabled = dirtyProducts.Count > 0; - if (productsListView.SelectedItems.Count > 0) { - var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; - deleteProductButton.Enabled = !dirtyProducts.Contains(selectedProduct); - } else { - deleteProductButton.Enabled = false; - } - } - - - #region button event handlers - private void newProductButton_Click(object sender, EventArgs e) { - var newProduct = new DeploymentService.ProductDescription("New product", new Version("0.0.0.0")); - products.Add(newProduct); - UpdateProductsList(); - MarkProductDirty(newProduct); - } - - private void saveButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.ShowMessage(UploadMessage); - uploadChangedProductsWorker.RunWorkerAsync(dirtyProducts); - } - private void refreshButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.ShowMessage(RefreshMessage); - refreshProductsWorker.RunWorkerAsync(); - } - private void deleteProductButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.ShowMessage(DeleteProductMessage); - var selectedProducts = from item in productsListView.SelectedItems.OfType() - select (DeploymentService.ProductDescription)item.Tag; - deleteProductWorker.RunWorkerAsync(selectedProducts.ToList()); - } - - #endregion - - #region textbox changed event handlers - private void nameTextBox_TextChanged(object sender, EventArgs e) { - if (productsListView.SelectedItems.Count > 0) { - ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; - DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; - if (string.IsNullOrEmpty(nameTextBox.Name)) { - errorProvider.SetError(nameTextBox, "Invalid value"); - } else { - if (activeProduct.Name != nameTextBox.Text) { - activeProduct.Name = nameTextBox.Text; - activeItem.SubItems[0].Text = activeProduct.Name; - errorProvider.SetError(nameTextBox, string.Empty); - MarkProductDirty(activeProduct); - } - } - } - } - - - private void versionTextBox_TextChanged(object sender, EventArgs e) { - if (productsListView.SelectedItems.Count > 0) { - ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; - DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; - try { - var newVersion = new Version(versionTextBox.Text); - if (activeProduct.Version != newVersion) { - activeProduct.Version = newVersion; - activeItem.SubItems[1].Text = versionTextBox.Text; - errorProvider.SetError(versionTextBox, string.Empty); - MarkProductDirty(activeProduct); - } - } - catch (OverflowException) { - errorProvider.SetError(versionTextBox, "Invalid value"); - } - - catch (ArgumentException) { - errorProvider.SetError(versionTextBox, "Invalid value"); - } - catch (FormatException) { - errorProvider.SetError(versionTextBox, "Invalid value"); - } - } - } - #endregion - - - #region plugin list view - private void OnItemChecked(ItemCheckedEventArgs e) { - ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; - DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; - activeProduct.Plugins = (from item in pluginListView.CheckedItems.OfType() - select (DeploymentService.PluginDescription)item.Tag).ToArray(); - MarkProductDirty(activeProduct); - } - - private void listView_ItemChecked(object sender, ItemCheckedEventArgs e) { - List modifiedPlugins = new List(); - if (e.Item.Checked) { - foreach (ListViewItem item in pluginListView.SelectedItems) { - var plugin = (IPluginDescription)item.Tag; - // also check all dependencies - if (!modifiedPlugins.Contains(plugin)) - modifiedPlugins.Add(plugin); - foreach (var dep in Util.GetAllDependencies(plugin)) { - if (!modifiedPlugins.Contains(dep)) - modifiedPlugins.Add(dep); - } - } - pluginListView.CheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single())); - OnItemChecked(e); - } else { - foreach (ListViewItem item in pluginListView.SelectedItems) { - var plugin = (IPluginDescription)item.Tag; - // also uncheck all dependent plugins - if (!modifiedPlugins.Contains(plugin)) - modifiedPlugins.Add(plugin); - foreach (var dep in Util.GetAllDependents(plugin, plugins.Cast())) { - if (!modifiedPlugins.Contains(dep)) - modifiedPlugins.Add(dep); - } - - } - pluginListView.UncheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single())); - OnItemChecked(e); - } - } - - - #endregion - - #region helper - private void MarkProductDirty(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription activeProduct) { - if (!dirtyProducts.Contains(activeProduct)) { - dirtyProducts.Add(activeProduct); - var item = FindItemForProduct(activeProduct); - item.ImageIndex = 1; - UpdateProductButtons(); - } - } - private ListViewItem CreateListViewItem(DeploymentService.ProductDescription productDescription) { - ListViewItem item = new ListViewItem(new string[] { productDescription.Name, productDescription.Version.ToString() }); - item.Tag = productDescription; - item.ImageIndex = 0; - return item; - } - - private ListViewItem CreateListViewItem(IPluginDescription plugin) { - ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), - string.Empty, plugin.Description }); - item.Tag = plugin; - item.ImageIndex = 0; - item.Checked = false; - return item; - } - - private ListViewItem FindItemForProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription activeProduct) { - return (from item in productsListView.Items.OfType() - let product = item.Tag as DeploymentService.ProductDescription - where product != null - where product == activeProduct - select item).Single(); - } - private IEnumerable FindItemsForPlugin(IPluginDescription plugin) { - return from item in pluginListView.Items.OfType() - let p = item.Tag as IPluginDescription - where p.Name == plugin.Name - where p.Version == plugin.Version - select item; - } - - private void EnableControls() { - newProductButton.Enabled = true; - productsListView.Enabled = true; - } - #endregion - - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.ServiceModel; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class EditProductsView : InstallationManagerControl { + private const string RefreshMessage = "Downloading product and plugin information..."; + private const string UploadMessage = "Uploading product and plugin information..."; + private const string DeleteProductMessage = "Deleting product..."; + + private BackgroundWorker refreshProductsWorker; + private BackgroundWorker uploadChangedProductsWorker; + private BackgroundWorker deleteProductWorker; + + private List products; + private List plugins; + private HashSet dirtyProducts; + + public EditProductsView() { + InitializeComponent(); + + productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); + productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.ArrowUp); + pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + + dirtyProducts = new HashSet(); + refreshProductsWorker = new BackgroundWorker(); + refreshProductsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshProductsWorker_RunWorkerCompleted); + refreshProductsWorker.DoWork += new DoWorkEventHandler(refreshProductsWorker_DoWork); + + uploadChangedProductsWorker = new BackgroundWorker(); + uploadChangedProductsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(uploadChangedProductsWorker_RunWorkerCompleted); + uploadChangedProductsWorker.DoWork += new DoWorkEventHandler(uploadChangedProductsWorker_DoWork); + + deleteProductWorker = new BackgroundWorker(); + deleteProductWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(deleteProductWorker_RunWorkerCompleted); + deleteProductWorker.DoWork += new DoWorkEventHandler(deleteProductWorker_DoWork); + } + + #region event handlers for delete product background worker + void deleteProductWorker_DoWork(object sender, DoWorkEventArgs e) { + var products = (IEnumerable)e.Argument; + var adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); + // upload + try { + foreach (var product in products) { + adminClient.DeleteProduct(product); + } + adminClient.Close(); + } + catch (TimeoutException) { + adminClient.Abort(); + throw; + } + catch (FaultException) { + adminClient.Abort(); + throw; + } + catch (CommunicationException) { + adminClient.Abort(); + throw; + } + // refresh + var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; + updateClient.Close(); + } + catch (TimeoutException) { + updateClient.Abort(); + throw; + } + catch (FaultException) { + updateClient.Abort(); + throw; + } + catch (CommunicationException) { + updateClient.Abort(); + throw; + } + } + + void deleteProductWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + this.products.Clear(); + this.plugins.Clear(); + } else { + this.products = new List( + (DeploymentService.ProductDescription[])((object[])e.Result)[0]); + this.plugins = new List( + (DeploymentService.PluginDescription[])((object[])e.Result)[1]); + + EnableControls(); + } + UpdateProductsList(); + dirtyProducts.Clear(); + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(DeleteProductMessage); + StatusView.UnlockUI(); + } + #endregion + + #region event handlers for upload products background worker + private void uploadChangedProductsWorker_DoWork(object sender, DoWorkEventArgs e) { + var products = (IEnumerable)e.Argument; + var adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); + // upload + try { + foreach (var product in products) { + adminClient.DeployProduct(product); + } + adminClient.Close(); + } + catch (TimeoutException) { + adminClient.Abort(); + throw; + } + catch (FaultException) { + adminClient.Abort(); + throw; + } + catch (CommunicationException) { + adminClient.Abort(); + throw; + } + // refresh + var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; + updateClient.Close(); + } + catch (TimeoutException) { + updateClient.Abort(); + throw; + } + catch (FaultException) { + updateClient.Abort(); + throw; + } + catch (CommunicationException) { + updateClient.Abort(); + throw; + } + } + + private void uploadChangedProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + this.products.Clear(); + this.plugins.Clear(); + } else { + this.products = new List( + (DeploymentService.ProductDescription[])((object[])e.Result)[0]); + this.plugins = new List( + (DeploymentService.PluginDescription[])((object[])e.Result)[1]); + + } + UpdateProductsList(); + dirtyProducts.Clear(); + EnableControls(); + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(UploadMessage); + StatusView.UnlockUI(); + } + #endregion + + #region event handlers for refresh products background worker + private void refreshProductsWorker_DoWork(object sender, DoWorkEventArgs e) { + var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; + updateClient.Close(); + } + catch (TimeoutException) { + updateClient.Abort(); + throw; + } + catch (FaultException) { + updateClient.Abort(); + throw; + } + catch (CommunicationException) { + updateClient.Abort(); + throw; + } + } + + private void refreshProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + this.products.Clear(); + this.plugins.Clear(); + + } else { + this.products = new List( + (DeploymentService.ProductDescription[])((object[])e.Result)[0]); + this.plugins = new List( + (DeploymentService.PluginDescription[])((object[])e.Result)[1]); + } + UpdateProductsList(); + dirtyProducts.Clear(); + EnableControls(); + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(RefreshMessage); + StatusView.UnlockUI(); + } + #endregion + + private void UpdateProductsList() { + productsListView.SelectedItems.Clear(); + productsListView.Items.Clear(); + foreach (var prodDesc in products) { + productsListView.Items.Add(CreateListViewItem(prodDesc)); + } + Util.ResizeColumns(productsListView.Columns.OfType()); + } + + private void productsListBox_SelectedIndexChanged(object sender, EventArgs e) { + bool productSelected = productsListView.SelectedItems.Count > 0; + detailsGroupBox.Enabled = productSelected; + UpdateProductButtons(); + if (productSelected) { + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)((ListViewItem)productsListView.SelectedItems[0]).Tag; + nameTextBox.Text = activeProduct.Name; + versionTextBox.Text = activeProduct.Version.ToString(); + + // populate plugins list view + pluginListView.SuppressItemCheckedEvents = true; + foreach (var plugin in plugins.OfType()) { + pluginListView.Items.Add(CreateListViewItem(plugin)); + } + pluginListView.SuppressItemCheckedEvents = false; + foreach (var plugin in activeProduct.Plugins) { + pluginListView.CheckItems(FindItemsForPlugin(plugin)); + } + } else { + nameTextBox.Text = string.Empty; + versionTextBox.Text = string.Empty; + pluginListView.Items.Clear(); + } + Util.ResizeColumns(pluginListView.Columns.OfType()); + } + + private void UpdateProductButtons() { + uploadButton.Enabled = dirtyProducts.Count > 0; + if (productsListView.SelectedItems.Count > 0) { + var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; + deleteProductButton.Enabled = !dirtyProducts.Contains(selectedProduct); + } else { + deleteProductButton.Enabled = false; + } + } + + + #region button event handlers + private void newProductButton_Click(object sender, EventArgs e) { + var newProduct = new DeploymentService.ProductDescription("New product", new Version("0.0.0.0")); + products.Add(newProduct); + UpdateProductsList(); + MarkProductDirty(newProduct); + } + + private void saveButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(UploadMessage); + uploadChangedProductsWorker.RunWorkerAsync(dirtyProducts); + } + private void refreshButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(RefreshMessage); + refreshProductsWorker.RunWorkerAsync(); + } + private void deleteProductButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(DeleteProductMessage); + var selectedProducts = from item in productsListView.SelectedItems.OfType() + select (DeploymentService.ProductDescription)item.Tag; + deleteProductWorker.RunWorkerAsync(selectedProducts.ToList()); + } + + #endregion + + #region textbox changed event handlers + private void nameTextBox_TextChanged(object sender, EventArgs e) { + if (productsListView.SelectedItems.Count > 0) { + ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; + if (string.IsNullOrEmpty(nameTextBox.Name)) { + errorProvider.SetError(nameTextBox, "Invalid value"); + } else { + if (activeProduct.Name != nameTextBox.Text) { + activeProduct.Name = nameTextBox.Text; + activeItem.SubItems[0].Text = activeProduct.Name; + errorProvider.SetError(nameTextBox, string.Empty); + MarkProductDirty(activeProduct); + } + } + } + } + + + private void versionTextBox_TextChanged(object sender, EventArgs e) { + if (productsListView.SelectedItems.Count > 0) { + ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; + try { + var newVersion = new Version(versionTextBox.Text); + if (activeProduct.Version != newVersion) { + activeProduct.Version = newVersion; + activeItem.SubItems[1].Text = versionTextBox.Text; + errorProvider.SetError(versionTextBox, string.Empty); + MarkProductDirty(activeProduct); + } + } + catch (OverflowException) { + errorProvider.SetError(versionTextBox, "Invalid value"); + } + + catch (ArgumentException) { + errorProvider.SetError(versionTextBox, "Invalid value"); + } + catch (FormatException) { + errorProvider.SetError(versionTextBox, "Invalid value"); + } + } + } + #endregion + + + #region plugin list view + private void OnItemChecked(ItemCheckedEventArgs e) { + ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; + activeProduct.Plugins = (from item in pluginListView.CheckedItems.OfType() + select (DeploymentService.PluginDescription)item.Tag).ToArray(); + MarkProductDirty(activeProduct); + } + + private void listView_ItemChecked(object sender, ItemCheckedEventArgs e) { + List modifiedPlugins = new List(); + if (e.Item.Checked) { + foreach (ListViewItem item in pluginListView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also check all dependencies + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependencies(plugin)) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + } + pluginListView.CheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single())); + OnItemChecked(e); + } else { + foreach (ListViewItem item in pluginListView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also uncheck all dependent plugins + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependents(plugin, plugins.Cast())) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + + } + pluginListView.UncheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single())); + OnItemChecked(e); + } + } + + + #endregion + + #region helper + private void MarkProductDirty(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription activeProduct) { + if (!dirtyProducts.Contains(activeProduct)) { + dirtyProducts.Add(activeProduct); + var item = FindItemForProduct(activeProduct); + item.ImageIndex = 1; + UpdateProductButtons(); + } + } + private ListViewItem CreateListViewItem(DeploymentService.ProductDescription productDescription) { + ListViewItem item = new ListViewItem(new string[] { productDescription.Name, productDescription.Version.ToString() }); + item.Tag = productDescription; + item.ImageIndex = 0; + return item; + } + + private ListViewItem CreateListViewItem(IPluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), + string.Empty, plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + item.Checked = false; + return item; + } + + private ListViewItem FindItemForProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription activeProduct) { + return (from item in productsListView.Items.OfType() + let product = item.Tag as DeploymentService.ProductDescription + where product != null + where product == activeProduct + select item).Single(); + } + private IEnumerable FindItemsForPlugin(IPluginDescription plugin) { + return from item in pluginListView.Items.OfType() + let p = item.Tag as IPluginDescription + where p.Name == plugin.Name + where p.Version == plugin.Version + select item; + } + + private void EnableControls() { + newProductButton.Enabled = true; + productsListView.Enabled = true; + } + #endregion + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/IStatusDisplay.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/IStatusDisplay.cs new file mode 100644 index 0000000000..5455d8a7d6 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/IStatusDisplay.cs @@ -0,0 +1,37 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Runtime.CompilerServices; + +//[assembly: InternalsVisibleTo("HeuristicLab.PluginInfrastructure.Extension-3.3, PublicKey=0024000004800000940000000602000000240000525341310004000001000100e3d38bc66a0dd8\r\ndd36f57285e34632ec04b3049866ab1e64cf230e95ffcbfbb90c437b4d11dfe74ba981f7462742\r\n90bb03f3e636e139e685b501031dc6e0bc8409153f0c842721eb9e8e2a703c9e4d102283f3ddbd\r\nfab4078c08de51869715992a694d2f608d0fa865c9d17c06b8d6a9135004e982fd862cdb2277e4ad15a4a6")] +namespace HeuristicLab.PluginInfrastructure.Advanced { + + internal interface IStatusView { + void ShowProgressIndicator(double percentProgress); + void ShowProgressIndicator(); + void HideProgressIndicator(); + void ShowMessage(string message); + void RemoveMessage(string message); + void LockUI(); + void UnlockUI(); + void ShowError(string shortMessage, string description); + } +} diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManager.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManager.cs new file mode 100644 index 0000000000..1fbf448156 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManager.cs @@ -0,0 +1,246 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.ServiceModel; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal class InstallationManager { + + internal event EventHandler PreUpdatePlugin; + internal event EventHandler PreRemovePlugin; + internal event EventHandler PreInstallPlugin; + + internal event EventHandler PluginUpdated; + internal event EventHandler PluginRemoved; + internal event EventHandler PluginInstalled; + + private string pluginDir; + public InstallationManager(string pluginDir) { + this.pluginDir = pluginDir; + } + + /// + /// Retrieves a list of plugins available at the remote server + /// + /// + public IEnumerable GetRemotePluginList() { + // obsolete code + //var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + //try { + // List plugins = new List(client.GetPlugins()); + // client.Close(); + // return plugins; + //} + //catch (TimeoutException e) { + // client.Abort(); + // throw new InstallationManagerException("Time out while connecting to server.", e); + //} + //catch (FaultException e) { + // client.Abort(); + // throw new InstallationManagerException("Fault in connection to server.", e); + //} + //catch (CommunicationException e) { + // client.Abort(); + // throw new InstallationManagerException("General communication exception in connection to server.", e); + //} + return Enumerable.Empty(); + } + + /// + /// Retrieves the list of products available at the remote server + /// + /// + public IEnumerable GetRemoteProductList() { + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + List products = new List(client.GetProducts()); + client.Close(); + return products; + } + catch (TimeoutException e) { + client.Abort(); + throw new InstallationManagerException("Time out while connecting to server.", e); + } + catch (FaultException e) { + client.Abort(); + throw new InstallationManagerException("Fault in connection to server.", e); + } + catch (CommunicationException e) { + client.Abort(); + throw new InstallationManagerException("General communication exception in connection to server.", e); + } + } + + /// + /// Installs plugins from remote server + /// + /// + public void Install(IEnumerable plugins, out bool cancelled) { + var args = new PluginInfrastructureCancelEventArgs(plugins); + OnPreInstall(args); + if (!args.Cancel) { + cancelled = false; + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + foreach (DeploymentService.PluginDescription plugin in plugins) { + byte[] zippedPackage = client.GetPlugin(plugin); + Unpack(zippedPackage); + OnInstalled(new PluginInfrastructureEventArgs(plugin)); + } + client.Close(); + } + catch (TimeoutException e) { + client.Abort(); + throw new InstallationManagerException("Time out while connecting to server.", e); + } + catch (FaultException e) { + client.Abort(); + throw new InstallationManagerException("Fault in connection to server.", e); + } + catch (CommunicationException e) { + client.Abort(); + throw new InstallationManagerException("General communication exception in connection to server.", e); + } + } else { + cancelled = true; + } + } + + /// + /// Updates plugins from remote server + /// + /// + public void Update(IEnumerable plugins, out bool cancelled) { + PluginInfrastructureCancelEventArgs args = new PluginInfrastructureCancelEventArgs(plugins); + OnPreUpdate(args); + if (!args.Cancel) { + cancelled = false; + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + foreach (DeploymentService.PluginDescription plugin in plugins) { + byte[] zippedPackage = client.GetPlugin(plugin); + Unpack(zippedPackage); + OnUpdated(new PluginInfrastructureEventArgs(plugin)); + } + client.Close(); + } + catch (TimeoutException e) { + client.Abort(); + throw new InstallationManagerException("Time out while connecting to server.", e); + } + catch (FaultException e) { + client.Abort(); + throw new InstallationManagerException("Fault in connection to server.", e); + } + catch (CommunicationException e) { + client.Abort(); + throw new InstallationManagerException("General communication exception in connection to server.", e); + } + } else { + cancelled = true; + } + } + + /// + /// Deletes all plugin files from local installation + /// + /// + public void Remove(IEnumerable plugins) { + var fileNames = from pluginToDelete in plugins + from file in pluginToDelete.Files + select Path.Combine(pluginDir, file.Name); + var args = new PluginInfrastructureCancelEventArgs(plugins); + OnPreDelete(args); + if (!args.Cancel) { + foreach (string fileName in fileNames) { + File.Delete(fileName); + OnDeleted(new PluginInfrastructureEventArgs(fileName)); + } + } + } + + private void Unpack(byte[] zippedPackage) { + using (MemoryStream memStream = new MemoryStream(zippedPackage)) { + using (ZipArchive zip = new ZipArchive(memStream, ZipArchiveMode.Read)) { + foreach (var theEntry in zip.Entries) { + string directoryName = pluginDir; + string fileName = Path.GetFileName(theEntry.Name); + // create directory + if (!string.IsNullOrEmpty(directoryName)) { + Directory.CreateDirectory(directoryName); + } + if (!string.IsNullOrEmpty(fileName)) { + string fullPath = Path.Combine(directoryName, fileName); + string fullDirPath = Path.GetDirectoryName(fullPath); + if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath); + using (FileStream streamWriter = File.Create(fullPath)) { + int size = 2048; + byte[] data = new byte[2048]; + + using (BinaryReader reader = new BinaryReader(theEntry.Open())) { + while (true) { + size = reader.Read(data, 0, data.Length); + if (size > 0) { + streamWriter.Write(data, 0, size); + } else { + break; + } + } + } + streamWriter.Close(); + } + } + } + } + } + } + + private void OnPreUpdate(PluginInfrastructureCancelEventArgs args) { + if (PreUpdatePlugin != null) PreUpdatePlugin(this, args); + } + + private void OnUpdated(PluginInfrastructureEventArgs args) { + if (PluginUpdated != null) PluginUpdated(this, args); + } + + private void OnPreDelete(PluginInfrastructureCancelEventArgs args) { + if (PreRemovePlugin != null) PreRemovePlugin(this, args); + } + + private void OnDeleted(PluginInfrastructureEventArgs args) { + if (PluginRemoved != null) PluginRemoved(this, args); + } + + private void OnPreInstall(PluginInfrastructureCancelEventArgs args) { + if (PreInstallPlugin != null) PreInstallPlugin(this, args); + } + + private void OnInstalled(PluginInfrastructureEventArgs args) { + if (PluginInstalled != null) PluginInstalled(this, args); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerControl.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerControl.Designer.cs index a7c62e8bc9..ab9dffbaa0 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerControl.Designer.cs @@ -1,52 +1,52 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class InstallationManagerControl { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - } - - #endregion - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class InstallationManagerControl { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + } + + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerControl.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerControl.cs index a783fa02ec..68e0af9ec5 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerControl.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerControl.cs @@ -1,36 +1,36 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class InstallationManagerControl : UserControl { - private IStatusView statusView; - public IStatusView StatusView { - get { return statusView; } - set { statusView = value; } - } - - public InstallationManagerControl() - : base() { - InitializeComponent(); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class InstallationManagerControl : UserControl { + private IStatusView statusView; + public IStatusView StatusView { + get { return statusView; } + set { statusView = value; } + } + + public InstallationManagerControl() + : base() { + InitializeComponent(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerException.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerException.cs index 2d557f7b51..c1c163d199 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerException.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerException.cs @@ -1,33 +1,33 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Runtime.Serialization; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - [Serializable] - public class InstallationManagerException : Exception { - public InstallationManagerException() : base() { } - public InstallationManagerException(string msg) : base(msg) { } - public InstallationManagerException(string msg, Exception e) : base(msg, e) { } - protected InstallationManagerException(SerializationInfo info, StreamingContext context) : base(info, context) { } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Runtime.Serialization; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + [Serializable] + public class InstallationManagerException : Exception { + public InstallationManagerException() : base() { } + public InstallationManagerException(string msg) : base(msg) { } + public InstallationManagerException(string msg, Exception e) : base(msg, e) { } + protected InstallationManagerException(SerializationInfo info, StreamingContext context) : base(info, context) { } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerForm.Designer.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerForm.Designer.cs index 7fd072e32e..9b659f44cd 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerForm.Designer.cs @@ -1,311 +1,311 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class InstallationManagerForm { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.statusStrip = new System.Windows.Forms.StatusStrip(); - this.toolStripProgressBar = new System.Windows.Forms.ToolStripProgressBar(); - this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.tabControl = new System.Windows.Forms.TabControl(); - this.localPluginsTabPage = new System.Windows.Forms.TabPage(); - this.localPluginsView = new HeuristicLab.PluginInfrastructure.Advanced.InstalledPluginsView(); - this.availablePluginsTabPage = new System.Windows.Forms.TabPage(); - this.remotePluginInstaller = new HeuristicLab.PluginInfrastructure.Advanced.AvailablePluginsView(); - this.uploadPluginsTabPage = new System.Windows.Forms.TabPage(); - this.pluginEditor = new HeuristicLab.PluginInfrastructure.Advanced.UploadPluginsView(); - this.manageProductsTabPage = new System.Windows.Forms.TabPage(); - this.productEditor = new HeuristicLab.PluginInfrastructure.Advanced.EditProductsView(); - this.logTabPage = new System.Windows.Forms.TabPage(); - this.logTextBox = new System.Windows.Forms.TextBox(); - this.menuStrip = new System.Windows.Forms.MenuStrip(); - this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.connectionSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.statusStrip.SuspendLayout(); - this.tabControl.SuspendLayout(); - this.localPluginsTabPage.SuspendLayout(); - this.availablePluginsTabPage.SuspendLayout(); - this.uploadPluginsTabPage.SuspendLayout(); - this.manageProductsTabPage.SuspendLayout(); - this.logTabPage.SuspendLayout(); - this.menuStrip.SuspendLayout(); - this.SuspendLayout(); - // - // statusStrip - // - this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripProgressBar, - this.toolStripStatusLabel}); - this.statusStrip.Location = new System.Drawing.Point(0, 422); - this.statusStrip.Name = "statusStrip"; - this.statusStrip.Size = new System.Drawing.Size(622, 22); - this.statusStrip.TabIndex = 0; - // - // toolStripProgressBar - // - this.toolStripProgressBar.MarqueeAnimationSpeed = 30; - this.toolStripProgressBar.Name = "toolStripProgressBar"; - this.toolStripProgressBar.Size = new System.Drawing.Size(100, 16); - this.toolStripProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee; - this.toolStripProgressBar.Visible = false; - // - // toolStripStatusLabel - // - this.toolStripStatusLabel.Name = "toolStripStatusLabel"; - this.toolStripStatusLabel.Size = new System.Drawing.Size(0, 17); - // - // tabControl - // - this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tabControl.Controls.Add(this.localPluginsTabPage); - this.tabControl.Controls.Add(this.availablePluginsTabPage); - this.tabControl.Controls.Add(this.uploadPluginsTabPage); - this.tabControl.Controls.Add(this.manageProductsTabPage); - this.tabControl.Controls.Add(this.logTabPage); - this.tabControl.Location = new System.Drawing.Point(12, 27); - this.tabControl.Name = "tabControl"; - this.tabControl.SelectedIndex = 0; - this.tabControl.Size = new System.Drawing.Size(598, 392); - this.tabControl.TabIndex = 16; - this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged); - // - // localPluginsTabPage - // - this.localPluginsTabPage.Controls.Add(this.localPluginsView); - this.localPluginsTabPage.Location = new System.Drawing.Point(4, 22); - this.localPluginsTabPage.Name = "localPluginsTabPage"; - this.localPluginsTabPage.Padding = new System.Windows.Forms.Padding(3); - this.localPluginsTabPage.Size = new System.Drawing.Size(590, 366); - this.localPluginsTabPage.TabIndex = 0; - this.localPluginsTabPage.Text = "Installed Plugins"; - this.toolTip.SetToolTip(this.localPluginsTabPage, "Delete or update installed plugins"); - this.localPluginsTabPage.UseVisualStyleBackColor = true; - // - // localPluginsView - // - this.localPluginsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.localPluginsView.InstallationManager = null; - this.localPluginsView.Location = new System.Drawing.Point(6, 6); - this.localPluginsView.Name = "localPluginsView"; - this.localPluginsView.PluginManager = null; - this.localPluginsView.Size = new System.Drawing.Size(578, 354); - this.localPluginsView.StatusView = null; - this.localPluginsView.TabIndex = 0; - // - // availablePluginsTabPage - // - this.availablePluginsTabPage.Controls.Add(this.remotePluginInstaller); - this.availablePluginsTabPage.Location = new System.Drawing.Point(4, 22); - this.availablePluginsTabPage.Name = "availablePluginsTabPage"; - this.availablePluginsTabPage.Padding = new System.Windows.Forms.Padding(3); - this.availablePluginsTabPage.Size = new System.Drawing.Size(590, 366); - this.availablePluginsTabPage.TabIndex = 1; - this.availablePluginsTabPage.Text = "Available Plugins"; - this.toolTip.SetToolTip(this.availablePluginsTabPage, "Download and install new plugins"); - this.availablePluginsTabPage.UseVisualStyleBackColor = true; - // - // remotePluginInstaller - // - this.remotePluginInstaller.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.remotePluginInstaller.InstallationManager = null; - this.remotePluginInstaller.Location = new System.Drawing.Point(6, 6); - this.remotePluginInstaller.Name = "remotePluginInstaller"; - this.remotePluginInstaller.PluginManager = null; - this.remotePluginInstaller.Size = new System.Drawing.Size(578, 354); - this.remotePluginInstaller.StatusView = null; - this.remotePluginInstaller.TabIndex = 14; - // - // uploadPluginsTabPage - // - this.uploadPluginsTabPage.Controls.Add(this.pluginEditor); - this.uploadPluginsTabPage.Location = new System.Drawing.Point(4, 22); - this.uploadPluginsTabPage.Name = "uploadPluginsTabPage"; - this.uploadPluginsTabPage.Padding = new System.Windows.Forms.Padding(3); - this.uploadPluginsTabPage.Size = new System.Drawing.Size(590, 366); - this.uploadPluginsTabPage.TabIndex = 3; - this.uploadPluginsTabPage.Text = "Upload Plugins"; - this.toolTip.SetToolTip(this.uploadPluginsTabPage, "Upload plugins"); - this.uploadPluginsTabPage.UseVisualStyleBackColor = true; - // - // pluginEditor - // - this.pluginEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pluginEditor.Location = new System.Drawing.Point(6, 6); - this.pluginEditor.Name = "pluginEditor"; - this.pluginEditor.PluginManager = null; - this.pluginEditor.Size = new System.Drawing.Size(578, 354); - this.pluginEditor.StatusView = null; - this.pluginEditor.TabIndex = 0; - // - // manageProductsTabPage - // - this.manageProductsTabPage.Controls.Add(this.productEditor); - this.manageProductsTabPage.Location = new System.Drawing.Point(4, 22); - this.manageProductsTabPage.Name = "manageProductsTabPage"; - this.manageProductsTabPage.Padding = new System.Windows.Forms.Padding(3); - this.manageProductsTabPage.Size = new System.Drawing.Size(590, 366); - this.manageProductsTabPage.TabIndex = 4; - this.manageProductsTabPage.Text = "Manage Products"; - this.toolTip.SetToolTip(this.manageProductsTabPage, "Create and manage products"); - this.manageProductsTabPage.UseVisualStyleBackColor = true; - // - // productEditor - // - this.productEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.productEditor.Location = new System.Drawing.Point(6, 6); - this.productEditor.Name = "productEditor"; - this.productEditor.Size = new System.Drawing.Size(578, 354); - this.productEditor.StatusView = null; - this.productEditor.TabIndex = 0; - // - // logTabPage - // - this.logTabPage.Controls.Add(this.logTextBox); - this.logTabPage.Location = new System.Drawing.Point(4, 22); - this.logTabPage.Name = "logTabPage"; - this.logTabPage.Size = new System.Drawing.Size(590, 366); - this.logTabPage.TabIndex = 2; - this.logTabPage.Text = "Log"; - this.toolTip.SetToolTip(this.logTabPage, "Show Log Messages"); - this.logTabPage.UseVisualStyleBackColor = true; - // - // logTextBox - // - this.logTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.logTextBox.Location = new System.Drawing.Point(3, 3); - this.logTextBox.Multiline = true; - this.logTextBox.Name = "logTextBox"; - this.logTextBox.ReadOnly = true; - this.logTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.logTextBox.Size = new System.Drawing.Size(584, 360); - this.logTextBox.TabIndex = 0; - // - // menuStrip - // - this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.optionsToolStripMenuItem}); - this.menuStrip.Location = new System.Drawing.Point(0, 0); - this.menuStrip.Name = "menuStrip"; - this.menuStrip.Size = new System.Drawing.Size(622, 24); - this.menuStrip.TabIndex = 17; - this.menuStrip.Text = "menuStrip1"; - // - // optionsToolStripMenuItem - // - this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.connectionSettingsToolStripMenuItem}); - this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; - this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.optionsToolStripMenuItem.Text = "Options"; - // - // connectionSettingsToolStripMenuItem - // - this.connectionSettingsToolStripMenuItem.Image = global::HeuristicLab.PluginInfrastructure.Resources.NetworkConnections; - this.connectionSettingsToolStripMenuItem.Name = "connectionSettingsToolStripMenuItem"; - this.connectionSettingsToolStripMenuItem.Size = new System.Drawing.Size(190, 22); - this.connectionSettingsToolStripMenuItem.Text = "Connection Settings..."; - this.connectionSettingsToolStripMenuItem.Click += new System.EventHandler(this.connectionSettingsToolStripMenuItem_Click); - // - // InstallationManagerForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.ClientSize = new System.Drawing.Size(622, 444); - this.Controls.Add(this.tabControl); - this.Controls.Add(this.statusStrip); - this.Controls.Add(this.menuStrip); - this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MainMenuStrip = this.menuStrip; - this.Name = "InstallationManagerForm"; - this.Text = "Plugin Manager"; - this.statusStrip.ResumeLayout(false); - this.statusStrip.PerformLayout(); - this.tabControl.ResumeLayout(false); - this.localPluginsTabPage.ResumeLayout(false); - this.availablePluginsTabPage.ResumeLayout(false); - this.uploadPluginsTabPage.ResumeLayout(false); - this.manageProductsTabPage.ResumeLayout(false); - this.logTabPage.ResumeLayout(false); - this.logTabPage.PerformLayout(); - this.menuStrip.ResumeLayout(false); - this.menuStrip.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.StatusStrip statusStrip; - private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel; - private AvailablePluginsView remotePluginInstaller; - private System.Windows.Forms.TabControl tabControl; - private System.Windows.Forms.TabPage localPluginsTabPage; - private System.Windows.Forms.TabPage availablePluginsTabPage; - private System.Windows.Forms.TabPage logTabPage; - private System.Windows.Forms.TextBox logTextBox; - private System.Windows.Forms.MenuStrip menuStrip; - private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem connectionSettingsToolStripMenuItem; - private System.Windows.Forms.TabPage uploadPluginsTabPage; - private System.Windows.Forms.TabPage manageProductsTabPage; - private UploadPluginsView pluginEditor; - private EditProductsView productEditor; - private InstalledPluginsView localPluginsView; - private System.Windows.Forms.ToolTip toolTip; - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class InstallationManagerForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.statusStrip = new System.Windows.Forms.StatusStrip(); + this.toolStripProgressBar = new System.Windows.Forms.ToolStripProgressBar(); + this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); + this.tabControl = new System.Windows.Forms.TabControl(); + this.localPluginsTabPage = new System.Windows.Forms.TabPage(); + this.localPluginsView = new HeuristicLab.PluginInfrastructure.Advanced.InstalledPluginsView(); + this.availablePluginsTabPage = new System.Windows.Forms.TabPage(); + this.remotePluginInstaller = new HeuristicLab.PluginInfrastructure.Advanced.AvailablePluginsView(); + this.uploadPluginsTabPage = new System.Windows.Forms.TabPage(); + this.pluginEditor = new HeuristicLab.PluginInfrastructure.Advanced.UploadPluginsView(); + this.manageProductsTabPage = new System.Windows.Forms.TabPage(); + this.productEditor = new HeuristicLab.PluginInfrastructure.Advanced.EditProductsView(); + this.logTabPage = new System.Windows.Forms.TabPage(); + this.logTextBox = new System.Windows.Forms.TextBox(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.connectionSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.statusStrip.SuspendLayout(); + this.tabControl.SuspendLayout(); + this.localPluginsTabPage.SuspendLayout(); + this.availablePluginsTabPage.SuspendLayout(); + this.uploadPluginsTabPage.SuspendLayout(); + this.manageProductsTabPage.SuspendLayout(); + this.logTabPage.SuspendLayout(); + this.menuStrip.SuspendLayout(); + this.SuspendLayout(); + // + // statusStrip + // + this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripProgressBar, + this.toolStripStatusLabel}); + this.statusStrip.Location = new System.Drawing.Point(0, 422); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size(622, 22); + this.statusStrip.TabIndex = 0; + // + // toolStripProgressBar + // + this.toolStripProgressBar.MarqueeAnimationSpeed = 30; + this.toolStripProgressBar.Name = "toolStripProgressBar"; + this.toolStripProgressBar.Size = new System.Drawing.Size(100, 16); + this.toolStripProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.toolStripProgressBar.Visible = false; + // + // toolStripStatusLabel + // + this.toolStripStatusLabel.Name = "toolStripStatusLabel"; + this.toolStripStatusLabel.Size = new System.Drawing.Size(0, 17); + // + // tabControl + // + this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl.Controls.Add(this.localPluginsTabPage); + this.tabControl.Controls.Add(this.availablePluginsTabPage); + this.tabControl.Controls.Add(this.uploadPluginsTabPage); + this.tabControl.Controls.Add(this.manageProductsTabPage); + this.tabControl.Controls.Add(this.logTabPage); + this.tabControl.Location = new System.Drawing.Point(12, 27); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(598, 392); + this.tabControl.TabIndex = 16; + this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged); + // + // localPluginsTabPage + // + this.localPluginsTabPage.Controls.Add(this.localPluginsView); + this.localPluginsTabPage.Location = new System.Drawing.Point(4, 22); + this.localPluginsTabPage.Name = "localPluginsTabPage"; + this.localPluginsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.localPluginsTabPage.Size = new System.Drawing.Size(590, 366); + this.localPluginsTabPage.TabIndex = 0; + this.localPluginsTabPage.Text = "Installed Plugins"; + this.toolTip.SetToolTip(this.localPluginsTabPage, "Delete or update installed plugins"); + this.localPluginsTabPage.UseVisualStyleBackColor = true; + // + // localPluginsView + // + this.localPluginsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.localPluginsView.InstallationManager = null; + this.localPluginsView.Location = new System.Drawing.Point(6, 6); + this.localPluginsView.Name = "localPluginsView"; + this.localPluginsView.PluginManager = null; + this.localPluginsView.Size = new System.Drawing.Size(578, 354); + this.localPluginsView.StatusView = null; + this.localPluginsView.TabIndex = 0; + // + // availablePluginsTabPage + // + this.availablePluginsTabPage.Controls.Add(this.remotePluginInstaller); + this.availablePluginsTabPage.Location = new System.Drawing.Point(4, 22); + this.availablePluginsTabPage.Name = "availablePluginsTabPage"; + this.availablePluginsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.availablePluginsTabPage.Size = new System.Drawing.Size(590, 366); + this.availablePluginsTabPage.TabIndex = 1; + this.availablePluginsTabPage.Text = "Available Plugins"; + this.toolTip.SetToolTip(this.availablePluginsTabPage, "Download and install new plugins"); + this.availablePluginsTabPage.UseVisualStyleBackColor = true; + // + // remotePluginInstaller + // + this.remotePluginInstaller.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.remotePluginInstaller.InstallationManager = null; + this.remotePluginInstaller.Location = new System.Drawing.Point(6, 6); + this.remotePluginInstaller.Name = "remotePluginInstaller"; + this.remotePluginInstaller.PluginManager = null; + this.remotePluginInstaller.Size = new System.Drawing.Size(578, 354); + this.remotePluginInstaller.StatusView = null; + this.remotePluginInstaller.TabIndex = 14; + // + // uploadPluginsTabPage + // + this.uploadPluginsTabPage.Controls.Add(this.pluginEditor); + this.uploadPluginsTabPage.Location = new System.Drawing.Point(4, 22); + this.uploadPluginsTabPage.Name = "uploadPluginsTabPage"; + this.uploadPluginsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.uploadPluginsTabPage.Size = new System.Drawing.Size(590, 366); + this.uploadPluginsTabPage.TabIndex = 3; + this.uploadPluginsTabPage.Text = "Upload Plugins"; + this.toolTip.SetToolTip(this.uploadPluginsTabPage, "Upload plugins"); + this.uploadPluginsTabPage.UseVisualStyleBackColor = true; + // + // pluginEditor + // + this.pluginEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginEditor.Location = new System.Drawing.Point(6, 6); + this.pluginEditor.Name = "pluginEditor"; + this.pluginEditor.PluginManager = null; + this.pluginEditor.Size = new System.Drawing.Size(578, 354); + this.pluginEditor.StatusView = null; + this.pluginEditor.TabIndex = 0; + // + // manageProductsTabPage + // + this.manageProductsTabPage.Controls.Add(this.productEditor); + this.manageProductsTabPage.Location = new System.Drawing.Point(4, 22); + this.manageProductsTabPage.Name = "manageProductsTabPage"; + this.manageProductsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.manageProductsTabPage.Size = new System.Drawing.Size(590, 366); + this.manageProductsTabPage.TabIndex = 4; + this.manageProductsTabPage.Text = "Manage Products"; + this.toolTip.SetToolTip(this.manageProductsTabPage, "Create and manage products"); + this.manageProductsTabPage.UseVisualStyleBackColor = true; + // + // productEditor + // + this.productEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productEditor.Location = new System.Drawing.Point(6, 6); + this.productEditor.Name = "productEditor"; + this.productEditor.Size = new System.Drawing.Size(578, 354); + this.productEditor.StatusView = null; + this.productEditor.TabIndex = 0; + // + // logTabPage + // + this.logTabPage.Controls.Add(this.logTextBox); + this.logTabPage.Location = new System.Drawing.Point(4, 22); + this.logTabPage.Name = "logTabPage"; + this.logTabPage.Size = new System.Drawing.Size(590, 366); + this.logTabPage.TabIndex = 2; + this.logTabPage.Text = "Log"; + this.toolTip.SetToolTip(this.logTabPage, "Show Log Messages"); + this.logTabPage.UseVisualStyleBackColor = true; + // + // logTextBox + // + this.logTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.logTextBox.Location = new System.Drawing.Point(3, 3); + this.logTextBox.Multiline = true; + this.logTextBox.Name = "logTextBox"; + this.logTextBox.ReadOnly = true; + this.logTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.logTextBox.Size = new System.Drawing.Size(584, 360); + this.logTextBox.TabIndex = 0; + // + // menuStrip + // + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.optionsToolStripMenuItem}); + this.menuStrip.Location = new System.Drawing.Point(0, 0); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size(622, 24); + this.menuStrip.TabIndex = 17; + this.menuStrip.Text = "menuStrip1"; + // + // optionsToolStripMenuItem + // + this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.connectionSettingsToolStripMenuItem}); + this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); + this.optionsToolStripMenuItem.Text = "Options"; + // + // connectionSettingsToolStripMenuItem + // + this.connectionSettingsToolStripMenuItem.Image = global::HeuristicLab.PluginInfrastructure.Resources.NetworkConnections; + this.connectionSettingsToolStripMenuItem.Name = "connectionSettingsToolStripMenuItem"; + this.connectionSettingsToolStripMenuItem.Size = new System.Drawing.Size(190, 22); + this.connectionSettingsToolStripMenuItem.Text = "Connection Settings..."; + this.connectionSettingsToolStripMenuItem.Click += new System.EventHandler(this.connectionSettingsToolStripMenuItem_Click); + // + // InstallationManagerForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(622, 444); + this.Controls.Add(this.tabControl); + this.Controls.Add(this.statusStrip); + this.Controls.Add(this.menuStrip); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MainMenuStrip = this.menuStrip; + this.Name = "InstallationManagerForm"; + this.Text = "Plugin Manager"; + this.statusStrip.ResumeLayout(false); + this.statusStrip.PerformLayout(); + this.tabControl.ResumeLayout(false); + this.localPluginsTabPage.ResumeLayout(false); + this.availablePluginsTabPage.ResumeLayout(false); + this.uploadPluginsTabPage.ResumeLayout(false); + this.manageProductsTabPage.ResumeLayout(false); + this.logTabPage.ResumeLayout(false); + this.logTabPage.PerformLayout(); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel; + private AvailablePluginsView remotePluginInstaller; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage localPluginsTabPage; + private System.Windows.Forms.TabPage availablePluginsTabPage; + private System.Windows.Forms.TabPage logTabPage; + private System.Windows.Forms.TextBox logTextBox; + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem connectionSettingsToolStripMenuItem; + private System.Windows.Forms.TabPage uploadPluginsTabPage; + private System.Windows.Forms.TabPage manageProductsTabPage; + private UploadPluginsView pluginEditor; + private EditProductsView productEditor; + private InstalledPluginsView localPluginsView; + private System.Windows.Forms.ToolTip toolTip; + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerForm.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerForm.cs index 05a798b633..820c850777 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManagerForm.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstallationManagerForm.cs @@ -1,252 +1,252 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class InstallationManagerForm : Form, IStatusView { - private InstallationManager installationManager; - private string pluginDir; - - public InstallationManagerForm(PluginManager pluginManager) - : base() { - InitializeComponent(); - Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); - - pluginManager.PluginLoaded += pluginManager_PluginLoaded; - pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; - pluginManager.Initializing += pluginManager_Initializing; - pluginManager.Initialized += pluginManager_Initialized; - - pluginDir = Application.StartupPath; - - installationManager = new InstallationManager(pluginDir); - installationManager.PluginInstalled += new EventHandler(installationManager_PluginInstalled); - installationManager.PluginRemoved += new EventHandler(installationManager_PluginRemoved); - installationManager.PluginUpdated += new EventHandler(installationManager_PluginUpdated); - installationManager.PreInstallPlugin += new EventHandler(installationManager_PreInstallPlugin); - installationManager.PreRemovePlugin += new EventHandler(installationManager_PreRemovePlugin); - installationManager.PreUpdatePlugin += new EventHandler(installationManager_PreUpdatePlugin); - - // show or hide controls for uploading plugins based on setting - if (!HeuristicLab.PluginInfrastructure.Properties.Settings.Default.ShowPluginUploadControls) { - tabControl.Controls.Remove(uploadPluginsTabPage); - tabControl.Controls.Remove(manageProductsTabPage); - } else { - pluginEditor.PluginManager = pluginManager; - } - - localPluginsView.StatusView = this; - localPluginsView.PluginManager = pluginManager; - localPluginsView.InstallationManager = installationManager; - - remotePluginInstaller.StatusView = this; - remotePluginInstaller.InstallationManager = installationManager; - remotePluginInstaller.PluginManager = pluginManager; - - pluginEditor.StatusView = this; - pluginEditor.PluginManager = pluginManager; - - productEditor.StatusView = this; - } - - - #region plugin manager event handlers - private void pluginManager_Initialized(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Initialized PluginInfrastructure"); - } - - private void pluginManager_Initializing(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Initializing PluginInfrastructure"); - } - - private void pluginManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Unloaded " + e.Entity); - } - - private void pluginManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Loaded " + e.Entity); - } - #endregion - - #region installation manager event handlers - private void installationManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) { - if (e.Plugins.Count() > 0) { - e.Cancel = (bool)Invoke((Func, bool>)ConfirmUpdateAction, e.Plugins) == false; - } - } - - private void installationManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) { - if (e.Plugins.Count() > 0) { - e.Cancel = (bool)Invoke((Func, bool>)ConfirmRemoveAction, e.Plugins) == false; - } - } - - private void installationManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) { - if (e.Plugins.Count() > 0) - if ((bool)Invoke((Func, bool>)ConfirmInstallAction, e.Plugins) == true) { - SetStatusStrip("Installing " + e.Plugins.Aggregate("", (a, b) => a.ToString() + "; " + b.ToString())); - e.Cancel = false; - } else { - e.Cancel = true; - SetStatusStrip("Install canceled"); - } - } - - private void installationManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Updated " + e.Entity); - } - - private void installationManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Removed " + e.Entity); - } - - private void installationManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Installed " + e.Entity); - } - #endregion - - #region button events - private void connectionSettingsToolStripMenuItem_Click(object sender, EventArgs e) { - using (var conSetupView = new ConnectionSetupView()) { - conSetupView.ShowDialog(this); - } - } - private void tabControl_SelectedIndexChanged(object sender, EventArgs e) { - toolStripStatusLabel.Text = string.Empty; - } - #endregion - - #region confirmation dialogs - private bool ConfirmRemoveAction(IEnumerable plugins) { - StringBuilder strBuilder = new StringBuilder(); - foreach (var plugin in plugins) { - foreach (var file in plugin.Files) { - strBuilder.AppendLine(Path.GetFileName(file.Name)); - } - } - using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) { - return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; - } - } - - private bool ConfirmUpdateAction(IEnumerable plugins) { - StringBuilder strBuilder = new StringBuilder(); - foreach (var plugin in plugins) { - strBuilder.AppendLine(plugin.ToString()); - } - using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) { - return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; - } - } - - private bool ConfirmInstallAction(IEnumerable plugins) { - foreach (var plugin in plugins) { - if (!string.IsNullOrEmpty(plugin.LicenseText)) { - using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) { - if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK) - return false; - } - } - } - return true; - } - - - #endregion - - #region helper methods - private void SetStatusStrip(string msg) { - if (InvokeRequired) Invoke((Action)SetStatusStrip, msg); - else { - toolStripStatusLabel.Text = msg; - logTextBox.Text += DateTime.Now + ": " + msg + Environment.NewLine; - } - } - - #endregion - - - protected override void OnClosing(CancelEventArgs e) { - installationManager.PluginInstalled -= new EventHandler(installationManager_PluginInstalled); - installationManager.PluginRemoved -= new EventHandler(installationManager_PluginRemoved); - installationManager.PluginUpdated -= new EventHandler(installationManager_PluginUpdated); - installationManager.PreInstallPlugin -= new EventHandler(installationManager_PreInstallPlugin); - installationManager.PreRemovePlugin -= new EventHandler(installationManager_PreRemovePlugin); - installationManager.PreUpdatePlugin -= new EventHandler(installationManager_PreUpdatePlugin); - base.OnClosing(e); - } - - #region IStatusView Members - - public void ShowProgressIndicator(double percentProgress) { - if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress"); - toolStripProgressBar.Visible = true; - toolStripProgressBar.Style = ProgressBarStyle.Continuous; - int range = toolStripProgressBar.Maximum - toolStripProgressBar.Minimum; - toolStripProgressBar.Value = (int)(percentProgress * range + toolStripProgressBar.Minimum); - } - - public void ShowProgressIndicator() { - toolStripProgressBar.Visible = true; - toolStripProgressBar.Style = ProgressBarStyle.Marquee; - } - - public void HideProgressIndicator() { - toolStripProgressBar.Visible = false; - } - - public void ShowMessage(string message) { - if (string.IsNullOrEmpty(toolStripStatusLabel.Text)) - toolStripStatusLabel.Text = message; - else - toolStripStatusLabel.Text += "; " + message; - } - - public void RemoveMessage(string message) { - if (toolStripStatusLabel.Text.IndexOf("; " + message) > 0) { - toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace("; " + message, ""); - } - toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace(message, ""); - toolStripStatusLabel.Text = toolStripStatusLabel.Text.TrimStart(' ', ';'); - } - public void LockUI() { - Cursor = Cursors.AppStarting; - tabControl.Enabled = false; - } - public void UnlockUI() { - tabControl.Enabled = true; - Cursor = Cursors.Default; - } - public void ShowError(string shortMessage, string description) { - logTextBox.Text += DateTime.Now + ": " + shortMessage + Environment.NewLine + description + Environment.NewLine; - MessageBox.Show(description, shortMessage); - } - #endregion - - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class InstallationManagerForm : Form, IStatusView { + private InstallationManager installationManager; + private string pluginDir; + + public InstallationManagerForm(PluginManager pluginManager) + : base() { + InitializeComponent(); + Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + + pluginManager.PluginLoaded += pluginManager_PluginLoaded; + pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; + pluginManager.Initializing += pluginManager_Initializing; + pluginManager.Initialized += pluginManager_Initialized; + + pluginDir = Application.StartupPath; + + installationManager = new InstallationManager(pluginDir); + installationManager.PluginInstalled += new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved += new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated += new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin += new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin += new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin += new EventHandler(installationManager_PreUpdatePlugin); + + // show or hide controls for uploading plugins based on setting + if (!HeuristicLab.PluginInfrastructure.Properties.Settings.Default.ShowPluginUploadControls) { + tabControl.Controls.Remove(uploadPluginsTabPage); + tabControl.Controls.Remove(manageProductsTabPage); + } else { + pluginEditor.PluginManager = pluginManager; + } + + localPluginsView.StatusView = this; + localPluginsView.PluginManager = pluginManager; + localPluginsView.InstallationManager = installationManager; + + remotePluginInstaller.StatusView = this; + remotePluginInstaller.InstallationManager = installationManager; + remotePluginInstaller.PluginManager = pluginManager; + + pluginEditor.StatusView = this; + pluginEditor.PluginManager = pluginManager; + + productEditor.StatusView = this; + } + + + #region plugin manager event handlers + private void pluginManager_Initialized(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initialized PluginInfrastructure"); + } + + private void pluginManager_Initializing(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initializing PluginInfrastructure"); + } + + private void pluginManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Unloaded " + e.Entity); + } + + private void pluginManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Loaded " + e.Entity); + } + #endregion + + #region installation manager event handlers + private void installationManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmUpdateAction, e.Plugins) == false; + } + } + + private void installationManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmRemoveAction, e.Plugins) == false; + } + } + + private void installationManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) + if ((bool)Invoke((Func, bool>)ConfirmInstallAction, e.Plugins) == true) { + SetStatusStrip("Installing " + e.Plugins.Aggregate("", (a, b) => a.ToString() + "; " + b.ToString())); + e.Cancel = false; + } else { + e.Cancel = true; + SetStatusStrip("Install canceled"); + } + } + + private void installationManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Updated " + e.Entity); + } + + private void installationManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Removed " + e.Entity); + } + + private void installationManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Installed " + e.Entity); + } + #endregion + + #region button events + private void connectionSettingsToolStripMenuItem_Click(object sender, EventArgs e) { + using (var conSetupView = new ConnectionSetupView()) { + conSetupView.ShowDialog(this); + } + } + private void tabControl_SelectedIndexChanged(object sender, EventArgs e) { + toolStripStatusLabel.Text = string.Empty; + } + #endregion + + #region confirmation dialogs + private bool ConfirmRemoveAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + foreach (var file in plugin.Files) { + strBuilder.AppendLine(Path.GetFileName(file.Name)); + } + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmUpdateAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + strBuilder.AppendLine(plugin.ToString()); + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmInstallAction(IEnumerable plugins) { + foreach (var plugin in plugins) { + if (!string.IsNullOrEmpty(plugin.LicenseText)) { + using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) { + if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK) + return false; + } + } + } + return true; + } + + + #endregion + + #region helper methods + private void SetStatusStrip(string msg) { + if (InvokeRequired) Invoke((Action)SetStatusStrip, msg); + else { + toolStripStatusLabel.Text = msg; + logTextBox.Text += DateTime.Now + ": " + msg + Environment.NewLine; + } + } + + #endregion + + + protected override void OnClosing(CancelEventArgs e) { + installationManager.PluginInstalled -= new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved -= new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated -= new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin -= new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin -= new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin -= new EventHandler(installationManager_PreUpdatePlugin); + base.OnClosing(e); + } + + #region IStatusView Members + + public void ShowProgressIndicator(double percentProgress) { + if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress"); + toolStripProgressBar.Visible = true; + toolStripProgressBar.Style = ProgressBarStyle.Continuous; + int range = toolStripProgressBar.Maximum - toolStripProgressBar.Minimum; + toolStripProgressBar.Value = (int)(percentProgress * range + toolStripProgressBar.Minimum); + } + + public void ShowProgressIndicator() { + toolStripProgressBar.Visible = true; + toolStripProgressBar.Style = ProgressBarStyle.Marquee; + } + + public void HideProgressIndicator() { + toolStripProgressBar.Visible = false; + } + + public void ShowMessage(string message) { + if (string.IsNullOrEmpty(toolStripStatusLabel.Text)) + toolStripStatusLabel.Text = message; + else + toolStripStatusLabel.Text += "; " + message; + } + + public void RemoveMessage(string message) { + if (toolStripStatusLabel.Text.IndexOf("; " + message) > 0) { + toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace("; " + message, ""); + } + toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace(message, ""); + toolStripStatusLabel.Text = toolStripStatusLabel.Text.TrimStart(' ', ';'); + } + public void LockUI() { + Cursor = Cursors.AppStarting; + tabControl.Enabled = false; + } + public void UnlockUI() { + tabControl.Enabled = true; + Cursor = Cursors.Default; + } + public void ShowError(string shortMessage, string description) { + logTextBox.Text += DateTime.Now + ": " + shortMessage + Environment.NewLine + description + Environment.NewLine; + MessageBox.Show(description, shortMessage); + } + #endregion + + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstalledPluginsView.Designer.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstalledPluginsView.Designer.cs index 3b1148e8b7..3ec0ff40aa 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstalledPluginsView.Designer.cs @@ -1,182 +1,182 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class InstalledPluginsView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.ListViewGroup listViewGroup3 = new System.Windows.Forms.ListViewGroup("Active Plugins", System.Windows.Forms.HorizontalAlignment.Left); - System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("Disabled Plugins", System.Windows.Forms.HorizontalAlignment.Left); - this.localPluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); - this.nameHeader = new System.Windows.Forms.ColumnHeader(); - this.versionHeader = new System.Windows.Forms.ColumnHeader(); - this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginImageList = new System.Windows.Forms.ImageList(this.components); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.refreshButton = new System.Windows.Forms.Button(); - this.removeButton = new System.Windows.Forms.Button(); - this.updateSelectedButton = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // localPluginsListView - // - this.localPluginsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.localPluginsListView.CheckBoxes = true; - this.localPluginsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.nameHeader, - this.versionHeader, - this.descriptionHeader}); - listViewGroup3.Header = "Active Plugins"; - listViewGroup3.Name = "activePluginsGroup"; - listViewGroup4.Header = "Disabled Plugins"; - listViewGroup4.Name = "disabledPluginsGroup"; - this.localPluginsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] { - listViewGroup3, - listViewGroup4}); - this.localPluginsListView.Location = new System.Drawing.Point(0, 0); - this.localPluginsListView.Name = "localPluginsListView"; - this.localPluginsListView.Size = new System.Drawing.Size(539, 477); - this.localPluginsListView.SmallImageList = this.pluginImageList; - this.localPluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.localPluginsListView.SuppressItemCheckedEvents = false; - this.localPluginsListView.TabIndex = 13; - this.localPluginsListView.UseCompatibleStateImageBehavior = false; - this.localPluginsListView.View = System.Windows.Forms.View.Details; - this.localPluginsListView.ItemActivate += new System.EventHandler(this.localPluginsListView_ItemActivate); - this.localPluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginsListView_ItemChecked); - // - // nameHeader - // - this.nameHeader.Text = "Name"; - this.nameHeader.Width = 199; - // - // versionHeader - // - this.versionHeader.Text = "Version"; - this.versionHeader.Width = 84; - // - // descriptionHeader - // - this.descriptionHeader.Text = "Description"; - this.descriptionHeader.Width = 245; - // - // pluginImageList - // - this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); - this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // refreshButton - // - this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Repeat; - this.refreshButton.Location = new System.Drawing.Point(0, 483); - this.refreshButton.Name = "refreshButton"; - this.refreshButton.Size = new System.Drawing.Size(96, 25); - this.refreshButton.TabIndex = 14; - this.refreshButton.Text = "Refresh List"; - this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.refreshButton, "Refresh List of Installed Plugins"); - this.refreshButton.UseVisualStyleBackColor = true; - this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); - // - // removeButton - // - this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.removeButton.Enabled = false; - this.removeButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Remove; - this.removeButton.Location = new System.Drawing.Point(222, 483); - this.removeButton.Name = "removeButton"; - this.removeButton.Size = new System.Drawing.Size(110, 25); - this.removeButton.TabIndex = 12; - this.removeButton.Text = "Delete Selected"; - this.removeButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.removeButton, "Delete all selected plugins from disk"); - this.removeButton.UseVisualStyleBackColor = true; - this.removeButton.Click += new System.EventHandler(this.removeButton_Click); - // - // updateSelectedButton - // - this.updateSelectedButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.updateSelectedButton.Enabled = false; - this.updateSelectedButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; - this.updateSelectedButton.Location = new System.Drawing.Point(102, 483); - this.updateSelectedButton.Name = "updateSelectedButton"; - this.updateSelectedButton.Size = new System.Drawing.Size(114, 25); - this.updateSelectedButton.TabIndex = 6; - this.updateSelectedButton.Text = "Update Selected"; - this.updateSelectedButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.updateSelectedButton, "Update all selected plugins"); - this.updateSelectedButton.UseVisualStyleBackColor = true; - this.updateSelectedButton.Click += new System.EventHandler(this.updateSelectedButton_Click); - // - // LocalPluginsView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.Controls.Add(this.refreshButton); - this.Controls.Add(this.localPluginsListView); - this.Controls.Add(this.removeButton); - this.Controls.Add(this.updateSelectedButton); - this.Name = "LocalPluginsView"; - this.Size = new System.Drawing.Size(539, 508); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button updateSelectedButton; - private System.Windows.Forms.Button removeButton; - private MultiSelectListView localPluginsListView; - private System.Windows.Forms.ColumnHeader nameHeader; - private System.Windows.Forms.ColumnHeader versionHeader; - private System.Windows.Forms.ColumnHeader descriptionHeader; - private System.Windows.Forms.ToolTip toolTip; - private System.Windows.Forms.ImageList pluginImageList; - private System.Windows.Forms.Button refreshButton; - // private LocalPluginManagerView localPluginManagerView; - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class InstalledPluginsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewGroup listViewGroup3 = new System.Windows.Forms.ListViewGroup("Active Plugins", System.Windows.Forms.HorizontalAlignment.Left); + System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("Disabled Plugins", System.Windows.Forms.HorizontalAlignment.Left); + this.localPluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.nameHeader = new System.Windows.Forms.ColumnHeader(); + this.versionHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginImageList = new System.Windows.Forms.ImageList(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.refreshButton = new System.Windows.Forms.Button(); + this.removeButton = new System.Windows.Forms.Button(); + this.updateSelectedButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // localPluginsListView + // + this.localPluginsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.localPluginsListView.CheckBoxes = true; + this.localPluginsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.nameHeader, + this.versionHeader, + this.descriptionHeader}); + listViewGroup3.Header = "Active Plugins"; + listViewGroup3.Name = "activePluginsGroup"; + listViewGroup4.Header = "Disabled Plugins"; + listViewGroup4.Name = "disabledPluginsGroup"; + this.localPluginsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] { + listViewGroup3, + listViewGroup4}); + this.localPluginsListView.Location = new System.Drawing.Point(0, 0); + this.localPluginsListView.Name = "localPluginsListView"; + this.localPluginsListView.Size = new System.Drawing.Size(539, 477); + this.localPluginsListView.SmallImageList = this.pluginImageList; + this.localPluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.localPluginsListView.SuppressItemCheckedEvents = false; + this.localPluginsListView.TabIndex = 13; + this.localPluginsListView.UseCompatibleStateImageBehavior = false; + this.localPluginsListView.View = System.Windows.Forms.View.Details; + this.localPluginsListView.ItemActivate += new System.EventHandler(this.localPluginsListView_ItemActivate); + this.localPluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginsListView_ItemChecked); + // + // nameHeader + // + this.nameHeader.Text = "Name"; + this.nameHeader.Width = 199; + // + // versionHeader + // + this.versionHeader.Text = "Version"; + this.versionHeader.Width = 84; + // + // descriptionHeader + // + this.descriptionHeader.Text = "Description"; + this.descriptionHeader.Width = 245; + // + // pluginImageList + // + this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // refreshButton + // + this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Repeat; + this.refreshButton.Location = new System.Drawing.Point(0, 483); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(96, 25); + this.refreshButton.TabIndex = 14; + this.refreshButton.Text = "Refresh List"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Refresh List of Installed Plugins"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); + // + // removeButton + // + this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.removeButton.Enabled = false; + this.removeButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Remove; + this.removeButton.Location = new System.Drawing.Point(222, 483); + this.removeButton.Name = "removeButton"; + this.removeButton.Size = new System.Drawing.Size(110, 25); + this.removeButton.TabIndex = 12; + this.removeButton.Text = "Delete Selected"; + this.removeButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.removeButton, "Delete all selected plugins from disk"); + this.removeButton.UseVisualStyleBackColor = true; + this.removeButton.Click += new System.EventHandler(this.removeButton_Click); + // + // updateSelectedButton + // + this.updateSelectedButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.updateSelectedButton.Enabled = false; + this.updateSelectedButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.updateSelectedButton.Location = new System.Drawing.Point(102, 483); + this.updateSelectedButton.Name = "updateSelectedButton"; + this.updateSelectedButton.Size = new System.Drawing.Size(114, 25); + this.updateSelectedButton.TabIndex = 6; + this.updateSelectedButton.Text = "Update Selected"; + this.updateSelectedButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.updateSelectedButton, "Update all selected plugins"); + this.updateSelectedButton.UseVisualStyleBackColor = true; + this.updateSelectedButton.Click += new System.EventHandler(this.updateSelectedButton_Click); + // + // LocalPluginsView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.refreshButton); + this.Controls.Add(this.localPluginsListView); + this.Controls.Add(this.removeButton); + this.Controls.Add(this.updateSelectedButton); + this.Name = "LocalPluginsView"; + this.Size = new System.Drawing.Size(539, 508); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button updateSelectedButton; + private System.Windows.Forms.Button removeButton; + private MultiSelectListView localPluginsListView; + private System.Windows.Forms.ColumnHeader nameHeader; + private System.Windows.Forms.ColumnHeader versionHeader; + private System.Windows.Forms.ColumnHeader descriptionHeader; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ImageList pluginImageList; + private System.Windows.Forms.Button refreshButton; + // private LocalPluginManagerView localPluginManagerView; + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstalledPluginsView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstalledPluginsView.cs index a0ee163c47..2f4eb743af 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstalledPluginsView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/InstalledPluginsView.cs @@ -1,243 +1,243 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class InstalledPluginsView : InstallationManagerControl { - private const string CheckingPluginsMessage = "Checking for updated plugins..."; - private const string NoUpdatesAvailableMessage = "No updates available."; - private BackgroundWorker removePluginsBackgroundWorker; - private BackgroundWorker updatePluginsBackgroundWorker; - - private ListViewGroup enabledPluginsGroup; - private ListViewGroup disabledPluginsGroup; - - private PluginManager pluginManager; - public PluginManager PluginManager { - get { return pluginManager; } - set { - pluginManager = value; - UpdateControl(); - } - } - - private InstallationManager installationManager; - public InstallationManager InstallationManager { - get { return installationManager; } - set { installationManager = value; } - } - - public InstalledPluginsView() - : base() { - InitializeComponent(); - enabledPluginsGroup = localPluginsListView.Groups["activePluginsGroup"]; - disabledPluginsGroup = localPluginsListView.Groups["disabledPluginsGroup"]; - pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); - removePluginsBackgroundWorker = new BackgroundWorker(); - removePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(removePluginsBackgroundWorker_DoWork); - removePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(removePluginsBackgroundWorker_RunWorkerCompleted); - updatePluginsBackgroundWorker = new BackgroundWorker(); - updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); - updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); - - UpdateControl(); - } - - - - #region event handlers for plugin removal background worker - void removePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("File Deletion Error", "There was problem while deleting files." + Environment.NewLine + e.Error.Message); - } - UpdateControl(); - StatusView.HideProgressIndicator(); - StatusView.UnlockUI(); - } - - void removePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { - IEnumerable pluginsToRemove = (IEnumerable)e.Argument; - if (pluginsToRemove.Count() > 0) { - installationManager.Remove(pluginsToRemove); - pluginManager.DiscoverAndCheckPlugins(); - } - } - #endregion - - #region event handlers for update plugins backgroundworker - void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - } - StatusView.RemoveMessage(CheckingPluginsMessage); - StatusView.HideProgressIndicator(); - UpdateControl(); - StatusView.UnlockUI(); - } - - void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { - IEnumerable selectedPlugins = (IEnumerable)e.Argument; - var remotePlugins = installationManager.GetRemotePluginList(); - // if there is a local plugin with same name and same major and minor version then it's an update - var pluginsToUpdate = from remotePlugin in remotePlugins - let matchingLocalPlugins = from installedPlugin in selectedPlugins - where installedPlugin.Name == remotePlugin.Name - where installedPlugin.Version.Major == remotePlugin.Version.Major - where installedPlugin.Version.Minor == remotePlugin.Version.Minor - where IsNewerThan(remotePlugin, installedPlugin) - select installedPlugin - where matchingLocalPlugins.Count() > 0 - select remotePlugin; - if (pluginsToUpdate.Count() > 0) { - bool cancelled; - installationManager.Update(pluginsToUpdate, out cancelled); - if (!cancelled) pluginManager.DiscoverAndCheckPlugins(); - } - } - - // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 - private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { - // newer: build version is higher, or if build version is the same revision is higher - return plugin1.Version.Build > plugin2.Version.Build || - (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); - } - #endregion - - private void UpdateControl() { - ClearPluginList(); - if (pluginManager != null) { - localPluginsListView.SuppressItemCheckedEvents = true; - foreach (var plugin in pluginManager.Plugins) { - var item = CreateListViewItem(plugin); - if (plugin.PluginState == PluginState.Enabled) { - item.Group = enabledPluginsGroup; - } else if (plugin.PluginState == PluginState.Disabled) { - item.Group = disabledPluginsGroup; - } - localPluginsListView.Items.Add(item); - } - localPluginsListView.SuppressItemCheckedEvents = false; - } - removeButton.Enabled = localPluginsListView.CheckedItems.Count > 0; - updateSelectedButton.Enabled = localPluginsListView.CheckedItems.Count > 0; - Util.ResizeColumns(localPluginsListView.Columns.OfType()); - } - - private void ClearPluginList() { - List itemsToRemove = new List(localPluginsListView.Items.OfType()); - itemsToRemove.ForEach(item => localPluginsListView.Items.Remove(item)); - } - - private static ListViewItem CreateListViewItem(PluginDescription plugin) { - ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); - item.Tag = plugin; - item.ImageIndex = 0; - return item; - } - - private void pluginsListView_ItemChecked(object sender, ItemCheckedEventArgs e) { - // checked items are marked for removal - if (e.Item.Checked) { - List modifiedItems = new List(); - foreach (ListViewItem item in localPluginsListView.SelectedItems) { - modifiedItems.Add(item); - int oldItemsCount = 0; - while (oldItemsCount < modifiedItems.Count) { - oldItemsCount = modifiedItems.Count; - var oldModifiedItems = new List(modifiedItems); - foreach (var modifiedItem in oldModifiedItems) { - var plugin = (IPluginDescription)modifiedItem.Tag; - // also check all dependent plugins - foreach (ListViewItem dependentItem in localPluginsListView.Items) { - var dependent = (IPluginDescription)dependentItem.Tag; - if (!modifiedItems.Contains(dependentItem) && - !dependentItem.Checked && (from dep in dependent.Dependencies - where dep.Name == plugin.Name - where dep.Version == plugin.Version - select dep).Any()) { - modifiedItems.Add(dependentItem); - } - } - } - } - } - localPluginsListView.CheckItems(modifiedItems); - } else { - List modifiedItems = new List(); - foreach (ListViewItem item in localPluginsListView.SelectedItems) { - modifiedItems.Add(item); - } - localPluginsListView.UncheckItems(modifiedItems); - } - OnItemsCheckedChanged(EventArgs.Empty); - } - - private void localPluginsListView_ItemActivate(object sender, EventArgs e) { - if (localPluginsListView.SelectedItems.Count > 0) { - var plugin = (PluginDescription)localPluginsListView.SelectedItems[0].Tag; - PluginView pluginView = new PluginView(plugin); - pluginView.Show(this); - } - } - - private void OnItemsCheckedChanged(EventArgs eventArgs) { - removeButton.Enabled = localPluginsListView.CheckedItems.Count > 0; - updateSelectedButton.Enabled = localPluginsListView.CheckedItems.Count > 0; - } - - private void updateSelectedButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.RemoveMessage(NoUpdatesAvailableMessage); - StatusView.ShowMessage(CheckingPluginsMessage); - var checkedPlugins = localPluginsListView.CheckedItems.OfType() - .Select(item => item.Tag) - .OfType() - .ToList(); - updatePluginsBackgroundWorker.RunWorkerAsync(checkedPlugins); - } - - private void removeButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - var checkedPlugins = localPluginsListView.CheckedItems.OfType() - .Select(item => item.Tag) - .OfType() - .ToList(); - removePluginsBackgroundWorker.RunWorkerAsync(checkedPlugins); - } - - private void refreshButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - // refresh = update empty list of plugins (plugins are reloaded) - updatePluginsBackgroundWorker.RunWorkerAsync(new IPluginDescription[0]); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class InstalledPluginsView : InstallationManagerControl { + private const string CheckingPluginsMessage = "Checking for updated plugins..."; + private const string NoUpdatesAvailableMessage = "No updates available."; + private BackgroundWorker removePluginsBackgroundWorker; + private BackgroundWorker updatePluginsBackgroundWorker; + + private ListViewGroup enabledPluginsGroup; + private ListViewGroup disabledPluginsGroup; + + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { + pluginManager = value; + UpdateControl(); + } + } + + private InstallationManager installationManager; + public InstallationManager InstallationManager { + get { return installationManager; } + set { installationManager = value; } + } + + public InstalledPluginsView() + : base() { + InitializeComponent(); + enabledPluginsGroup = localPluginsListView.Groups["activePluginsGroup"]; + disabledPluginsGroup = localPluginsListView.Groups["disabledPluginsGroup"]; + pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + removePluginsBackgroundWorker = new BackgroundWorker(); + removePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(removePluginsBackgroundWorker_DoWork); + removePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(removePluginsBackgroundWorker_RunWorkerCompleted); + updatePluginsBackgroundWorker = new BackgroundWorker(); + updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); + updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); + + UpdateControl(); + } + + + + #region event handlers for plugin removal background worker + void removePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("File Deletion Error", "There was problem while deleting files." + Environment.NewLine + e.Error.Message); + } + UpdateControl(); + StatusView.HideProgressIndicator(); + StatusView.UnlockUI(); + } + + void removePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable pluginsToRemove = (IEnumerable)e.Argument; + if (pluginsToRemove.Count() > 0) { + installationManager.Remove(pluginsToRemove); + pluginManager.DiscoverAndCheckPlugins(); + } + } + #endregion + + #region event handlers for update plugins backgroundworker + void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } + StatusView.RemoveMessage(CheckingPluginsMessage); + StatusView.HideProgressIndicator(); + UpdateControl(); + StatusView.UnlockUI(); + } + + void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable selectedPlugins = (IEnumerable)e.Argument; + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in selectedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + if (pluginsToUpdate.Count() > 0) { + bool cancelled; + installationManager.Update(pluginsToUpdate, out cancelled); + if (!cancelled) pluginManager.DiscoverAndCheckPlugins(); + } + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + #endregion + + private void UpdateControl() { + ClearPluginList(); + if (pluginManager != null) { + localPluginsListView.SuppressItemCheckedEvents = true; + foreach (var plugin in pluginManager.Plugins) { + var item = CreateListViewItem(plugin); + if (plugin.PluginState == PluginState.Enabled) { + item.Group = enabledPluginsGroup; + } else if (plugin.PluginState == PluginState.Disabled) { + item.Group = disabledPluginsGroup; + } + localPluginsListView.Items.Add(item); + } + localPluginsListView.SuppressItemCheckedEvents = false; + } + removeButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + updateSelectedButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + Util.ResizeColumns(localPluginsListView.Columns.OfType()); + } + + private void ClearPluginList() { + List itemsToRemove = new List(localPluginsListView.Items.OfType()); + itemsToRemove.ForEach(item => localPluginsListView.Items.Remove(item)); + } + + private static ListViewItem CreateListViewItem(PluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + return item; + } + + private void pluginsListView_ItemChecked(object sender, ItemCheckedEventArgs e) { + // checked items are marked for removal + if (e.Item.Checked) { + List modifiedItems = new List(); + foreach (ListViewItem item in localPluginsListView.SelectedItems) { + modifiedItems.Add(item); + int oldItemsCount = 0; + while (oldItemsCount < modifiedItems.Count) { + oldItemsCount = modifiedItems.Count; + var oldModifiedItems = new List(modifiedItems); + foreach (var modifiedItem in oldModifiedItems) { + var plugin = (IPluginDescription)modifiedItem.Tag; + // also check all dependent plugins + foreach (ListViewItem dependentItem in localPluginsListView.Items) { + var dependent = (IPluginDescription)dependentItem.Tag; + if (!modifiedItems.Contains(dependentItem) && + !dependentItem.Checked && (from dep in dependent.Dependencies + where dep.Name == plugin.Name + where dep.Version == plugin.Version + select dep).Any()) { + modifiedItems.Add(dependentItem); + } + } + } + } + } + localPluginsListView.CheckItems(modifiedItems); + } else { + List modifiedItems = new List(); + foreach (ListViewItem item in localPluginsListView.SelectedItems) { + modifiedItems.Add(item); + } + localPluginsListView.UncheckItems(modifiedItems); + } + OnItemsCheckedChanged(EventArgs.Empty); + } + + private void localPluginsListView_ItemActivate(object sender, EventArgs e) { + if (localPluginsListView.SelectedItems.Count > 0) { + var plugin = (PluginDescription)localPluginsListView.SelectedItems[0].Tag; + PluginView pluginView = new PluginView(plugin); + pluginView.Show(this); + } + } + + private void OnItemsCheckedChanged(EventArgs eventArgs) { + removeButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + updateSelectedButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + } + + private void updateSelectedButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.RemoveMessage(NoUpdatesAvailableMessage); + StatusView.ShowMessage(CheckingPluginsMessage); + var checkedPlugins = localPluginsListView.CheckedItems.OfType() + .Select(item => item.Tag) + .OfType() + .ToList(); + updatePluginsBackgroundWorker.RunWorkerAsync(checkedPlugins); + } + + private void removeButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + var checkedPlugins = localPluginsListView.CheckedItems.OfType() + .Select(item => item.Tag) + .OfType() + .ToList(); + removePluginsBackgroundWorker.RunWorkerAsync(checkedPlugins); + } + + private void refreshButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + // refresh = update empty list of plugins (plugins are reloaded) + updatePluginsBackgroundWorker.RunWorkerAsync(new IPluginDescription[0]); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseConfirmationDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseConfirmationDialog.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseConfirmationDialog.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseConfirmationDialog.Designer.cs index ec87c6684f..43534aa114 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseConfirmationDialog.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseConfirmationDialog.Designer.cs @@ -1,205 +1,205 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class LicenseConfirmationDialog { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.richTextBox = new System.Windows.Forms.RichTextBox(); - this.acceptButton = new System.Windows.Forms.Button(); - this.rejectButton = new System.Windows.Forms.Button(); - this.licenseLabel = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.radioButtonGroupBox = new System.Windows.Forms.GroupBox(); - this.rejectRadioButton = new System.Windows.Forms.RadioButton(); - this.acceptRadioButton = new System.Windows.Forms.RadioButton(); - this.panel1 = new System.Windows.Forms.Panel(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.radioButtonGroupBox.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // richTextBox - // - this.richTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.richTextBox.BackColor = System.Drawing.SystemColors.HighlightText; - this.richTextBox.Location = new System.Drawing.Point(12, 48); - this.richTextBox.Name = "richTextBox"; - this.richTextBox.ReadOnly = true; - this.richTextBox.Size = new System.Drawing.Size(494, 287); - this.richTextBox.TabIndex = 0; - this.richTextBox.Text = ""; - // - // acceptButton - // - this.acceptButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.acceptButton.Enabled = false; - this.acceptButton.Location = new System.Drawing.Point(347, 53); - this.acceptButton.Name = "acceptButton"; - this.acceptButton.Size = new System.Drawing.Size(75, 23); - this.acceptButton.TabIndex = 1; - this.acceptButton.Text = "Next >"; - this.toolTip.SetToolTip(this.acceptButton, "Accept license agreement and continue installation"); - this.acceptButton.UseVisualStyleBackColor = true; - this.acceptButton.Click += new System.EventHandler(this.acceptButton_Click); - // - // rejectButton - // - this.rejectButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.rejectButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.rejectButton.Location = new System.Drawing.Point(428, 53); - this.rejectButton.Name = "rejectButton"; - this.rejectButton.Size = new System.Drawing.Size(79, 23); - this.rejectButton.TabIndex = 2; - this.rejectButton.Text = "Cancel"; - this.toolTip.SetToolTip(this.rejectButton, "Cancel installation"); - this.rejectButton.UseVisualStyleBackColor = true; - this.rejectButton.Click += new System.EventHandler(this.rejectButton_Click); - // - // licenseLabel - // - this.licenseLabel.AutoSize = true; - this.licenseLabel.Location = new System.Drawing.Point(12, 32); - this.licenseLabel.Name = "licenseLabel"; - this.licenseLabel.Size = new System.Drawing.Size(241, 13); - this.licenseLabel.TabIndex = 3; - this.licenseLabel.Text = "Please read following license agreement carefully."; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(115, 13); - this.label1.TabIndex = 4; - this.label1.Text = "License Agreement"; - // - // radioButtonGroupBox - // - this.radioButtonGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.radioButtonGroupBox.Controls.Add(this.rejectRadioButton); - this.radioButtonGroupBox.Controls.Add(this.acceptRadioButton); - this.radioButtonGroupBox.Location = new System.Drawing.Point(13, 5); - this.radioButtonGroupBox.Name = "radioButtonGroupBox"; - this.radioButtonGroupBox.Size = new System.Drawing.Size(281, 71); - this.radioButtonGroupBox.TabIndex = 5; - this.radioButtonGroupBox.TabStop = false; - // - // rejectRadioButton - // - this.rejectRadioButton.AutoSize = true; - this.rejectRadioButton.Location = new System.Drawing.Point(6, 42); - this.rejectRadioButton.Name = "rejectRadioButton"; - this.rejectRadioButton.Size = new System.Drawing.Size(264, 17); - this.rejectRadioButton.TabIndex = 1; - this.rejectRadioButton.TabStop = true; - this.rejectRadioButton.Text = "I do not accept the terms in the license agreement."; - this.rejectRadioButton.UseVisualStyleBackColor = true; - this.rejectRadioButton.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); - // - // acceptRadioButton - // - this.acceptRadioButton.AutoSize = true; - this.acceptRadioButton.Location = new System.Drawing.Point(6, 19); - this.acceptRadioButton.Name = "acceptRadioButton"; - this.acceptRadioButton.Size = new System.Drawing.Size(231, 17); - this.acceptRadioButton.TabIndex = 0; - this.acceptRadioButton.TabStop = true; - this.acceptRadioButton.Text = "I accept the terms in the license agreement."; - this.acceptRadioButton.UseVisualStyleBackColor = true; - this.acceptRadioButton.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.BackColor = System.Drawing.SystemColors.Control; - this.panel1.Controls.Add(this.acceptButton); - this.panel1.Controls.Add(this.radioButtonGroupBox); - this.panel1.Controls.Add(this.rejectButton); - this.panel1.Location = new System.Drawing.Point(-1, 341); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(520, 88); - this.panel1.TabIndex = 6; - // - // LicenseConfirmationDialog - // - this.AcceptButton = this.acceptButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.BackColor = System.Drawing.SystemColors.HighlightText; - this.CancelButton = this.rejectButton; - this.ClientSize = new System.Drawing.Size(518, 429); - this.Controls.Add(this.panel1); - this.Controls.Add(this.label1); - this.Controls.Add(this.licenseLabel); - this.Controls.Add(this.richTextBox); - this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "LicenseConfirmationDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.radioButtonGroupBox.ResumeLayout(false); - this.radioButtonGroupBox.PerformLayout(); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.RichTextBox richTextBox; - private System.Windows.Forms.Button acceptButton; - private System.Windows.Forms.Button rejectButton; - private System.Windows.Forms.Label licenseLabel; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.GroupBox radioButtonGroupBox; - private System.Windows.Forms.RadioButton rejectRadioButton; - private System.Windows.Forms.RadioButton acceptRadioButton; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ToolTip toolTip; - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class LicenseConfirmationDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.richTextBox = new System.Windows.Forms.RichTextBox(); + this.acceptButton = new System.Windows.Forms.Button(); + this.rejectButton = new System.Windows.Forms.Button(); + this.licenseLabel = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.radioButtonGroupBox = new System.Windows.Forms.GroupBox(); + this.rejectRadioButton = new System.Windows.Forms.RadioButton(); + this.acceptRadioButton = new System.Windows.Forms.RadioButton(); + this.panel1 = new System.Windows.Forms.Panel(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.radioButtonGroupBox.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // richTextBox + // + this.richTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.richTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.richTextBox.Location = new System.Drawing.Point(12, 48); + this.richTextBox.Name = "richTextBox"; + this.richTextBox.ReadOnly = true; + this.richTextBox.Size = new System.Drawing.Size(494, 287); + this.richTextBox.TabIndex = 0; + this.richTextBox.Text = ""; + // + // acceptButton + // + this.acceptButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.acceptButton.Enabled = false; + this.acceptButton.Location = new System.Drawing.Point(347, 53); + this.acceptButton.Name = "acceptButton"; + this.acceptButton.Size = new System.Drawing.Size(75, 23); + this.acceptButton.TabIndex = 1; + this.acceptButton.Text = "Next >"; + this.toolTip.SetToolTip(this.acceptButton, "Accept license agreement and continue installation"); + this.acceptButton.UseVisualStyleBackColor = true; + this.acceptButton.Click += new System.EventHandler(this.acceptButton_Click); + // + // rejectButton + // + this.rejectButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.rejectButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.rejectButton.Location = new System.Drawing.Point(428, 53); + this.rejectButton.Name = "rejectButton"; + this.rejectButton.Size = new System.Drawing.Size(79, 23); + this.rejectButton.TabIndex = 2; + this.rejectButton.Text = "Cancel"; + this.toolTip.SetToolTip(this.rejectButton, "Cancel installation"); + this.rejectButton.UseVisualStyleBackColor = true; + this.rejectButton.Click += new System.EventHandler(this.rejectButton_Click); + // + // licenseLabel + // + this.licenseLabel.AutoSize = true; + this.licenseLabel.Location = new System.Drawing.Point(12, 32); + this.licenseLabel.Name = "licenseLabel"; + this.licenseLabel.Size = new System.Drawing.Size(241, 13); + this.licenseLabel.TabIndex = 3; + this.licenseLabel.Text = "Please read following license agreement carefully."; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(115, 13); + this.label1.TabIndex = 4; + this.label1.Text = "License Agreement"; + // + // radioButtonGroupBox + // + this.radioButtonGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.radioButtonGroupBox.Controls.Add(this.rejectRadioButton); + this.radioButtonGroupBox.Controls.Add(this.acceptRadioButton); + this.radioButtonGroupBox.Location = new System.Drawing.Point(13, 5); + this.radioButtonGroupBox.Name = "radioButtonGroupBox"; + this.radioButtonGroupBox.Size = new System.Drawing.Size(281, 71); + this.radioButtonGroupBox.TabIndex = 5; + this.radioButtonGroupBox.TabStop = false; + // + // rejectRadioButton + // + this.rejectRadioButton.AutoSize = true; + this.rejectRadioButton.Location = new System.Drawing.Point(6, 42); + this.rejectRadioButton.Name = "rejectRadioButton"; + this.rejectRadioButton.Size = new System.Drawing.Size(264, 17); + this.rejectRadioButton.TabIndex = 1; + this.rejectRadioButton.TabStop = true; + this.rejectRadioButton.Text = "I do not accept the terms in the license agreement."; + this.rejectRadioButton.UseVisualStyleBackColor = true; + this.rejectRadioButton.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); + // + // acceptRadioButton + // + this.acceptRadioButton.AutoSize = true; + this.acceptRadioButton.Location = new System.Drawing.Point(6, 19); + this.acceptRadioButton.Name = "acceptRadioButton"; + this.acceptRadioButton.Size = new System.Drawing.Size(231, 17); + this.acceptRadioButton.TabIndex = 0; + this.acceptRadioButton.TabStop = true; + this.acceptRadioButton.Text = "I accept the terms in the license agreement."; + this.acceptRadioButton.UseVisualStyleBackColor = true; + this.acceptRadioButton.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.Control; + this.panel1.Controls.Add(this.acceptButton); + this.panel1.Controls.Add(this.radioButtonGroupBox); + this.panel1.Controls.Add(this.rejectButton); + this.panel1.Location = new System.Drawing.Point(-1, 341); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(520, 88); + this.panel1.TabIndex = 6; + // + // LicenseConfirmationDialog + // + this.AcceptButton = this.acceptButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.SystemColors.HighlightText; + this.CancelButton = this.rejectButton; + this.ClientSize = new System.Drawing.Size(518, 429); + this.Controls.Add(this.panel1); + this.Controls.Add(this.label1); + this.Controls.Add(this.licenseLabel); + this.Controls.Add(this.richTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "LicenseConfirmationDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.radioButtonGroupBox.ResumeLayout(false); + this.radioButtonGroupBox.PerformLayout(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox; + private System.Windows.Forms.Button acceptButton; + private System.Windows.Forms.Button rejectButton; + private System.Windows.Forms.Label licenseLabel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox radioButtonGroupBox; + private System.Windows.Forms.RadioButton rejectRadioButton; + private System.Windows.Forms.RadioButton acceptRadioButton; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolTip toolTip; + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseConfirmationDialog.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseConfirmationDialog.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseConfirmationDialog.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseConfirmationDialog.cs index e72acca3c4..8e1ac3dd4a 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseConfirmationDialog.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseConfirmationDialog.cs @@ -1,53 +1,53 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class LicenseConfirmationDialog : Form { - public LicenseConfirmationDialog() - : base() { - InitializeComponent(); - } - - public LicenseConfirmationDialog(IPluginDescription plugin) - : base() { - InitializeComponent(); - richTextBox.Text = plugin.LicenseText; - this.Text = plugin.ToString(); - this.DialogResult = DialogResult.Cancel; - } - - private void acceptButton_Click(object sender, EventArgs e) { - DialogResult = DialogResult.OK; - this.Close(); - } - - private void rejectButton_Click(object sender, EventArgs e) { - DialogResult = DialogResult.Cancel; - this.Close(); - } - - private void radioButton1_CheckedChanged(object sender, EventArgs e) { - acceptButton.Enabled = acceptRadioButton.Checked; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class LicenseConfirmationDialog : Form { + public LicenseConfirmationDialog() + : base() { + InitializeComponent(); + } + + public LicenseConfirmationDialog(IPluginDescription plugin) + : base() { + InitializeComponent(); + richTextBox.Text = plugin.LicenseText; + this.Text = plugin.ToString(); + this.DialogResult = DialogResult.Cancel; + } + + private void acceptButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.OK; + this.Close(); + } + + private void rejectButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void radioButton1_CheckedChanged(object sender, EventArgs e) { + acceptButton.Enabled = acceptRadioButton.Checked; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseView.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseView.Designer.cs index 3171b199ae..2e2ab2e2bc 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseView.Designer.cs @@ -1,81 +1,81 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class LicenseView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LicenseView)); - this.richTextBox = new System.Windows.Forms.RichTextBox(); - this.SuspendLayout(); - // - // richTextBox - // - this.richTextBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.richTextBox.Location = new System.Drawing.Point(0, 0); - this.richTextBox.Name = "richTextBox"; - this.richTextBox.ReadOnly = true; - this.richTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; - this.richTextBox.Size = new System.Drawing.Size(410, 445); - this.richTextBox.TabIndex = 1; - this.richTextBox.Text = ""; - // - // LicenseView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.ClientSize = new System.Drawing.Size(410, 445); - this.Controls.Add(this.richTextBox); - this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.Name = "LicenseView"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "License Agreement"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.RichTextBox richTextBox; - - - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class LicenseView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LicenseView)); + this.richTextBox = new System.Windows.Forms.RichTextBox(); + this.SuspendLayout(); + // + // richTextBox + // + this.richTextBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox.Location = new System.Drawing.Point(0, 0); + this.richTextBox.Name = "richTextBox"; + this.richTextBox.ReadOnly = true; + this.richTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.richTextBox.Size = new System.Drawing.Size(410, 445); + this.richTextBox.TabIndex = 1; + this.richTextBox.Text = ""; + // + // LicenseView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(410, 445); + this.Controls.Add(this.richTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.Name = "LicenseView"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "License Agreement"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox; + + + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseView.cs similarity index 96% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseView.cs index 61114b3ab4..5b71202dde 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/LicenseView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/LicenseView.cs @@ -1,39 +1,39 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class LicenseView : Form { - - public LicenseView() - : base() { - InitializeComponent(); - Name = "License"; - } - - public LicenseView(IPluginDescription plugin) - : base() { - InitializeComponent(); - Name = "License of: " + plugin; - richTextBox.Text = plugin.LicenseText; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class LicenseView : Form { + + public LicenseView() + : base() { + InitializeComponent(); + Name = "License"; + } + + public LicenseView(IPluginDescription plugin) + : base() { + InitializeComponent(); + Name = "License of: " + plugin; + richTextBox.Text = plugin.LicenseText; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/MultiSelectListView.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/MultiSelectListView.Designer.cs index cfd4d84540..22b5cba4d7 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/MultiSelectListView.Designer.cs @@ -1,51 +1,51 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class MultiSelectListView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class MultiSelectListView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/MultiSelectListView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/MultiSelectListView.cs index ea26dc50ea..e05cfeaac6 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/MultiSelectListView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/MultiSelectListView.cs @@ -1,95 +1,95 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class MultiSelectListView : ListView { - public MultiSelectListView() { - InitializeComponent(); - } - - private bool inhibitAutoCheck; - protected override void OnMouseDown(MouseEventArgs e) { - inhibitAutoCheck = true; - base.OnMouseDown(e); - } - - protected override void OnMouseUp(MouseEventArgs e) { - base.OnMouseUp(e); - inhibitAutoCheck = false; - } - - // item check is raised for each selected item that was not directly clicked (those should be ignored) - // and then one the item whose checkbox was clicked - protected override void OnItemCheck(ItemCheckEventArgs ice) { - if (ice == null) throw new ArgumentNullException("ice"); - // don't change the checked state of items that were not clicked directly - if (inhibitAutoCheck) { - ice.NewValue = ice.CurrentValue; - } - // if this item was directly clicked then check if it is selected as well - var item = Items[ice.Index]; - if (!item.Selected) { - // when the item was not selected previously - // clear any selection - List selectedItems = new List(SelectedItems.OfType()); - selectedItems.ForEach(x => x.Selected = false); - // select only the clicked item - item.Selected = true; - } - base.OnItemCheck(ice); - } - - private bool suppressItemCheckedEvents; - public bool SuppressItemCheckedEvents { - get { - return suppressItemCheckedEvents; - } - set { - suppressItemCheckedEvents = value; - } - } - protected override void OnItemChecked(ItemCheckedEventArgs e) { - if (!suppressItemCheckedEvents) - base.OnItemChecked(e); - } - - public void CheckItems(IEnumerable items) { - suppressItemCheckedEvents = true; - - foreach (var item in items) - item.Checked = true; - suppressItemCheckedEvents = false; - } - - public void UncheckItems(IEnumerable items) { - suppressItemCheckedEvents = true; - - foreach (var item in items) - item.Checked = false; - suppressItemCheckedEvents = false; - } - - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class MultiSelectListView : ListView { + public MultiSelectListView() { + InitializeComponent(); + } + + private bool inhibitAutoCheck; + protected override void OnMouseDown(MouseEventArgs e) { + inhibitAutoCheck = true; + base.OnMouseDown(e); + } + + protected override void OnMouseUp(MouseEventArgs e) { + base.OnMouseUp(e); + inhibitAutoCheck = false; + } + + // item check is raised for each selected item that was not directly clicked (those should be ignored) + // and then one the item whose checkbox was clicked + protected override void OnItemCheck(ItemCheckEventArgs ice) { + if (ice == null) throw new ArgumentNullException("ice"); + // don't change the checked state of items that were not clicked directly + if (inhibitAutoCheck) { + ice.NewValue = ice.CurrentValue; + } + // if this item was directly clicked then check if it is selected as well + var item = Items[ice.Index]; + if (!item.Selected) { + // when the item was not selected previously + // clear any selection + List selectedItems = new List(SelectedItems.OfType()); + selectedItems.ForEach(x => x.Selected = false); + // select only the clicked item + item.Selected = true; + } + base.OnItemCheck(ice); + } + + private bool suppressItemCheckedEvents; + public bool SuppressItemCheckedEvents { + get { + return suppressItemCheckedEvents; + } + set { + suppressItemCheckedEvents = value; + } + } + protected override void OnItemChecked(ItemCheckedEventArgs e) { + if (!suppressItemCheckedEvents) + base.OnItemChecked(e); + } + + public void CheckItems(IEnumerable items) { + suppressItemCheckedEvents = true; + + foreach (var item in items) + item.Checked = true; + suppressItemCheckedEvents = false; + } + + public void UncheckItems(IEnumerable items) { + suppressItemCheckedEvents = true; + + foreach (var item in items) + item.Checked = false; + suppressItemCheckedEvents = false; + } + + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginUpdaterForm.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginUpdaterForm.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginUpdaterForm.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginUpdaterForm.Designer.cs index 653af7dd9e..9a44a4643e 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginUpdaterForm.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginUpdaterForm.Designer.cs @@ -1,122 +1,122 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class PluginUpdaterForm { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.progressBar = new System.Windows.Forms.ProgressBar(); - this.statusLabel = new System.Windows.Forms.Label(); - this.okButton = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // progressBar - // - this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.progressBar.Location = new System.Drawing.Point(12, 73); - this.progressBar.Name = "progressBar"; - this.progressBar.Size = new System.Drawing.Size(350, 23); - this.progressBar.TabIndex = 1; - this.progressBar.UseWaitCursor = true; - // - // statusLabel - // - this.statusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.statusLabel.AutoSize = true; - this.statusLabel.Location = new System.Drawing.Point(13, 13); - this.statusLabel.Name = "statusLabel"; - this.statusLabel.Size = new System.Drawing.Size(61, 13); - this.statusLabel.TabIndex = 2; - this.statusLabel.Text = "statusLabel"; - this.statusLabel.UseWaitCursor = true; - // - // okButton - // - this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.okButton.Location = new System.Drawing.Point(12, 73); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(78, 23); - this.okButton.TabIndex = 3; - this.okButton.Text = "Ok"; - this.okButton.UseVisualStyleBackColor = true; - this.okButton.UseWaitCursor = true; - this.okButton.Visible = false; - this.okButton.Click += new System.EventHandler(this.okButton_Click); - // - // PluginUpdaterForm - // - this.AcceptButton = this.okButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.ClientSize = new System.Drawing.Size(374, 108); - this.Controls.Add(this.okButton); - this.Controls.Add(this.statusLabel); - this.Controls.Add(this.progressBar); - this.Cursor = System.Windows.Forms.Cursors.WaitCursor; - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "PluginUpdaterForm"; - this.ShowInTaskbar = false; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Plugin Updater"; - this.UseWaitCursor = true; - this.Load += new System.EventHandler(this.PluginUpdaterForm_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ToolTip toolTip; - private System.Windows.Forms.ProgressBar progressBar; - private System.Windows.Forms.Label statusLabel; - private System.Windows.Forms.Button okButton; - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class PluginUpdaterForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.progressBar = new System.Windows.Forms.ProgressBar(); + this.statusLabel = new System.Windows.Forms.Label(); + this.okButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // progressBar + // + this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar.Location = new System.Drawing.Point(12, 73); + this.progressBar.Name = "progressBar"; + this.progressBar.Size = new System.Drawing.Size(350, 23); + this.progressBar.TabIndex = 1; + this.progressBar.UseWaitCursor = true; + // + // statusLabel + // + this.statusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.statusLabel.AutoSize = true; + this.statusLabel.Location = new System.Drawing.Point(13, 13); + this.statusLabel.Name = "statusLabel"; + this.statusLabel.Size = new System.Drawing.Size(61, 13); + this.statusLabel.TabIndex = 2; + this.statusLabel.Text = "statusLabel"; + this.statusLabel.UseWaitCursor = true; + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.Location = new System.Drawing.Point(12, 73); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(78, 23); + this.okButton.TabIndex = 3; + this.okButton.Text = "Ok"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.UseWaitCursor = true; + this.okButton.Visible = false; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // PluginUpdaterForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(374, 108); + this.Controls.Add(this.okButton); + this.Controls.Add(this.statusLabel); + this.Controls.Add(this.progressBar); + this.Cursor = System.Windows.Forms.Cursors.WaitCursor; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "PluginUpdaterForm"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Plugin Updater"; + this.UseWaitCursor = true; + this.Load += new System.EventHandler(this.PluginUpdaterForm_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ProgressBar progressBar; + private System.Windows.Forms.Label statusLabel; + private System.Windows.Forms.Button okButton; + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginUpdaterForm.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginUpdaterForm.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginUpdaterForm.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginUpdaterForm.cs index 86ca8e296a..9108b003f5 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginUpdaterForm.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginUpdaterForm.cs @@ -1,261 +1,261 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class PluginUpdaterForm : Form, IStatusView { - private InstallationManager installationManager; - private PluginManager pluginManager; - private string pluginDir; - private BackgroundWorker updatePluginsBackgroundWorker; - - public PluginUpdaterForm(PluginManager pluginManager) - : base() { - InitializeComponent(); - Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); - pluginManager.PluginLoaded += pluginManager_PluginLoaded; - pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; - pluginManager.Initializing += pluginManager_Initializing; - pluginManager.Initialized += pluginManager_Initialized; - - pluginDir = Application.StartupPath; - - installationManager = new InstallationManager(pluginDir); - installationManager.PluginInstalled += new EventHandler(installationManager_PluginInstalled); - installationManager.PluginRemoved += new EventHandler(installationManager_PluginRemoved); - installationManager.PluginUpdated += new EventHandler(installationManager_PluginUpdated); - installationManager.PreInstallPlugin += new EventHandler(installationManager_PreInstallPlugin); - installationManager.PreRemovePlugin += new EventHandler(installationManager_PreRemovePlugin); - installationManager.PreUpdatePlugin += new EventHandler(installationManager_PreUpdatePlugin); - - this.pluginManager = pluginManager; - - updatePluginsBackgroundWorker = new BackgroundWorker(); - updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); - updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); - } - - - private void PluginUpdaterForm_Load(object sender, EventArgs e) { - updatePluginsBackgroundWorker.RunWorkerAsync(); - ShowProgressIndicator(); - ShowMessage("Downloading and installing plugins..."); - } - - #region event handlers for update plugins backgroundworker - void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - ShowError("Installation Error", "There was a problem while downloading and installing updates." + Environment.NewLine + "Please check your connection settings."); - } else { - Close(); - } - } - - void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { - IEnumerable installedPlugins = pluginManager.Plugins.OfType().ToList(); - var remotePlugins = installationManager.GetRemotePluginList(); - // if there is a local plugin with same name and same major and minor version then it's an update - var pluginsToUpdate = from remotePlugin in remotePlugins - let matchingLocalPlugins = from installedPlugin in installedPlugins - where installedPlugin.Name == remotePlugin.Name - where installedPlugin.Version.Major == remotePlugin.Version.Major - where installedPlugin.Version.Minor == remotePlugin.Version.Minor - where Util.IsNewerThan(remotePlugin, installedPlugin) - select installedPlugin - where matchingLocalPlugins.Count() > 0 - select remotePlugin; - if (pluginsToUpdate.Count() > 0) { - bool canceled; - installationManager.Update(pluginsToUpdate, out canceled); - if (!canceled) - pluginManager.DiscoverAndCheckPlugins(); - e.Cancel = false; - } - } - #endregion - - #region plugin manager event handlers - private void pluginManager_Initialized(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Initialized PluginInfrastructure"); - } - - private void pluginManager_Initializing(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Initializing PluginInfrastructure"); - } - - private void pluginManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Unloaded " + e.Entity); - } - - private void pluginManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Loaded " + e.Entity); - } - #endregion - - #region installation manager event handlers - private void installationManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) { - if (e.Plugins.Count() > 0) { - e.Cancel = (bool)Invoke((Func, bool>)ConfirmUpdateAction, e.Plugins) == false; - } - } - - private void installationManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) { - if (e.Plugins.Count() > 0) { - e.Cancel = (bool)Invoke((Func, bool>)ConfirmRemoveAction, e.Plugins) == false; - } - } - - private void installationManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) { - if (e.Plugins.Count() > 0) - if ((bool)Invoke((Func, bool>)ConfirmInstallAction, e.Plugins) == true) { - SetStatusStrip("Installing " + e.Plugins.Aggregate("", (a, b) => a.ToString() + "; " + b.ToString())); - e.Cancel = false; - } else { - e.Cancel = true; - SetStatusStrip("Install canceled"); - } - } - - private void installationManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Updated " + e.Entity); - } - - private void installationManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Removed " + e.Entity); - } - - private void installationManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) { - SetStatusStrip("Installed " + e.Entity); - } - #endregion - - #region confirmation dialogs - private bool ConfirmRemoveAction(IEnumerable plugins) { - StringBuilder strBuilder = new StringBuilder(); - foreach (var plugin in plugins) { - foreach (var file in plugin.Files) { - strBuilder.AppendLine(Path.GetFileName(file.Name)); - } - } - using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) { - return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; - } - } - - private bool ConfirmUpdateAction(IEnumerable plugins) { - StringBuilder strBuilder = new StringBuilder(); - foreach (var plugin in plugins) { - strBuilder.AppendLine(plugin.ToString()); - } - using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) { - return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; - } - } - - private bool ConfirmInstallAction(IEnumerable plugins) { - foreach (var plugin in plugins) { - if (!string.IsNullOrEmpty(plugin.LicenseText)) { - using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) { - if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK) - return false; - } - } - } - return true; - } - - - #endregion - - #region helper methods - private void SetStatusStrip(string msg) { - if (InvokeRequired) Invoke((Action)SetStatusStrip, msg); - else { - statusLabel.Text = msg; - } - } - - #endregion - - - protected override void OnClosing(CancelEventArgs e) { - installationManager.PluginInstalled -= new EventHandler(installationManager_PluginInstalled); - installationManager.PluginRemoved -= new EventHandler(installationManager_PluginRemoved); - installationManager.PluginUpdated -= new EventHandler(installationManager_PluginUpdated); - installationManager.PreInstallPlugin -= new EventHandler(installationManager_PreInstallPlugin); - installationManager.PreRemovePlugin -= new EventHandler(installationManager_PreRemovePlugin); - installationManager.PreUpdatePlugin -= new EventHandler(installationManager_PreUpdatePlugin); - base.OnClosing(e); - } - - #region IStatusView Members - - public void ShowProgressIndicator(double percentProgress) { - if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress"); - progressBar.Visible = true; - progressBar.Style = ProgressBarStyle.Continuous; - int range = progressBar.Maximum - progressBar.Minimum; - progressBar.Value = (int)(percentProgress * range + progressBar.Minimum); - } - - public void ShowProgressIndicator() { - progressBar.Visible = true; - progressBar.Style = ProgressBarStyle.Marquee; - } - - public void HideProgressIndicator() { - progressBar.Visible = false; - } - - public void ShowMessage(string message) { - statusLabel.Text = message; - } - - public void RemoveMessage(string message) { - statusLabel.Text = string.Empty; - } - - public void LockUI() { - Cursor = Cursors.AppStarting; - } - public void UnlockUI() { - Cursor = Cursors.Default; - } - public void ShowError(string shortMessage, string description) { - progressBar.Visible = false; - okButton.Visible = true; - statusLabel.Text = shortMessage + Environment.NewLine + description; - this.Cursor = Cursors.Default; - } - #endregion - - private void okButton_Click(object sender, EventArgs e) { - Close(); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class PluginUpdaterForm : Form, IStatusView { + private InstallationManager installationManager; + private PluginManager pluginManager; + private string pluginDir; + private BackgroundWorker updatePluginsBackgroundWorker; + + public PluginUpdaterForm(PluginManager pluginManager) + : base() { + InitializeComponent(); + Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + pluginManager.PluginLoaded += pluginManager_PluginLoaded; + pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; + pluginManager.Initializing += pluginManager_Initializing; + pluginManager.Initialized += pluginManager_Initialized; + + pluginDir = Application.StartupPath; + + installationManager = new InstallationManager(pluginDir); + installationManager.PluginInstalled += new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved += new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated += new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin += new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin += new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin += new EventHandler(installationManager_PreUpdatePlugin); + + this.pluginManager = pluginManager; + + updatePluginsBackgroundWorker = new BackgroundWorker(); + updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); + updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); + } + + + private void PluginUpdaterForm_Load(object sender, EventArgs e) { + updatePluginsBackgroundWorker.RunWorkerAsync(); + ShowProgressIndicator(); + ShowMessage("Downloading and installing plugins..."); + } + + #region event handlers for update plugins backgroundworker + void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + ShowError("Installation Error", "There was a problem while downloading and installing updates." + Environment.NewLine + "Please check your connection settings."); + } else { + Close(); + } + } + + void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable installedPlugins = pluginManager.Plugins.OfType().ToList(); + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in installedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where Util.IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + if (pluginsToUpdate.Count() > 0) { + bool canceled; + installationManager.Update(pluginsToUpdate, out canceled); + if (!canceled) + pluginManager.DiscoverAndCheckPlugins(); + e.Cancel = false; + } + } + #endregion + + #region plugin manager event handlers + private void pluginManager_Initialized(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initialized PluginInfrastructure"); + } + + private void pluginManager_Initializing(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initializing PluginInfrastructure"); + } + + private void pluginManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Unloaded " + e.Entity); + } + + private void pluginManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Loaded " + e.Entity); + } + #endregion + + #region installation manager event handlers + private void installationManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmUpdateAction, e.Plugins) == false; + } + } + + private void installationManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmRemoveAction, e.Plugins) == false; + } + } + + private void installationManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) + if ((bool)Invoke((Func, bool>)ConfirmInstallAction, e.Plugins) == true) { + SetStatusStrip("Installing " + e.Plugins.Aggregate("", (a, b) => a.ToString() + "; " + b.ToString())); + e.Cancel = false; + } else { + e.Cancel = true; + SetStatusStrip("Install canceled"); + } + } + + private void installationManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Updated " + e.Entity); + } + + private void installationManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Removed " + e.Entity); + } + + private void installationManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Installed " + e.Entity); + } + #endregion + + #region confirmation dialogs + private bool ConfirmRemoveAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + foreach (var file in plugin.Files) { + strBuilder.AppendLine(Path.GetFileName(file.Name)); + } + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmUpdateAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + strBuilder.AppendLine(plugin.ToString()); + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmInstallAction(IEnumerable plugins) { + foreach (var plugin in plugins) { + if (!string.IsNullOrEmpty(plugin.LicenseText)) { + using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) { + if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK) + return false; + } + } + } + return true; + } + + + #endregion + + #region helper methods + private void SetStatusStrip(string msg) { + if (InvokeRequired) Invoke((Action)SetStatusStrip, msg); + else { + statusLabel.Text = msg; + } + } + + #endregion + + + protected override void OnClosing(CancelEventArgs e) { + installationManager.PluginInstalled -= new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved -= new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated -= new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin -= new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin -= new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin -= new EventHandler(installationManager_PreUpdatePlugin); + base.OnClosing(e); + } + + #region IStatusView Members + + public void ShowProgressIndicator(double percentProgress) { + if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress"); + progressBar.Visible = true; + progressBar.Style = ProgressBarStyle.Continuous; + int range = progressBar.Maximum - progressBar.Minimum; + progressBar.Value = (int)(percentProgress * range + progressBar.Minimum); + } + + public void ShowProgressIndicator() { + progressBar.Visible = true; + progressBar.Style = ProgressBarStyle.Marquee; + } + + public void HideProgressIndicator() { + progressBar.Visible = false; + } + + public void ShowMessage(string message) { + statusLabel.Text = message; + } + + public void RemoveMessage(string message) { + statusLabel.Text = string.Empty; + } + + public void LockUI() { + Cursor = Cursors.AppStarting; + } + public void UnlockUI() { + Cursor = Cursors.Default; + } + public void ShowError(string shortMessage, string description) { + progressBar.Visible = false; + okButton.Visible = true; + statusLabel.Text = shortMessage + Environment.NewLine + description; + this.Cursor = Cursors.Default; + } + #endregion + + private void okButton_Click(object sender, EventArgs e) { + Close(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginView.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginView.Designer.cs index ed87dd4e55..6dd20652ee 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginView.Designer.cs @@ -1,356 +1,356 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class PluginView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.nameLabel = new System.Windows.Forms.Label(); - this.nameTextBox = new System.Windows.Forms.TextBox(); - this.versionTextBox = new System.Windows.Forms.TextBox(); - this.versionLabel = new System.Windows.Forms.Label(); - this.contactTextBox = new System.Windows.Forms.TextBox(); - this.contactInfoLabel = new System.Windows.Forms.Label(); - this.dependenciesGroupBox = new System.Windows.Forms.GroupBox(); - this.dependenciesListView = new System.Windows.Forms.ListView(); - this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginsImageList = new System.Windows.Forms.ImageList(this.components); - this.filesListView = new System.Windows.Forms.ListView(); - this.fileNameHeader = new System.Windows.Forms.ColumnHeader(); - this.fileTypeHeader = new System.Windows.Forms.ColumnHeader(); - this.filesImageList = new System.Windows.Forms.ImageList(this.components); - this.filesGroupBox = new System.Windows.Forms.GroupBox(); - this.stateTextBox = new System.Windows.Forms.TextBox(); - this.stateLabel = new System.Windows.Forms.Label(); - this.errorLabel = new System.Windows.Forms.Label(); - this.descriptionLabel = new System.Windows.Forms.Label(); - this.descriptionTextBox = new System.Windows.Forms.TextBox(); - this.errorTextBox = new System.Windows.Forms.TextBox(); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.showLicenseButton = new System.Windows.Forms.Button(); - this.dependenciesGroupBox.SuspendLayout(); - this.filesGroupBox.SuspendLayout(); - this.SuspendLayout(); - // - // nameLabel - // - this.nameLabel.AutoSize = true; - this.nameLabel.Location = new System.Drawing.Point(9, 15); - this.nameLabel.Name = "nameLabel"; - this.nameLabel.Size = new System.Drawing.Size(38, 13); - this.nameLabel.TabIndex = 0; - this.nameLabel.Text = "Name:"; - // - // nameTextBox - // - this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.nameTextBox.Location = new System.Drawing.Point(78, 12); - this.nameTextBox.Name = "nameTextBox"; - this.nameTextBox.ReadOnly = true; - this.nameTextBox.Size = new System.Drawing.Size(594, 20); - this.nameTextBox.TabIndex = 1; - // - // versionTextBox - // - this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.versionTextBox.Location = new System.Drawing.Point(78, 38); - this.versionTextBox.Name = "versionTextBox"; - this.versionTextBox.ReadOnly = true; - this.versionTextBox.Size = new System.Drawing.Size(594, 20); - this.versionTextBox.TabIndex = 3; - // - // versionLabel - // - this.versionLabel.AutoSize = true; - this.versionLabel.Location = new System.Drawing.Point(9, 41); - this.versionLabel.Name = "versionLabel"; - this.versionLabel.Size = new System.Drawing.Size(45, 13); - this.versionLabel.TabIndex = 2; - this.versionLabel.Text = "Version:"; - // - // contactTextBox - // - this.contactTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.contactTextBox.Location = new System.Drawing.Point(78, 64); - this.contactTextBox.Name = "contactTextBox"; - this.contactTextBox.ReadOnly = true; - this.contactTextBox.Size = new System.Drawing.Size(594, 20); - this.contactTextBox.TabIndex = 5; - // - // contactInfoLabel - // - this.contactInfoLabel.AutoSize = true; - this.contactInfoLabel.Location = new System.Drawing.Point(9, 67); - this.contactInfoLabel.Name = "contactInfoLabel"; - this.contactInfoLabel.Size = new System.Drawing.Size(47, 13); - this.contactInfoLabel.TabIndex = 4; - this.contactInfoLabel.Text = "Contact:"; - // - // dependenciesGroupBox - // - this.dependenciesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dependenciesGroupBox.Controls.Add(this.dependenciesListView); - this.dependenciesGroupBox.Location = new System.Drawing.Point(12, 324); - this.dependenciesGroupBox.Name = "dependenciesGroupBox"; - this.dependenciesGroupBox.Size = new System.Drawing.Size(663, 198); - this.dependenciesGroupBox.TabIndex = 1; - this.dependenciesGroupBox.TabStop = false; - this.dependenciesGroupBox.Text = "Dependencies"; - // - // dependenciesListView - // - this.dependenciesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.pluginNameHeader, - this.pluginVersionHeader, - this.pluginDescriptionHeader}); - this.dependenciesListView.Dock = System.Windows.Forms.DockStyle.Fill; - this.dependenciesListView.Location = new System.Drawing.Point(3, 16); - this.dependenciesListView.Name = "dependenciesListView"; - this.dependenciesListView.Size = new System.Drawing.Size(657, 179); - this.dependenciesListView.SmallImageList = this.pluginsImageList; - this.dependenciesListView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.dependenciesListView.TabIndex = 0; - this.dependenciesListView.UseCompatibleStateImageBehavior = false; - this.dependenciesListView.View = System.Windows.Forms.View.Details; - this.dependenciesListView.ItemActivate += new System.EventHandler(this.dependenciesListView_ItemActivate); - // - // pluginNameHeader - // - this.pluginNameHeader.Text = "Name"; - this.pluginNameHeader.Width = 200; - // - // pluginVersionHeader - // - this.pluginVersionHeader.Text = "Version"; - this.pluginVersionHeader.Width = 120; - // - // pluginDescriptionHeader - // - this.pluginDescriptionHeader.Text = "Description"; - this.pluginDescriptionHeader.Width = 325; - // - // pluginsImageList - // - this.pluginsImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.pluginsImageList.ImageSize = new System.Drawing.Size(16, 16); - this.pluginsImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // filesListView - // - this.filesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.fileNameHeader, - this.fileTypeHeader}); - this.filesListView.Dock = System.Windows.Forms.DockStyle.Fill; - this.filesListView.Location = new System.Drawing.Point(3, 16); - this.filesListView.Name = "filesListView"; - this.filesListView.Size = new System.Drawing.Size(657, 131); - this.filesListView.SmallImageList = this.filesImageList; - this.filesListView.TabIndex = 0; - this.filesListView.UseCompatibleStateImageBehavior = false; - this.filesListView.View = System.Windows.Forms.View.Details; - // - // fileNameHeader - // - this.fileNameHeader.Text = "Name"; - this.fileNameHeader.Width = 200; - // - // fileTypeHeader - // - this.fileTypeHeader.Text = "Type"; - this.fileTypeHeader.Width = 120; - // - // filesImageList - // - this.filesImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.filesImageList.ImageSize = new System.Drawing.Size(16, 16); - this.filesImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // filesGroupBox - // - this.filesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.filesGroupBox.Controls.Add(this.filesListView); - this.filesGroupBox.Location = new System.Drawing.Point(12, 168); - this.filesGroupBox.Name = "filesGroupBox"; - this.filesGroupBox.Size = new System.Drawing.Size(663, 150); - this.filesGroupBox.TabIndex = 11; - this.filesGroupBox.TabStop = false; - this.filesGroupBox.Text = "Files"; - // - // stateTextBox - // - this.stateTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.stateTextBox.Location = new System.Drawing.Point(78, 116); - this.stateTextBox.Name = "stateTextBox"; - this.stateTextBox.ReadOnly = true; - this.stateTextBox.Size = new System.Drawing.Size(594, 20); - this.stateTextBox.TabIndex = 13; - // - // stateLabel - // - this.stateLabel.AutoSize = true; - this.stateLabel.Location = new System.Drawing.Point(9, 119); - this.stateLabel.Name = "stateLabel"; - this.stateLabel.Size = new System.Drawing.Size(35, 13); - this.stateLabel.TabIndex = 12; - this.stateLabel.Text = "State:"; - // - // errorLabel - // - this.errorLabel.AutoSize = true; - this.errorLabel.Location = new System.Drawing.Point(9, 145); - this.errorLabel.Name = "errorLabel"; - this.errorLabel.Size = new System.Drawing.Size(32, 13); - this.errorLabel.TabIndex = 15; - this.errorLabel.Text = "Error:"; - // - // descriptionLabel - // - this.descriptionLabel.AutoSize = true; - this.descriptionLabel.Location = new System.Drawing.Point(9, 93); - this.descriptionLabel.Name = "descriptionLabel"; - this.descriptionLabel.Size = new System.Drawing.Size(63, 13); - this.descriptionLabel.TabIndex = 17; - this.descriptionLabel.Text = "Description:"; - // - // descriptionTextBox - // - this.descriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.descriptionTextBox.Location = new System.Drawing.Point(78, 90); - this.descriptionTextBox.Multiline = true; - this.descriptionTextBox.Name = "descriptionTextBox"; - this.descriptionTextBox.ReadOnly = true; - this.descriptionTextBox.Size = new System.Drawing.Size(594, 20); - this.descriptionTextBox.TabIndex = 20; - // - // errorTextBox - // - this.errorTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.errorTextBox.Location = new System.Drawing.Point(78, 142); - this.errorTextBox.Multiline = true; - this.errorTextBox.Name = "errorTextBox"; - this.errorTextBox.ReadOnly = true; - this.errorTextBox.Size = new System.Drawing.Size(594, 20); - this.errorTextBox.TabIndex = 21; - // - // showLicenseButton - // - this.showLicenseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.showLicenseButton.Location = new System.Drawing.Point(12, 528); - this.showLicenseButton.Name = "showLicenseButton"; - this.showLicenseButton.Size = new System.Drawing.Size(87, 23); - this.showLicenseButton.TabIndex = 22; - this.showLicenseButton.Text = "Show License"; - this.toolTip.SetToolTip(this.showLicenseButton, "Show Plugin License"); - this.showLicenseButton.UseVisualStyleBackColor = true; - this.showLicenseButton.Click += new System.EventHandler(this.showLicenseButton_Click); - // - // PluginView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.ClientSize = new System.Drawing.Size(687, 565); - this.Controls.Add(this.showLicenseButton); - this.Controls.Add(this.errorTextBox); - this.Controls.Add(this.descriptionTextBox); - this.Controls.Add(this.errorLabel); - this.Controls.Add(this.descriptionLabel); - this.Controls.Add(this.stateTextBox); - this.Controls.Add(this.stateLabel); - this.Controls.Add(this.dependenciesGroupBox); - this.Controls.Add(this.filesGroupBox); - this.Controls.Add(this.contactTextBox); - this.Controls.Add(this.contactInfoLabel); - this.Controls.Add(this.versionTextBox); - this.Controls.Add(this.versionLabel); - this.Controls.Add(this.nameTextBox); - this.Controls.Add(this.nameLabel); - this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.Name = "PluginView"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.dependenciesGroupBox.ResumeLayout(false); - this.filesGroupBox.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - protected System.Windows.Forms.Label nameLabel; - protected System.Windows.Forms.TextBox nameTextBox; - protected System.Windows.Forms.TextBox versionTextBox; - protected System.Windows.Forms.Label versionLabel; - protected System.Windows.Forms.TextBox contactTextBox; - protected System.Windows.Forms.Label contactInfoLabel; - protected System.Windows.Forms.GroupBox dependenciesGroupBox; - private System.Windows.Forms.ColumnHeader pluginNameHeader; - private System.Windows.Forms.ColumnHeader pluginVersionHeader; - protected System.Windows.Forms.ListView dependenciesListView; - private System.Windows.Forms.ListView filesListView; - private System.Windows.Forms.GroupBox filesGroupBox; - private System.Windows.Forms.ImageList pluginsImageList; - private System.Windows.Forms.ColumnHeader fileNameHeader; - private System.Windows.Forms.ColumnHeader fileTypeHeader; - protected System.Windows.Forms.TextBox stateTextBox; - protected System.Windows.Forms.Label stateLabel; - protected System.Windows.Forms.Label errorLabel; - protected System.Windows.Forms.Label descriptionLabel; - protected System.Windows.Forms.TextBox descriptionTextBox; - protected System.Windows.Forms.TextBox errorTextBox; - private System.Windows.Forms.ImageList filesImageList; - private System.Windows.Forms.ColumnHeader pluginDescriptionHeader; - private System.Windows.Forms.ToolTip toolTip; - private System.Windows.Forms.Button showLicenseButton; - - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class PluginView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.nameLabel = new System.Windows.Forms.Label(); + this.nameTextBox = new System.Windows.Forms.TextBox(); + this.versionTextBox = new System.Windows.Forms.TextBox(); + this.versionLabel = new System.Windows.Forms.Label(); + this.contactTextBox = new System.Windows.Forms.TextBox(); + this.contactInfoLabel = new System.Windows.Forms.Label(); + this.dependenciesGroupBox = new System.Windows.Forms.GroupBox(); + this.dependenciesListView = new System.Windows.Forms.ListView(); + this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginsImageList = new System.Windows.Forms.ImageList(this.components); + this.filesListView = new System.Windows.Forms.ListView(); + this.fileNameHeader = new System.Windows.Forms.ColumnHeader(); + this.fileTypeHeader = new System.Windows.Forms.ColumnHeader(); + this.filesImageList = new System.Windows.Forms.ImageList(this.components); + this.filesGroupBox = new System.Windows.Forms.GroupBox(); + this.stateTextBox = new System.Windows.Forms.TextBox(); + this.stateLabel = new System.Windows.Forms.Label(); + this.errorLabel = new System.Windows.Forms.Label(); + this.descriptionLabel = new System.Windows.Forms.Label(); + this.descriptionTextBox = new System.Windows.Forms.TextBox(); + this.errorTextBox = new System.Windows.Forms.TextBox(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.showLicenseButton = new System.Windows.Forms.Button(); + this.dependenciesGroupBox.SuspendLayout(); + this.filesGroupBox.SuspendLayout(); + this.SuspendLayout(); + // + // nameLabel + // + this.nameLabel.AutoSize = true; + this.nameLabel.Location = new System.Drawing.Point(9, 15); + this.nameLabel.Name = "nameLabel"; + this.nameLabel.Size = new System.Drawing.Size(38, 13); + this.nameLabel.TabIndex = 0; + this.nameLabel.Text = "Name:"; + // + // nameTextBox + // + this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nameTextBox.Location = new System.Drawing.Point(78, 12); + this.nameTextBox.Name = "nameTextBox"; + this.nameTextBox.ReadOnly = true; + this.nameTextBox.Size = new System.Drawing.Size(594, 20); + this.nameTextBox.TabIndex = 1; + // + // versionTextBox + // + this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.versionTextBox.Location = new System.Drawing.Point(78, 38); + this.versionTextBox.Name = "versionTextBox"; + this.versionTextBox.ReadOnly = true; + this.versionTextBox.Size = new System.Drawing.Size(594, 20); + this.versionTextBox.TabIndex = 3; + // + // versionLabel + // + this.versionLabel.AutoSize = true; + this.versionLabel.Location = new System.Drawing.Point(9, 41); + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size(45, 13); + this.versionLabel.TabIndex = 2; + this.versionLabel.Text = "Version:"; + // + // contactTextBox + // + this.contactTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.contactTextBox.Location = new System.Drawing.Point(78, 64); + this.contactTextBox.Name = "contactTextBox"; + this.contactTextBox.ReadOnly = true; + this.contactTextBox.Size = new System.Drawing.Size(594, 20); + this.contactTextBox.TabIndex = 5; + // + // contactInfoLabel + // + this.contactInfoLabel.AutoSize = true; + this.contactInfoLabel.Location = new System.Drawing.Point(9, 67); + this.contactInfoLabel.Name = "contactInfoLabel"; + this.contactInfoLabel.Size = new System.Drawing.Size(47, 13); + this.contactInfoLabel.TabIndex = 4; + this.contactInfoLabel.Text = "Contact:"; + // + // dependenciesGroupBox + // + this.dependenciesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dependenciesGroupBox.Controls.Add(this.dependenciesListView); + this.dependenciesGroupBox.Location = new System.Drawing.Point(12, 324); + this.dependenciesGroupBox.Name = "dependenciesGroupBox"; + this.dependenciesGroupBox.Size = new System.Drawing.Size(663, 198); + this.dependenciesGroupBox.TabIndex = 1; + this.dependenciesGroupBox.TabStop = false; + this.dependenciesGroupBox.Text = "Dependencies"; + // + // dependenciesListView + // + this.dependenciesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameHeader, + this.pluginVersionHeader, + this.pluginDescriptionHeader}); + this.dependenciesListView.Dock = System.Windows.Forms.DockStyle.Fill; + this.dependenciesListView.Location = new System.Drawing.Point(3, 16); + this.dependenciesListView.Name = "dependenciesListView"; + this.dependenciesListView.Size = new System.Drawing.Size(657, 179); + this.dependenciesListView.SmallImageList = this.pluginsImageList; + this.dependenciesListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.dependenciesListView.TabIndex = 0; + this.dependenciesListView.UseCompatibleStateImageBehavior = false; + this.dependenciesListView.View = System.Windows.Forms.View.Details; + this.dependenciesListView.ItemActivate += new System.EventHandler(this.dependenciesListView_ItemActivate); + // + // pluginNameHeader + // + this.pluginNameHeader.Text = "Name"; + this.pluginNameHeader.Width = 200; + // + // pluginVersionHeader + // + this.pluginVersionHeader.Text = "Version"; + this.pluginVersionHeader.Width = 120; + // + // pluginDescriptionHeader + // + this.pluginDescriptionHeader.Text = "Description"; + this.pluginDescriptionHeader.Width = 325; + // + // pluginsImageList + // + this.pluginsImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginsImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginsImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // filesListView + // + this.filesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.fileNameHeader, + this.fileTypeHeader}); + this.filesListView.Dock = System.Windows.Forms.DockStyle.Fill; + this.filesListView.Location = new System.Drawing.Point(3, 16); + this.filesListView.Name = "filesListView"; + this.filesListView.Size = new System.Drawing.Size(657, 131); + this.filesListView.SmallImageList = this.filesImageList; + this.filesListView.TabIndex = 0; + this.filesListView.UseCompatibleStateImageBehavior = false; + this.filesListView.View = System.Windows.Forms.View.Details; + // + // fileNameHeader + // + this.fileNameHeader.Text = "Name"; + this.fileNameHeader.Width = 200; + // + // fileTypeHeader + // + this.fileTypeHeader.Text = "Type"; + this.fileTypeHeader.Width = 120; + // + // filesImageList + // + this.filesImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.filesImageList.ImageSize = new System.Drawing.Size(16, 16); + this.filesImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // filesGroupBox + // + this.filesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.filesGroupBox.Controls.Add(this.filesListView); + this.filesGroupBox.Location = new System.Drawing.Point(12, 168); + this.filesGroupBox.Name = "filesGroupBox"; + this.filesGroupBox.Size = new System.Drawing.Size(663, 150); + this.filesGroupBox.TabIndex = 11; + this.filesGroupBox.TabStop = false; + this.filesGroupBox.Text = "Files"; + // + // stateTextBox + // + this.stateTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.stateTextBox.Location = new System.Drawing.Point(78, 116); + this.stateTextBox.Name = "stateTextBox"; + this.stateTextBox.ReadOnly = true; + this.stateTextBox.Size = new System.Drawing.Size(594, 20); + this.stateTextBox.TabIndex = 13; + // + // stateLabel + // + this.stateLabel.AutoSize = true; + this.stateLabel.Location = new System.Drawing.Point(9, 119); + this.stateLabel.Name = "stateLabel"; + this.stateLabel.Size = new System.Drawing.Size(35, 13); + this.stateLabel.TabIndex = 12; + this.stateLabel.Text = "State:"; + // + // errorLabel + // + this.errorLabel.AutoSize = true; + this.errorLabel.Location = new System.Drawing.Point(9, 145); + this.errorLabel.Name = "errorLabel"; + this.errorLabel.Size = new System.Drawing.Size(32, 13); + this.errorLabel.TabIndex = 15; + this.errorLabel.Text = "Error:"; + // + // descriptionLabel + // + this.descriptionLabel.AutoSize = true; + this.descriptionLabel.Location = new System.Drawing.Point(9, 93); + this.descriptionLabel.Name = "descriptionLabel"; + this.descriptionLabel.Size = new System.Drawing.Size(63, 13); + this.descriptionLabel.TabIndex = 17; + this.descriptionLabel.Text = "Description:"; + // + // descriptionTextBox + // + this.descriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.descriptionTextBox.Location = new System.Drawing.Point(78, 90); + this.descriptionTextBox.Multiline = true; + this.descriptionTextBox.Name = "descriptionTextBox"; + this.descriptionTextBox.ReadOnly = true; + this.descriptionTextBox.Size = new System.Drawing.Size(594, 20); + this.descriptionTextBox.TabIndex = 20; + // + // errorTextBox + // + this.errorTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.errorTextBox.Location = new System.Drawing.Point(78, 142); + this.errorTextBox.Multiline = true; + this.errorTextBox.Name = "errorTextBox"; + this.errorTextBox.ReadOnly = true; + this.errorTextBox.Size = new System.Drawing.Size(594, 20); + this.errorTextBox.TabIndex = 21; + // + // showLicenseButton + // + this.showLicenseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.showLicenseButton.Location = new System.Drawing.Point(12, 528); + this.showLicenseButton.Name = "showLicenseButton"; + this.showLicenseButton.Size = new System.Drawing.Size(87, 23); + this.showLicenseButton.TabIndex = 22; + this.showLicenseButton.Text = "Show License"; + this.toolTip.SetToolTip(this.showLicenseButton, "Show Plugin License"); + this.showLicenseButton.UseVisualStyleBackColor = true; + this.showLicenseButton.Click += new System.EventHandler(this.showLicenseButton_Click); + // + // PluginView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(687, 565); + this.Controls.Add(this.showLicenseButton); + this.Controls.Add(this.errorTextBox); + this.Controls.Add(this.descriptionTextBox); + this.Controls.Add(this.errorLabel); + this.Controls.Add(this.descriptionLabel); + this.Controls.Add(this.stateTextBox); + this.Controls.Add(this.stateLabel); + this.Controls.Add(this.dependenciesGroupBox); + this.Controls.Add(this.filesGroupBox); + this.Controls.Add(this.contactTextBox); + this.Controls.Add(this.contactInfoLabel); + this.Controls.Add(this.versionTextBox); + this.Controls.Add(this.versionLabel); + this.Controls.Add(this.nameTextBox); + this.Controls.Add(this.nameLabel); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.Name = "PluginView"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.dependenciesGroupBox.ResumeLayout(false); + this.filesGroupBox.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + protected System.Windows.Forms.Label nameLabel; + protected System.Windows.Forms.TextBox nameTextBox; + protected System.Windows.Forms.TextBox versionTextBox; + protected System.Windows.Forms.Label versionLabel; + protected System.Windows.Forms.TextBox contactTextBox; + protected System.Windows.Forms.Label contactInfoLabel; + protected System.Windows.Forms.GroupBox dependenciesGroupBox; + private System.Windows.Forms.ColumnHeader pluginNameHeader; + private System.Windows.Forms.ColumnHeader pluginVersionHeader; + protected System.Windows.Forms.ListView dependenciesListView; + private System.Windows.Forms.ListView filesListView; + private System.Windows.Forms.GroupBox filesGroupBox; + private System.Windows.Forms.ImageList pluginsImageList; + private System.Windows.Forms.ColumnHeader fileNameHeader; + private System.Windows.Forms.ColumnHeader fileTypeHeader; + protected System.Windows.Forms.TextBox stateTextBox; + protected System.Windows.Forms.Label stateLabel; + protected System.Windows.Forms.Label errorLabel; + protected System.Windows.Forms.Label descriptionLabel; + protected System.Windows.Forms.TextBox descriptionTextBox; + protected System.Windows.Forms.TextBox errorTextBox; + private System.Windows.Forms.ImageList filesImageList; + private System.Windows.Forms.ColumnHeader pluginDescriptionHeader; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.Button showLicenseButton; + + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginView.cs index 3003bae1f0..88417f8856 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/PluginView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/PluginView.cs @@ -1,122 +1,122 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class PluginView : Form { - private const string IMAGE_KEY_PLUGIN = "Plugin"; - private const string IMAGE_KEY_ASSEMBLY = "Assembly"; - private const string IMAGE_KEY_FILE = "File"; - private const string IMAGE_KEY_DOCUMENT = "Document"; - - private IPluginDescription plugin; - - public PluginView() - : base() { - InitializeComponent(); - PopulateImageList(); - } - - public PluginView(IPluginDescription plugin) - : base() { - InitializeComponent(); - PopulateImageList(); - - this.plugin = plugin; - this.Text = "Plugin Details: " + plugin.ToString(); - UpdateControls(); - } - - private void PopulateImageList() { - pluginsImageList.Images.Add(IMAGE_KEY_PLUGIN, HeuristicLab.PluginInfrastructure.Resources.Plugin); - filesImageList.Images.Add(IMAGE_KEY_ASSEMBLY, HeuristicLab.PluginInfrastructure.Resources.Assembly); - filesImageList.Images.Add(IMAGE_KEY_FILE, HeuristicLab.PluginInfrastructure.Resources.File); - filesImageList.Images.Add(IMAGE_KEY_DOCUMENT, HeuristicLab.PluginInfrastructure.Resources.Document); - } - - public void UpdateControls() { - string appDir = Path.GetDirectoryName(Application.ExecutablePath); - nameTextBox.Text = plugin.Name; - versionTextBox.Text = plugin.Version.ToString(); - contactTextBox.Text = CombineStrings(plugin.ContactName, plugin.ContactEmail); - toolTip.SetToolTip(contactTextBox, contactTextBox.Text); - descriptionTextBox.Text = plugin.Description; - toolTip.SetToolTip(descriptionTextBox, plugin.Description); - var localPlugin = plugin as PluginDescription; - if (localPlugin != null) { - stateTextBox.Text = localPlugin.PluginState.ToString(); - if (!string.IsNullOrEmpty(localPlugin.LoadingErrorInformation)) - errorTextBox.Text = localPlugin.LoadingErrorInformation.Replace(Environment.NewLine, " "); - toolTip.SetToolTip(stateTextBox, stateTextBox.Text + Environment.NewLine + errorTextBox.Text); - toolTip.SetToolTip(errorTextBox, errorTextBox.Text); - } - foreach (PluginDescription dependency in plugin.Dependencies) { - var depItem = new ListViewItem(new string[] { dependency.Name, dependency.Version.ToString(), dependency.Description }); - depItem.Tag = dependency; - depItem.ImageKey = IMAGE_KEY_PLUGIN; - dependenciesListView.Items.Add(depItem); - } - foreach (var file in plugin.Files) { - string displayedFileName = file.Name.Replace(appDir, string.Empty); - displayedFileName = displayedFileName.TrimStart(Path.DirectorySeparatorChar); - var fileItem = new ListViewItem(new string[] { displayedFileName, file.Type.ToString() }); - if (file.Type == PluginFileType.Assembly) { - fileItem.ImageKey = IMAGE_KEY_ASSEMBLY; - } else if (file.Type == PluginFileType.License) { - fileItem.ImageKey = IMAGE_KEY_DOCUMENT; - } else fileItem.ImageKey = IMAGE_KEY_FILE; - filesListView.Items.Add(fileItem); - } - Util.ResizeColumns(dependenciesListView.Columns.OfType()); - Util.ResizeColumns(filesListView.Columns.OfType()); - - showLicenseButton.Enabled = !string.IsNullOrEmpty(plugin.LicenseText); - } - - private string CombineStrings(string a, string b) { - if (string.IsNullOrEmpty(a)) - // a is empty - if (!string.IsNullOrEmpty(b)) return CombineStrings(b, string.Empty); - else return string.Empty; - // a is not empty - else if (string.IsNullOrEmpty(b)) return a; - // and b are not empty - else return a + ", " + b; - } - - private void dependenciesListView_ItemActivate(object sender, EventArgs e) { - if (dependenciesListView.SelectedItems.Count > 0) { - var dep = (PluginDescription)dependenciesListView.SelectedItems[0].Tag; - PluginView view = new PluginView(dep); - view.Show(this); - } - } - - private void showLicenseButton_Click(object sender, EventArgs e) { - LicenseView view = new LicenseView(plugin); - view.Show(this); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class PluginView : Form { + private const string IMAGE_KEY_PLUGIN = "Plugin"; + private const string IMAGE_KEY_ASSEMBLY = "Assembly"; + private const string IMAGE_KEY_FILE = "File"; + private const string IMAGE_KEY_DOCUMENT = "Document"; + + private IPluginDescription plugin; + + public PluginView() + : base() { + InitializeComponent(); + PopulateImageList(); + } + + public PluginView(IPluginDescription plugin) + : base() { + InitializeComponent(); + PopulateImageList(); + + this.plugin = plugin; + this.Text = "Plugin Details: " + plugin.ToString(); + UpdateControls(); + } + + private void PopulateImageList() { + pluginsImageList.Images.Add(IMAGE_KEY_PLUGIN, HeuristicLab.PluginInfrastructure.Resources.Plugin); + filesImageList.Images.Add(IMAGE_KEY_ASSEMBLY, HeuristicLab.PluginInfrastructure.Resources.Assembly); + filesImageList.Images.Add(IMAGE_KEY_FILE, HeuristicLab.PluginInfrastructure.Resources.File); + filesImageList.Images.Add(IMAGE_KEY_DOCUMENT, HeuristicLab.PluginInfrastructure.Resources.Document); + } + + public void UpdateControls() { + string appDir = Path.GetDirectoryName(Application.ExecutablePath); + nameTextBox.Text = plugin.Name; + versionTextBox.Text = plugin.Version.ToString(); + contactTextBox.Text = CombineStrings(plugin.ContactName, plugin.ContactEmail); + toolTip.SetToolTip(contactTextBox, contactTextBox.Text); + descriptionTextBox.Text = plugin.Description; + toolTip.SetToolTip(descriptionTextBox, plugin.Description); + var localPlugin = plugin as PluginDescription; + if (localPlugin != null) { + stateTextBox.Text = localPlugin.PluginState.ToString(); + if (!string.IsNullOrEmpty(localPlugin.LoadingErrorInformation)) + errorTextBox.Text = localPlugin.LoadingErrorInformation.Replace(Environment.NewLine, " "); + toolTip.SetToolTip(stateTextBox, stateTextBox.Text + Environment.NewLine + errorTextBox.Text); + toolTip.SetToolTip(errorTextBox, errorTextBox.Text); + } + foreach (PluginDescription dependency in plugin.Dependencies) { + var depItem = new ListViewItem(new string[] { dependency.Name, dependency.Version.ToString(), dependency.Description }); + depItem.Tag = dependency; + depItem.ImageKey = IMAGE_KEY_PLUGIN; + dependenciesListView.Items.Add(depItem); + } + foreach (var file in plugin.Files) { + string displayedFileName = file.Name.Replace(appDir, string.Empty); + displayedFileName = displayedFileName.TrimStart(Path.DirectorySeparatorChar); + var fileItem = new ListViewItem(new string[] { displayedFileName, file.Type.ToString() }); + if (file.Type == PluginFileType.Assembly) { + fileItem.ImageKey = IMAGE_KEY_ASSEMBLY; + } else if (file.Type == PluginFileType.License) { + fileItem.ImageKey = IMAGE_KEY_DOCUMENT; + } else fileItem.ImageKey = IMAGE_KEY_FILE; + filesListView.Items.Add(fileItem); + } + Util.ResizeColumns(dependenciesListView.Columns.OfType()); + Util.ResizeColumns(filesListView.Columns.OfType()); + + showLicenseButton.Enabled = !string.IsNullOrEmpty(plugin.LicenseText); + } + + private string CombineStrings(string a, string b) { + if (string.IsNullOrEmpty(a)) + // a is empty + if (!string.IsNullOrEmpty(b)) return CombineStrings(b, string.Empty); + else return string.Empty; + // a is not empty + else if (string.IsNullOrEmpty(b)) return a; + // and b are not empty + else return a + ", " + b; + } + + private void dependenciesListView_ItemActivate(object sender, EventArgs e) { + if (dependenciesListView.SelectedItems.Count > 0) { + var dep = (PluginDescription)dependenciesListView.SelectedItems[0].Tag; + PluginView view = new PluginView(dep); + view.Show(this); + } + } + + private void showLicenseButton_Click(object sender, EventArgs e) { + LicenseView view = new LicenseView(plugin); + view.Show(this); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/UploadPluginsView.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/UploadPluginsView.Designer.cs index 5944eb0cc1..1e394d5027 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/UploadPluginsView.Designer.cs @@ -1,161 +1,161 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure.Advanced { - partial class UploadPluginsView { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.uploadButton = new System.Windows.Forms.Button(); - this.refreshButton = new System.Windows.Forms.Button(); - this.listView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); - this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); - this.localVersionHeader = new System.Windows.Forms.ColumnHeader(); - this.serverVersionHeader = new System.Windows.Forms.ColumnHeader(); - this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginImageList = new System.Windows.Forms.ImageList(this.components); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.SuspendLayout(); - // - // uploadButton - // - this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.uploadButton.Enabled = false; - this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.PublishToWeb; - this.uploadButton.Location = new System.Drawing.Point(78, 482); - this.uploadButton.Name = "uploadButton"; - this.uploadButton.Size = new System.Drawing.Size(114, 26); - this.uploadButton.TabIndex = 7; - this.uploadButton.Text = "Upload Selected"; - this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.uploadButton, "Upload selected plugins to the server"); - this.uploadButton.UseVisualStyleBackColor = true; - this.uploadButton.Click += new System.EventHandler(this.uploadButton_Click); - // - // refreshButton - // - this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; - this.refreshButton.Location = new System.Drawing.Point(0, 482); - this.refreshButton.Name = "refreshButton"; - this.refreshButton.Size = new System.Drawing.Size(72, 26); - this.refreshButton.TabIndex = 6; - this.refreshButton.Text = "Refresh"; - this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.toolTip.SetToolTip(this.refreshButton, "Update list of plugins from the server"); - this.refreshButton.UseVisualStyleBackColor = true; - this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); - // - // listView - // - this.listView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listView.CheckBoxes = true; - this.listView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.pluginNameHeader, - this.localVersionHeader, - this.serverVersionHeader, - this.descriptionHeader}); - this.listView.Location = new System.Drawing.Point(0, 0); - this.listView.Name = "listView"; - this.listView.Size = new System.Drawing.Size(539, 476); - this.listView.SmallImageList = this.pluginImageList; - this.listView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.listView.SuppressItemCheckedEvents = false; - this.listView.TabIndex = 8; - this.listView.UseCompatibleStateImageBehavior = false; - this.listView.View = System.Windows.Forms.View.Details; - this.listView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listView_ItemChecked); - // - // pluginNameHeader - // - this.pluginNameHeader.Text = "Name"; - this.pluginNameHeader.Width = 40; - // - // localVersionHeader - // - this.localVersionHeader.Text = "Local Version"; - this.localVersionHeader.Width = 76; - // - // serverVersionHeader - // - this.serverVersionHeader.Text = "Server Version"; - this.serverVersionHeader.Width = 81; - // - // descriptionHeader - // - this.descriptionHeader.Text = "Description"; - this.descriptionHeader.Width = 335; - // - // pluginImageList - // - this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); - this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // PluginEditor - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.Controls.Add(this.listView); - this.Controls.Add(this.uploadButton); - this.Controls.Add(this.refreshButton); - this.Name = "PluginEditor"; - this.Size = new System.Drawing.Size(539, 508); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button refreshButton; - private System.Windows.Forms.Button uploadButton; - private MultiSelectListView listView; - private System.Windows.Forms.ColumnHeader pluginNameHeader; - private System.Windows.Forms.ColumnHeader localVersionHeader; - private System.Windows.Forms.ColumnHeader serverVersionHeader; - private System.Windows.Forms.ColumnHeader descriptionHeader; - private System.Windows.Forms.ToolTip toolTip; - private System.Windows.Forms.ImageList pluginImageList; - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class UploadPluginsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.uploadButton = new System.Windows.Forms.Button(); + this.refreshButton = new System.Windows.Forms.Button(); + this.listView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); + this.localVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.serverVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginImageList = new System.Windows.Forms.ImageList(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.SuspendLayout(); + // + // uploadButton + // + this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.uploadButton.Enabled = false; + this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.PublishToWeb; + this.uploadButton.Location = new System.Drawing.Point(78, 482); + this.uploadButton.Name = "uploadButton"; + this.uploadButton.Size = new System.Drawing.Size(114, 26); + this.uploadButton.TabIndex = 7; + this.uploadButton.Text = "Upload Selected"; + this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.uploadButton, "Upload selected plugins to the server"); + this.uploadButton.UseVisualStyleBackColor = true; + this.uploadButton.Click += new System.EventHandler(this.uploadButton_Click); + // + // refreshButton + // + this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.refreshButton.Location = new System.Drawing.Point(0, 482); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(72, 26); + this.refreshButton.TabIndex = 6; + this.refreshButton.Text = "Refresh"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Update list of plugins from the server"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); + // + // listView + // + this.listView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listView.CheckBoxes = true; + this.listView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameHeader, + this.localVersionHeader, + this.serverVersionHeader, + this.descriptionHeader}); + this.listView.Location = new System.Drawing.Point(0, 0); + this.listView.Name = "listView"; + this.listView.Size = new System.Drawing.Size(539, 476); + this.listView.SmallImageList = this.pluginImageList; + this.listView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.listView.SuppressItemCheckedEvents = false; + this.listView.TabIndex = 8; + this.listView.UseCompatibleStateImageBehavior = false; + this.listView.View = System.Windows.Forms.View.Details; + this.listView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listView_ItemChecked); + // + // pluginNameHeader + // + this.pluginNameHeader.Text = "Name"; + this.pluginNameHeader.Width = 40; + // + // localVersionHeader + // + this.localVersionHeader.Text = "Local Version"; + this.localVersionHeader.Width = 76; + // + // serverVersionHeader + // + this.serverVersionHeader.Text = "Server Version"; + this.serverVersionHeader.Width = 81; + // + // descriptionHeader + // + this.descriptionHeader.Text = "Description"; + this.descriptionHeader.Width = 335; + // + // pluginImageList + // + this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // PluginEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.listView); + this.Controls.Add(this.uploadButton); + this.Controls.Add(this.refreshButton); + this.Name = "PluginEditor"; + this.Size = new System.Drawing.Size(539, 508); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button refreshButton; + private System.Windows.Forms.Button uploadButton; + private MultiSelectListView listView; + private System.Windows.Forms.ColumnHeader pluginNameHeader; + private System.Windows.Forms.ColumnHeader localVersionHeader; + private System.Windows.Forms.ColumnHeader serverVersionHeader; + private System.Windows.Forms.ColumnHeader descriptionHeader; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ImageList pluginImageList; + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/UploadPluginsView.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/UploadPluginsView.cs index 71dac7d7ee..21eb7c9f38 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/UploadPluginsView.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/UploadPluginsView.cs @@ -1,308 +1,308 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.ServiceModel; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal partial class UploadPluginsView : InstallationManagerControl { - private const string UploadMessage = "Uploading plugins..."; - private const string RefreshMessage = "Downloading plugin information from deployment service..."; - - private Dictionary localAndServerPlugins; - private BackgroundWorker pluginUploadWorker; - private BackgroundWorker refreshPluginsWorker; - - private PluginManager pluginManager; - public PluginManager PluginManager { - get { return pluginManager; } - set { pluginManager = value; } - } - - public UploadPluginsView() { - InitializeComponent(); - pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); - localAndServerPlugins = new Dictionary(); - - #region initialize backgroundworkers - pluginUploadWorker = new BackgroundWorker(); - pluginUploadWorker.DoWork += new DoWorkEventHandler(pluginUploadWorker_DoWork); - pluginUploadWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(pluginUploadWorker_RunWorkerCompleted); - - refreshPluginsWorker = new BackgroundWorker(); - refreshPluginsWorker.DoWork += new DoWorkEventHandler(refreshPluginsWorker_DoWork); - refreshPluginsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshPluginsWorker_RunWorkerCompleted); - #endregion - } - - #region refresh plugins from server backgroundworker - void refreshPluginsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - } else { - UpdatePluginListView((IEnumerable)e.Result); - } - StatusView.HideProgressIndicator(); - StatusView.RemoveMessage(RefreshMessage); - StatusView.UnlockUI(); - } - - void refreshPluginsWorker_DoWork(object sender, DoWorkEventArgs e) { - // refresh available plugins - var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - e.Result = client.GetPlugins(); - client.Close(); - } - catch (TimeoutException) { - client.Abort(); - throw; - } - catch (FaultException) { - client.Abort(); - throw; - } - catch (CommunicationException) { - client.Abort(); - throw; - } - } - #endregion - - #region upload plugins to server backgroundworker - void pluginUploadWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { - if (e.Error != null) { - StatusView.ShowError("Connection Error", - "There was an error while connecting to the server." + Environment.NewLine + - "Please check your connection settings and user credentials."); - } else { - UpdatePluginListView((IEnumerable)e.Result); - } - StatusView.RemoveMessage(UploadMessage); - StatusView.HideProgressIndicator(); - StatusView.UnlockUI(); - } - - void pluginUploadWorker_DoWork(object sender, DoWorkEventArgs e) { - // upload plugins - var selectedPlugins = (IEnumerable)e.Argument; - DeploymentService.AdminServiceClient adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); - Dictionary cachedPluginDescriptions = - new Dictionary(); - try { - foreach (var plugin in IteratePlugins(selectedPlugins)) { - adminClient.DeployPlugin(MakePluginDescription(plugin, cachedPluginDescriptions), CreateZipPackage(plugin)); - } - adminClient.Close(); - } - catch (TimeoutException) { - adminClient.Abort(); - throw; - } - catch (FaultException) { - adminClient.Abort(); - throw; - } - catch (CommunicationException) { - adminClient.Abort(); - throw; - } - // refresh available plugins - var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - e.Result = client.GetPlugins(); - client.Close(); - } - catch (TimeoutException) { - client.Abort(); - throw; - } - catch (FaultException) { - client.Abort(); - throw; - } - catch (CommunicationException) { - client.Abort(); - throw; - } - } - #endregion - - - #region button events - private void uploadButton_Click(object sender, EventArgs e) { - var selectedPlugins = from item in listView.Items.Cast() - where item.Checked - where item.Tag is IPluginDescription - select item.Tag as IPluginDescription; - if (selectedPlugins.Count() > 0) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.ShowMessage(UploadMessage); - pluginUploadWorker.RunWorkerAsync(selectedPlugins.ToList()); - } - } - - private void refreshButton_Click(object sender, EventArgs e) { - StatusView.LockUI(); - StatusView.ShowProgressIndicator(); - StatusView.ShowMessage(RefreshMessage); - refreshPluginsWorker.RunWorkerAsync(); - } - - #endregion - - #region item list events - private bool ignoreItemCheckedEvents = false; - private void listView_ItemChecked(object sender, ItemCheckedEventArgs e) { - if (ignoreItemCheckedEvents) return; - List modifiedPlugins = new List(); - if (e.Item.Checked) { - foreach (ListViewItem item in listView.SelectedItems) { - var plugin = (IPluginDescription)item.Tag; - // also check all dependencies - if (!modifiedPlugins.Contains(plugin)) - modifiedPlugins.Add(plugin); - foreach (var dep in Util.GetAllDependencies(plugin)) { - if (!modifiedPlugins.Contains(dep)) - modifiedPlugins.Add(dep); - } - } - listView.CheckItems(modifiedPlugins.Select(x => FindItemForPlugin(x))); - } else { - foreach (ListViewItem item in listView.SelectedItems) { - var plugin = (IPluginDescription)item.Tag; - // also uncheck all dependent plugins - if (!modifiedPlugins.Contains(plugin)) - modifiedPlugins.Add(plugin); - foreach (var dep in Util.GetAllDependents(plugin, localAndServerPlugins.Keys)) { - if (!modifiedPlugins.Contains(dep)) - modifiedPlugins.Add(dep); - } - } - listView.UncheckItems(modifiedPlugins.Select(x => FindItemForPlugin(x))); - } - uploadButton.Enabled = (from i in listView.Items.OfType() - where i.Checked - select i).Any(); - } - #endregion - - #region helper methods - private void UpdatePluginListView(IEnumerable remotePlugins) { - // refresh local plugins - localAndServerPlugins.Clear(); - foreach (var plugin in pluginManager.Plugins) { - localAndServerPlugins.Add(plugin, null); - } - foreach (var plugin in remotePlugins) { - var matchingLocalPlugin = (from localPlugin in localAndServerPlugins.Keys - where localPlugin.Name == plugin.Name - where localPlugin.Version == plugin.Version - select localPlugin).SingleOrDefault(); - if (matchingLocalPlugin != null) { - localAndServerPlugins[matchingLocalPlugin] = plugin; - } - } - // refresh the list view with plugins - listView.Items.Clear(); - ignoreItemCheckedEvents = true; - foreach (var pair in localAndServerPlugins) { - var item = MakeListViewItem(pair.Key); - listView.Items.Add(item); - } - Util.ResizeColumns(listView.Columns.OfType()); - ignoreItemCheckedEvents = false; - } - - private IEnumerable IteratePlugins(IEnumerable plugins) { - HashSet yieldedItems = new HashSet(); - foreach (var plugin in plugins) { - foreach (var dependency in IteratePlugins(plugin.Dependencies)) { - if (!yieldedItems.Contains(dependency)) { - yieldedItems.Add(dependency); - yield return dependency; - } - } - if (!yieldedItems.Contains(plugin)) { - yieldedItems.Add(plugin); - yield return plugin; - } - } - } - - private static byte[] CreateZipPackage(IPluginDescription plugin) { - using (MemoryStream stream = new MemoryStream()) { - ZipArchive zipFile = new ZipArchive(stream, ZipArchiveMode.Create); - foreach (var file in plugin.Files) { - zipFile.CreateEntry(file.Name); - } - stream.Seek(0, SeekOrigin.Begin); - return stream.GetBuffer(); - } - } - - private ListViewItem MakeListViewItem(IPluginDescription plugin) { - ListViewItem item; - if (localAndServerPlugins[plugin] != null) { - item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), - localAndServerPlugins[plugin].Version.ToString(), localAndServerPlugins[plugin].Description }); - if (plugin.Version <= localAndServerPlugins[plugin].Version) - item.ForeColor = Color.Gray; - } else { - item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), - string.Empty, plugin.Description }); - } - item.Tag = plugin; - item.ImageIndex = 0; - item.Checked = false; - return item; - } - - private ListViewItem FindItemForPlugin(IPluginDescription dep) { - return (from i in listView.Items.Cast() - where i.Tag == dep - select i).Single(); - } - - private DeploymentService.PluginDescription MakePluginDescription(IPluginDescription plugin, Dictionary cachedPluginDescriptions) { - if (!cachedPluginDescriptions.ContainsKey(plugin)) { - var dependencies = (from dep in plugin.Dependencies - select MakePluginDescription(dep, cachedPluginDescriptions)) - .ToList(); - cachedPluginDescriptions.Add(plugin, - new DeploymentService.PluginDescription(plugin.Name, plugin.Version, dependencies, plugin.ContactName, plugin.ContactEmail, plugin.LicenseText)); - } - return cachedPluginDescriptions[plugin]; - } - #endregion - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.ServiceModel; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class UploadPluginsView : InstallationManagerControl { + private const string UploadMessage = "Uploading plugins..."; + private const string RefreshMessage = "Downloading plugin information from deployment service..."; + + private Dictionary localAndServerPlugins; + private BackgroundWorker pluginUploadWorker; + private BackgroundWorker refreshPluginsWorker; + + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { pluginManager = value; } + } + + public UploadPluginsView() { + InitializeComponent(); + pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + localAndServerPlugins = new Dictionary(); + + #region initialize backgroundworkers + pluginUploadWorker = new BackgroundWorker(); + pluginUploadWorker.DoWork += new DoWorkEventHandler(pluginUploadWorker_DoWork); + pluginUploadWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(pluginUploadWorker_RunWorkerCompleted); + + refreshPluginsWorker = new BackgroundWorker(); + refreshPluginsWorker.DoWork += new DoWorkEventHandler(refreshPluginsWorker_DoWork); + refreshPluginsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshPluginsWorker_RunWorkerCompleted); + #endregion + } + + #region refresh plugins from server backgroundworker + void refreshPluginsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + UpdatePluginListView((IEnumerable)e.Result); + } + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(RefreshMessage); + StatusView.UnlockUI(); + } + + void refreshPluginsWorker_DoWork(object sender, DoWorkEventArgs e) { + // refresh available plugins + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = client.GetPlugins(); + client.Close(); + } + catch (TimeoutException) { + client.Abort(); + throw; + } + catch (FaultException) { + client.Abort(); + throw; + } + catch (CommunicationException) { + client.Abort(); + throw; + } + } + #endregion + + #region upload plugins to server backgroundworker + void pluginUploadWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + UpdatePluginListView((IEnumerable)e.Result); + } + StatusView.RemoveMessage(UploadMessage); + StatusView.HideProgressIndicator(); + StatusView.UnlockUI(); + } + + void pluginUploadWorker_DoWork(object sender, DoWorkEventArgs e) { + // upload plugins + var selectedPlugins = (IEnumerable)e.Argument; + DeploymentService.AdminServiceClient adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); + Dictionary cachedPluginDescriptions = + new Dictionary(); + try { + foreach (var plugin in IteratePlugins(selectedPlugins)) { + adminClient.DeployPlugin(MakePluginDescription(plugin, cachedPluginDescriptions), CreateZipPackage(plugin)); + } + adminClient.Close(); + } + catch (TimeoutException) { + adminClient.Abort(); + throw; + } + catch (FaultException) { + adminClient.Abort(); + throw; + } + catch (CommunicationException) { + adminClient.Abort(); + throw; + } + // refresh available plugins + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = client.GetPlugins(); + client.Close(); + } + catch (TimeoutException) { + client.Abort(); + throw; + } + catch (FaultException) { + client.Abort(); + throw; + } + catch (CommunicationException) { + client.Abort(); + throw; + } + } + #endregion + + + #region button events + private void uploadButton_Click(object sender, EventArgs e) { + var selectedPlugins = from item in listView.Items.Cast() + where item.Checked + where item.Tag is IPluginDescription + select item.Tag as IPluginDescription; + if (selectedPlugins.Count() > 0) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(UploadMessage); + pluginUploadWorker.RunWorkerAsync(selectedPlugins.ToList()); + } + } + + private void refreshButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(RefreshMessage); + refreshPluginsWorker.RunWorkerAsync(); + } + + #endregion + + #region item list events + private bool ignoreItemCheckedEvents = false; + private void listView_ItemChecked(object sender, ItemCheckedEventArgs e) { + if (ignoreItemCheckedEvents) return; + List modifiedPlugins = new List(); + if (e.Item.Checked) { + foreach (ListViewItem item in listView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also check all dependencies + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependencies(plugin)) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + } + listView.CheckItems(modifiedPlugins.Select(x => FindItemForPlugin(x))); + } else { + foreach (ListViewItem item in listView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also uncheck all dependent plugins + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependents(plugin, localAndServerPlugins.Keys)) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + } + listView.UncheckItems(modifiedPlugins.Select(x => FindItemForPlugin(x))); + } + uploadButton.Enabled = (from i in listView.Items.OfType() + where i.Checked + select i).Any(); + } + #endregion + + #region helper methods + private void UpdatePluginListView(IEnumerable remotePlugins) { + // refresh local plugins + localAndServerPlugins.Clear(); + foreach (var plugin in pluginManager.Plugins) { + localAndServerPlugins.Add(plugin, null); + } + foreach (var plugin in remotePlugins) { + var matchingLocalPlugin = (from localPlugin in localAndServerPlugins.Keys + where localPlugin.Name == plugin.Name + where localPlugin.Version == plugin.Version + select localPlugin).SingleOrDefault(); + if (matchingLocalPlugin != null) { + localAndServerPlugins[matchingLocalPlugin] = plugin; + } + } + // refresh the list view with plugins + listView.Items.Clear(); + ignoreItemCheckedEvents = true; + foreach (var pair in localAndServerPlugins) { + var item = MakeListViewItem(pair.Key); + listView.Items.Add(item); + } + Util.ResizeColumns(listView.Columns.OfType()); + ignoreItemCheckedEvents = false; + } + + private IEnumerable IteratePlugins(IEnumerable plugins) { + HashSet yieldedItems = new HashSet(); + foreach (var plugin in plugins) { + foreach (var dependency in IteratePlugins(plugin.Dependencies)) { + if (!yieldedItems.Contains(dependency)) { + yieldedItems.Add(dependency); + yield return dependency; + } + } + if (!yieldedItems.Contains(plugin)) { + yieldedItems.Add(plugin); + yield return plugin; + } + } + } + + private static byte[] CreateZipPackage(IPluginDescription plugin) { + using (MemoryStream stream = new MemoryStream()) { + ZipArchive zipFile = new ZipArchive(stream, ZipArchiveMode.Create); + foreach (var file in plugin.Files) { + zipFile.CreateEntry(file.Name); + } + stream.Seek(0, SeekOrigin.Begin); + return stream.GetBuffer(); + } + } + + private ListViewItem MakeListViewItem(IPluginDescription plugin) { + ListViewItem item; + if (localAndServerPlugins[plugin] != null) { + item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), + localAndServerPlugins[plugin].Version.ToString(), localAndServerPlugins[plugin].Description }); + if (plugin.Version <= localAndServerPlugins[plugin].Version) + item.ForeColor = Color.Gray; + } else { + item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), + string.Empty, plugin.Description }); + } + item.Tag = plugin; + item.ImageIndex = 0; + item.Checked = false; + return item; + } + + private ListViewItem FindItemForPlugin(IPluginDescription dep) { + return (from i in listView.Items.Cast() + where i.Tag == dep + select i).Single(); + } + + private DeploymentService.PluginDescription MakePluginDescription(IPluginDescription plugin, Dictionary cachedPluginDescriptions) { + if (!cachedPluginDescriptions.ContainsKey(plugin)) { + var dependencies = (from dep in plugin.Dependencies + select MakePluginDescription(dep, cachedPluginDescriptions)) + .ToList(); + cachedPluginDescriptions.Add(plugin, + new DeploymentService.PluginDescription(plugin.Name, plugin.Version, dependencies, plugin.ContactName, plugin.ContactEmail, plugin.LicenseText)); + } + return cachedPluginDescriptions[plugin]; + } + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/Util.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/Util.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/Util.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/Util.cs index 4275fdf3dc..08ad17e335 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/Util.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Advanced/Util.cs @@ -1,75 +1,75 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal static class Util { - internal static void ResizeColumn(ColumnHeader columnHeader) { - columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); - int headerSize = columnHeader.Width; - columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); - int contentSize = columnHeader.Width; - columnHeader.Width = Math.Max(headerSize, contentSize); - } - - internal static void ResizeColumns(IEnumerable columnHeaders) { - foreach (var columnHeader in columnHeaders) - ResizeColumn(columnHeader); - } - - internal static IEnumerable GetAllDependents(IPluginDescription plugin, IEnumerable availablePlugins) { - return from p in availablePlugins - let matchingEntries = from dep in GetAllDependencies(p) - where dep.Name == plugin.Name - where dep.Version == plugin.Version - select dep - where matchingEntries.Any() - select p as IPluginDescription; - } - - internal static IEnumerable GetAllDependencies(IPluginDescription plugin) { - HashSet yieldedPlugins = new HashSet(); - foreach (var dep in plugin.Dependencies) { - foreach (var recDep in GetAllDependencies(dep)) { - if (!yieldedPlugins.Contains(recDep)) { - yieldedPlugins.Add(recDep); - yield return recDep; - } - } - if (!yieldedPlugins.Contains(dep)) { - yieldedPlugins.Add(dep); - yield return dep; - } - } - } - - // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 - internal static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { - // newer: build version is higher, or if build version is the same revision is higher - return plugin1.Version.Build > plugin2.Version.Build || - (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal static class Util { + internal static void ResizeColumn(ColumnHeader columnHeader) { + columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); + int headerSize = columnHeader.Width; + columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); + int contentSize = columnHeader.Width; + columnHeader.Width = Math.Max(headerSize, contentSize); + } + + internal static void ResizeColumns(IEnumerable columnHeaders) { + foreach (var columnHeader in columnHeaders) + ResizeColumn(columnHeader); + } + + internal static IEnumerable GetAllDependents(IPluginDescription plugin, IEnumerable availablePlugins) { + return from p in availablePlugins + let matchingEntries = from dep in GetAllDependencies(p) + where dep.Name == plugin.Name + where dep.Version == plugin.Version + select dep + where matchingEntries.Any() + select p as IPluginDescription; + } + + internal static IEnumerable GetAllDependencies(IPluginDescription plugin) { + HashSet yieldedPlugins = new HashSet(); + foreach (var dep in plugin.Dependencies) { + foreach (var recDep in GetAllDependencies(dep)) { + if (!yieldedPlugins.Contains(recDep)) { + yieldedPlugins.Add(recDep); + yield return recDep; + } + } + if (!yieldedPlugins.Contains(dep)) { + yieldedPlugins.Add(dep); + yield return dep; + } + } + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + internal static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/DefaultApplicationManager.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/DefaultApplicationManager.cs index 75031b36fc..97dcf973b0 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/DefaultApplicationManager.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/DefaultApplicationManager.cs @@ -1,51 +1,51 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; - -namespace HeuristicLab.PluginInfrastructure { - - /// - /// The DefaultApplicationManager is registered as ApplicationManager.Manager singleton for each HL application - /// started via the plugin infrastructure. - /// - internal sealed class DefaultApplicationManager : SandboxApplicationManager { - - internal DefaultApplicationManager() - : base() { - AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { - if (loadedAssemblies.ContainsKey(args.Name)) { - return loadedAssemblies[args.Name]; - } - return null; - }; - } - - /// infinite lease time - /// - /// Initializes the life time service with infinite lease time. - /// - /// null. - public override object InitializeLifetimeService() { - return null; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + + /// + /// The DefaultApplicationManager is registered as ApplicationManager.Manager singleton for each HL application + /// started via the plugin infrastructure. + /// + internal sealed class DefaultApplicationManager : SandboxApplicationManager { + + internal DefaultApplicationManager() + : base() { + AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { + if (loadedAssemblies.ContainsKey(args.Name)) { + return loadedAssemblies[args.Name]; + } + return null; + }; + } + + /// infinite lease time + /// + /// Initializes the life time service with infinite lease time. + /// + /// null. + public override object InitializeLifetimeService() { + return null; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorDialog.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorDialog.Designer.cs index 6caa750da6..394eb6c3b6 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorDialog.Designer.cs @@ -1,182 +1,182 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure { - partial class ErrorDialog { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.okButton = new System.Windows.Forms.Button(); - this.iconLabel = new System.Windows.Forms.Label(); - this.messageTextBox = new System.Windows.Forms.TextBox(); - this.detailsGroupBox = new System.Windows.Forms.GroupBox(); - this.detailsTextBox = new System.Windows.Forms.TextBox(); - this.supportLabel = new System.Windows.Forms.Label(); - this.supportLinkLabel = new System.Windows.Forms.LinkLabel(); - this.detailsGroupBox.SuspendLayout(); - this.SuspendLayout(); - // - // okButton - // - this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.okButton.Location = new System.Drawing.Point(497, 327); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(75, 23); - this.okButton.TabIndex = 0; - this.okButton.Text = "&OK"; - this.okButton.UseVisualStyleBackColor = true; - // - // iconLabel - // - this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error; - this.iconLabel.Location = new System.Drawing.Point(12, 9); - this.iconLabel.Name = "iconLabel"; - this.iconLabel.Size = new System.Drawing.Size(50, 60); - this.iconLabel.TabIndex = 1; - // - // messageTextBox - // - this.messageTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.messageTextBox.BackColor = System.Drawing.SystemColors.Control; - this.messageTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.messageTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.messageTextBox.Location = new System.Drawing.Point(68, 12); - this.messageTextBox.Multiline = true; - this.messageTextBox.Name = "messageTextBox"; - this.messageTextBox.ReadOnly = true; - this.messageTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.messageTextBox.Size = new System.Drawing.Size(504, 57); - this.messageTextBox.TabIndex = 2; - this.messageTextBox.Text = "Error Message"; - // - // detailsGroupBox - // - this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.detailsGroupBox.Controls.Add(this.detailsTextBox); - this.detailsGroupBox.Location = new System.Drawing.Point(12, 75); - this.detailsGroupBox.Name = "detailsGroupBox"; - this.detailsGroupBox.Size = new System.Drawing.Size(560, 246); - this.detailsGroupBox.TabIndex = 3; - this.detailsGroupBox.TabStop = false; - this.detailsGroupBox.Text = "Details"; - // - // detailsTextBox - // - this.detailsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.detailsTextBox.BackColor = System.Drawing.SystemColors.Control; - this.detailsTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.detailsTextBox.Location = new System.Drawing.Point(6, 19); - this.detailsTextBox.Multiline = true; - this.detailsTextBox.Name = "detailsTextBox"; - this.detailsTextBox.ReadOnly = true; - this.detailsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.detailsTextBox.Size = new System.Drawing.Size(548, 221); - this.detailsTextBox.TabIndex = 0; - this.detailsTextBox.Text = "Stack Trace"; - this.detailsTextBox.WordWrap = false; - // - // supportLabel - // - this.supportLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.supportLabel.AutoSize = true; - this.supportLabel.Location = new System.Drawing.Point(12, 332); - this.supportLabel.Name = "supportLabel"; - this.supportLabel.Size = new System.Drawing.Size(264, 13); - this.supportLabel.TabIndex = 4; - this.supportLabel.Text = "If you have any problems or questions, please contact:"; - // - // supportLinkLabel - // - this.supportLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.supportLinkLabel.AutoSize = true; - this.supportLinkLabel.Location = new System.Drawing.Point(298, 332); - this.supportLinkLabel.Name = "supportLinkLabel"; - this.supportLinkLabel.Size = new System.Drawing.Size(129, 13); - this.supportLinkLabel.TabIndex = 5; - this.supportLinkLabel.TabStop = true; - this.supportLinkLabel.Text = "support@heuristiclab.com"; - this.supportLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.supportLinkLabel_LinkClicked); - // - // ErrorDialog - // - this.AcceptButton = this.okButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.CancelButton = this.okButton; - this.ClientSize = new System.Drawing.Size(584, 362); - this.Controls.Add(this.supportLinkLabel); - this.Controls.Add(this.supportLabel); - this.Controls.Add(this.detailsGroupBox); - this.Controls.Add(this.messageTextBox); - this.Controls.Add(this.iconLabel); - this.Controls.Add(this.okButton); - this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.ErrorIcon; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ErrorDialog"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Error"; - this.TopMost = true; - this.detailsGroupBox.ResumeLayout(false); - this.detailsGroupBox.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button okButton; - private System.Windows.Forms.Label iconLabel; - private System.Windows.Forms.TextBox messageTextBox; - private System.Windows.Forms.GroupBox detailsGroupBox; - private System.Windows.Forms.TextBox detailsTextBox; - private System.Windows.Forms.Label supportLabel; - private System.Windows.Forms.LinkLabel supportLinkLabel; - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure { + partial class ErrorDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.okButton = new System.Windows.Forms.Button(); + this.iconLabel = new System.Windows.Forms.Label(); + this.messageTextBox = new System.Windows.Forms.TextBox(); + this.detailsGroupBox = new System.Windows.Forms.GroupBox(); + this.detailsTextBox = new System.Windows.Forms.TextBox(); + this.supportLabel = new System.Windows.Forms.Label(); + this.supportLinkLabel = new System.Windows.Forms.LinkLabel(); + this.detailsGroupBox.SuspendLayout(); + this.SuspendLayout(); + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.Location = new System.Drawing.Point(497, 327); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 0; + this.okButton.Text = "&OK"; + this.okButton.UseVisualStyleBackColor = true; + // + // iconLabel + // + this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error; + this.iconLabel.Location = new System.Drawing.Point(12, 9); + this.iconLabel.Name = "iconLabel"; + this.iconLabel.Size = new System.Drawing.Size(50, 60); + this.iconLabel.TabIndex = 1; + // + // messageTextBox + // + this.messageTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.messageTextBox.BackColor = System.Drawing.SystemColors.Control; + this.messageTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.messageTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.messageTextBox.Location = new System.Drawing.Point(68, 12); + this.messageTextBox.Multiline = true; + this.messageTextBox.Name = "messageTextBox"; + this.messageTextBox.ReadOnly = true; + this.messageTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.messageTextBox.Size = new System.Drawing.Size(504, 57); + this.messageTextBox.TabIndex = 2; + this.messageTextBox.Text = "Error Message"; + // + // detailsGroupBox + // + this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.detailsGroupBox.Controls.Add(this.detailsTextBox); + this.detailsGroupBox.Location = new System.Drawing.Point(12, 75); + this.detailsGroupBox.Name = "detailsGroupBox"; + this.detailsGroupBox.Size = new System.Drawing.Size(560, 246); + this.detailsGroupBox.TabIndex = 3; + this.detailsGroupBox.TabStop = false; + this.detailsGroupBox.Text = "Details"; + // + // detailsTextBox + // + this.detailsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.detailsTextBox.BackColor = System.Drawing.SystemColors.Control; + this.detailsTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.detailsTextBox.Location = new System.Drawing.Point(6, 19); + this.detailsTextBox.Multiline = true; + this.detailsTextBox.Name = "detailsTextBox"; + this.detailsTextBox.ReadOnly = true; + this.detailsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.detailsTextBox.Size = new System.Drawing.Size(548, 221); + this.detailsTextBox.TabIndex = 0; + this.detailsTextBox.Text = "Stack Trace"; + this.detailsTextBox.WordWrap = false; + // + // supportLabel + // + this.supportLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.supportLabel.AutoSize = true; + this.supportLabel.Location = new System.Drawing.Point(12, 332); + this.supportLabel.Name = "supportLabel"; + this.supportLabel.Size = new System.Drawing.Size(264, 13); + this.supportLabel.TabIndex = 4; + this.supportLabel.Text = "If you have any problems or questions, please contact:"; + // + // supportLinkLabel + // + this.supportLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.supportLinkLabel.AutoSize = true; + this.supportLinkLabel.Location = new System.Drawing.Point(298, 332); + this.supportLinkLabel.Name = "supportLinkLabel"; + this.supportLinkLabel.Size = new System.Drawing.Size(129, 13); + this.supportLinkLabel.TabIndex = 5; + this.supportLinkLabel.TabStop = true; + this.supportLinkLabel.Text = "support@heuristiclab.com"; + this.supportLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.supportLinkLabel_LinkClicked); + // + // ErrorDialog + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.CancelButton = this.okButton; + this.ClientSize = new System.Drawing.Size(584, 362); + this.Controls.Add(this.supportLinkLabel); + this.Controls.Add(this.supportLabel); + this.Controls.Add(this.detailsGroupBox); + this.Controls.Add(this.messageTextBox); + this.Controls.Add(this.iconLabel); + this.Controls.Add(this.okButton); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.ErrorIcon; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ErrorDialog"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Error"; + this.TopMost = true; + this.detailsGroupBox.ResumeLayout(false); + this.detailsGroupBox.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Label iconLabel; + private System.Windows.Forms.TextBox messageTextBox; + private System.Windows.Forms.GroupBox detailsGroupBox; + private System.Windows.Forms.TextBox detailsTextBox; + private System.Windows.Forms.Label supportLabel; + private System.Windows.Forms.LinkLabel supportLinkLabel; + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorDialog.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorDialog.cs index 74acd21ed3..a2bf5872f4 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorDialog.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorDialog.cs @@ -1,64 +1,64 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure { - public partial class ErrorDialog : Form { - public ErrorDialog() { - InitializeComponent(); - Initialize(null, null); - } - public ErrorDialog(Exception exception) - : this() { - Initialize(null, exception); - } - public ErrorDialog(string message, Exception exception) - : this() { - Initialize(message, exception); - } - - private void Initialize(string message, Exception exception) { - Text = "Error"; - if (exception != null) Text += " - " + exception.GetType().Name; - - if (!string.IsNullOrEmpty(message)) - messageTextBox.Text = message; - else if (exception != null) - messageTextBox.Text = exception.Message; - else - messageTextBox.Text = "Sorry, but something went wrong."; - messageTextBox.Enabled = !string.IsNullOrEmpty(messageTextBox.Text); - - detailsTextBox.Text = ErrorHandling.BuildErrorMessage(exception); - detailsGroupBox.Enabled = !string.IsNullOrEmpty(detailsTextBox.Text); - } - - private void supportLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - try { - System.Diagnostics.Process.Start("mailto:" + supportLinkLabel.Text); - supportLinkLabel.LinkVisited = true; - } - catch (Exception) { } - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure { + public partial class ErrorDialog : Form { + public ErrorDialog() { + InitializeComponent(); + Initialize(null, null); + } + public ErrorDialog(Exception exception) + : this() { + Initialize(null, exception); + } + public ErrorDialog(string message, Exception exception) + : this() { + Initialize(message, exception); + } + + private void Initialize(string message, Exception exception) { + Text = "Error"; + if (exception != null) Text += " - " + exception.GetType().Name; + + if (!string.IsNullOrEmpty(message)) + messageTextBox.Text = message; + else if (exception != null) + messageTextBox.Text = exception.Message; + else + messageTextBox.Text = "Sorry, but something went wrong."; + messageTextBox.Enabled = !string.IsNullOrEmpty(messageTextBox.Text); + + detailsTextBox.Text = ErrorHandling.BuildErrorMessage(exception); + detailsGroupBox.Enabled = !string.IsNullOrEmpty(detailsTextBox.Text); + } + + private void supportLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + try { + System.Diagnostics.Process.Start("mailto:" + supportLinkLabel.Text); + supportLinkLabel.LinkVisited = true; + } + catch (Exception) { } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorHandlingUI.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorHandlingUI.cs new file mode 100644 index 0000000000..836736bdaf --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/ErrorHandlingUI.cs @@ -0,0 +1,50 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure { + public static class ErrorHandlingUI { + public static void ShowErrorDialog(Exception exception) { + ShowErrorDialog(string.Empty, exception); + } + public static void ShowErrorDialog(Control owner, Exception exception) { + ShowErrorDialog(owner, string.Empty, exception); + } + public static void ShowErrorDialog(string message, Exception exception) { + using (ErrorDialog dialog = new ErrorDialog(message, exception)) { + dialog.StartPosition = FormStartPosition.CenterScreen; + dialog.ShowDialog(); + } + } + public static void ShowErrorDialog(Control owner, string message, Exception exception) { + if (owner == null) throw new ArgumentNullException("owner"); + if (owner.InvokeRequired) { + owner.Invoke(new Action(ShowErrorDialog), owner, message, exception); + } else { + using (ErrorDialog dialog = new ErrorDialog(message, exception)) { + dialog.ShowDialog(owner); + } + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs index f813debf59..f027d8adb3 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs @@ -1,145 +1,145 @@ -#region License Information -/* HeuristicLab -* Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) -* -* This file is part of HeuristicLab. -* -* HeuristicLab is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure { - partial class FrameworkVersionErrorDialog { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.iconLabel = new System.Windows.Forms.Label(); - this.closeButton = new System.Windows.Forms.Button(); - this.linkLabel = new System.Windows.Forms.LinkLabel(); - this.label = new System.Windows.Forms.Label(); - this.linkLabelMono = new System.Windows.Forms.LinkLabel(); - this.SuspendLayout(); - // - // iconLabel - // - this.iconLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error; - this.iconLabel.ImageAlign = System.Drawing.ContentAlignment.TopLeft; - this.iconLabel.Location = new System.Drawing.Point(12, 9); - this.iconLabel.Name = "iconLabel"; - this.iconLabel.Size = new System.Drawing.Size(50, 121); - this.iconLabel.TabIndex = 0; - // - // closeButton - // - this.closeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.closeButton.Location = new System.Drawing.Point(294, 104); - this.closeButton.Name = "closeButton"; - this.closeButton.Size = new System.Drawing.Size(75, 23); - this.closeButton.TabIndex = 3; - this.closeButton.Text = "&Close"; - this.closeButton.UseVisualStyleBackColor = true; - this.closeButton.Click += new System.EventHandler(this.cancelButton_Click); - // - // linkLabel - // - this.linkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.linkLabel.Location = new System.Drawing.Point(68, 52); - this.linkLabel.Name = "linkLabel"; - this.linkLabel.Size = new System.Drawing.Size(301, 49); - this.linkLabel.TabIndex = 2; - this.linkLabel.TabStop = true; - this.linkLabel.Text = "Download Microsoft .NET Framework 4.5"; - this.linkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_LinkClicked); - // - // label - // - this.label.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.label.Location = new System.Drawing.Point(68, 9); - this.label.Name = "label"; - this.label.Size = new System.Drawing.Size(301, 43); - this.label.TabIndex = 1; - this.label.Text = "To run HeuristicLab you need at least the Microsoft .NET Framework 4.5 or Mono ve" + - "rsion 3.6.0 or higher. Please download and install it."; - // - // linkLabelMono - // - this.linkLabelMono.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.linkLabelMono.Location = new System.Drawing.Point(68, 72); - this.linkLabelMono.Name = "linkLabelMono"; - this.linkLabelMono.Size = new System.Drawing.Size(301, 16); - this.linkLabelMono.TabIndex = 4; - this.linkLabelMono.TabStop = true; - this.linkLabelMono.Text = "Download Mono"; - this.linkLabelMono.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelMono_LinkClicked); - // - // FrameworkVersionErrorDialog - // - this.AcceptButton = this.closeButton; - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.CancelButton = this.closeButton; - this.ClientSize = new System.Drawing.Size(381, 139); - this.Controls.Add(this.linkLabelMono); - this.Controls.Add(this.label); - this.Controls.Add(this.linkLabel); - this.Controls.Add(this.closeButton); - this.Controls.Add(this.iconLabel); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "FrameworkVersionErrorDialog"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Error"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Label iconLabel; - private System.Windows.Forms.Button closeButton; - private System.Windows.Forms.LinkLabel linkLabel; - private System.Windows.Forms.Label label; - private System.Windows.Forms.LinkLabel linkLabelMono; - } +#region License Information +/* HeuristicLab +* Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) +* +* This file is part of HeuristicLab. +* +* HeuristicLab is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure { + partial class FrameworkVersionErrorDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.iconLabel = new System.Windows.Forms.Label(); + this.closeButton = new System.Windows.Forms.Button(); + this.linkLabel = new System.Windows.Forms.LinkLabel(); + this.label = new System.Windows.Forms.Label(); + this.linkLabelMono = new System.Windows.Forms.LinkLabel(); + this.SuspendLayout(); + // + // iconLabel + // + this.iconLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error; + this.iconLabel.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.iconLabel.Location = new System.Drawing.Point(12, 9); + this.iconLabel.Name = "iconLabel"; + this.iconLabel.Size = new System.Drawing.Size(50, 121); + this.iconLabel.TabIndex = 0; + // + // closeButton + // + this.closeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.closeButton.Location = new System.Drawing.Point(294, 104); + this.closeButton.Name = "closeButton"; + this.closeButton.Size = new System.Drawing.Size(75, 23); + this.closeButton.TabIndex = 3; + this.closeButton.Text = "&Close"; + this.closeButton.UseVisualStyleBackColor = true; + this.closeButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // linkLabel + // + this.linkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.linkLabel.Location = new System.Drawing.Point(68, 52); + this.linkLabel.Name = "linkLabel"; + this.linkLabel.Size = new System.Drawing.Size(301, 49); + this.linkLabel.TabIndex = 2; + this.linkLabel.TabStop = true; + this.linkLabel.Text = "Download Microsoft .NET Framework 4.5"; + this.linkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_LinkClicked); + // + // label + // + this.label.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label.Location = new System.Drawing.Point(68, 9); + this.label.Name = "label"; + this.label.Size = new System.Drawing.Size(301, 43); + this.label.TabIndex = 1; + this.label.Text = "To run HeuristicLab you need at least the Microsoft .NET Framework 4.5 or Mono ve" + + "rsion 3.6.0 or higher. Please download and install it."; + // + // linkLabelMono + // + this.linkLabelMono.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.linkLabelMono.Location = new System.Drawing.Point(68, 72); + this.linkLabelMono.Name = "linkLabelMono"; + this.linkLabelMono.Size = new System.Drawing.Size(301, 16); + this.linkLabelMono.TabIndex = 4; + this.linkLabelMono.TabStop = true; + this.linkLabelMono.Text = "Download Mono"; + this.linkLabelMono.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelMono_LinkClicked); + // + // FrameworkVersionErrorDialog + // + this.AcceptButton = this.closeButton; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.CancelButton = this.closeButton; + this.ClientSize = new System.Drawing.Size(381, 139); + this.Controls.Add(this.linkLabelMono); + this.Controls.Add(this.label); + this.Controls.Add(this.linkLabel); + this.Controls.Add(this.closeButton); + this.Controls.Add(this.iconLabel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FrameworkVersionErrorDialog"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Error"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label iconLabel; + private System.Windows.Forms.Button closeButton; + private System.Windows.Forms.LinkLabel linkLabel; + private System.Windows.Forms.Label label; + private System.Windows.Forms.LinkLabel linkLabelMono; + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs index 8328973a6e..90b087bb76 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs @@ -1,115 +1,115 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Reflection; -using System.Windows.Forms; - -namespace HeuristicLab.PluginInfrastructure { - public partial class FrameworkVersionErrorDialog : Form { - private const string NETVersionPath = @"Software\Microsoft\NET Framework Setup\NDP\v4\Full"; - private const string NETVersion = "Version"; - - public static bool NET4_5Installed { - get { - try { - var registryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(NETVersionPath); - if (registryKey != null) { - var versionKey = registryKey.GetValue(NETVersion); - if (versionKey != null) { - Version version = new Version(versionKey.ToString()); - return version.Major >= 4 && version.Minor >= 5; - } - } - } - catch (System.Security.SecurityException) { - return false; - } - return false; - } - } - - public static bool MonoInstalled { - get { return Type.GetType("Mono.Runtime") != null; } - } - - public static bool MonoCorrectVersionInstalled { - get { - var monoVersion = MonoVersion; - var minRequiredVersion = new Version(3, 6, 0); - - //we need at least mono version 3.6.0 - if (monoVersion != null && monoVersion >= minRequiredVersion) { - return true; - } else { - return false; - } - } - } - - public static Version MonoVersion { - get { - Type type = Type.GetType("Mono.Runtime"); - if (type != null) { - MethodInfo dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); - if (dispalayName != null) { - string versionString = dispalayName.Invoke(null, null) as string; - if (versionString != null) { - // the version string looks something like: 2.11.4 (master/99d5e54 Thu Sep 6 15:55:44 CEST 2012) - var subVerStrings = versionString.Split(' '); - if (subVerStrings.Length > 0) { - try { - return Version.Parse(subVerStrings[0]); - } - catch { } - } - } - } - } - return null; - } - } - - public FrameworkVersionErrorDialog() { - InitializeComponent(); - } - - private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - try { - System.Diagnostics.Process.Start("http://www.microsoft.com/en-us/download/details.aspx?id=30653"); - linkLabel.LinkVisited = true; - } - catch (Exception) { } - } - - private void cancelButton_Click(object sender, EventArgs e) { - Application.Exit(); - } - - private void linkLabelMono_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - try { - System.Diagnostics.Process.Start("http://www.mono-project.org"); - linkLabelMono.LinkVisited = true; - } - catch (Exception) { } - } - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Reflection; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure { + public partial class FrameworkVersionErrorDialog : Form { + private const string NETVersionPath = @"Software\Microsoft\NET Framework Setup\NDP\v4\Full"; + private const string NETVersion = "Version"; + + public static bool NET4_5Installed { + get { + try { + var registryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(NETVersionPath); + if (registryKey != null) { + var versionKey = registryKey.GetValue(NETVersion); + if (versionKey != null) { + Version version = new Version(versionKey.ToString()); + return version.Major >= 4 && version.Minor >= 5; + } + } + } + catch (System.Security.SecurityException) { + return false; + } + return false; + } + } + + public static bool MonoInstalled { + get { return Type.GetType("Mono.Runtime") != null; } + } + + public static bool MonoCorrectVersionInstalled { + get { + var monoVersion = MonoVersion; + var minRequiredVersion = new Version(3, 6, 0); + + //we need at least mono version 3.6.0 + if (monoVersion != null && monoVersion >= minRequiredVersion) { + return true; + } else { + return false; + } + } + } + + public static Version MonoVersion { + get { + Type type = Type.GetType("Mono.Runtime"); + if (type != null) { + MethodInfo dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); + if (dispalayName != null) { + string versionString = dispalayName.Invoke(null, null) as string; + if (versionString != null) { + // the version string looks something like: 2.11.4 (master/99d5e54 Thu Sep 6 15:55:44 CEST 2012) + var subVerStrings = versionString.Split(' '); + if (subVerStrings.Length > 0) { + try { + return Version.Parse(subVerStrings[0]); + } + catch { } + } + } + } + } + return null; + } + } + + public FrameworkVersionErrorDialog() { + InitializeComponent(); + } + + private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + try { + System.Diagnostics.Process.Start("http://www.microsoft.com/en-us/download/details.aspx?id=30653"); + linkLabel.LinkVisited = true; + } + catch (Exception) { } + } + + private void cancelButton_Click(object sender, EventArgs e) { + Application.Exit(); + } + + private void linkLabelMono_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + try { + System.Diagnostics.Process.Start("http://www.mono-project.org"); + linkLabelMono.LinkVisited = true; + } + catch (Exception) { } + } + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/HeuristicLab.PluginInfrastructure.Extension-3.3.csproj b/HeuristicLab.PluginInfrastructure.Extension/3.3/HeuristicLab.PluginInfrastructure.Extension-3.3.csproj new file mode 100644 index 0000000000..f713e12be6 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/HeuristicLab.PluginInfrastructure.Extension-3.3.csproj @@ -0,0 +1,371 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {D2B1D7D0-CBEF-4640-9449-B1DD88B3639A} + Library + Properties + HeuristicLab.PluginInfrastructure + HeuristicLab.PluginInfrastructure.Extension-3.3 + + + true + HeuristicLab.snk + + + 3.5 + + + v4.7.2 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + $(SolutionDir)\bin\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + $(SolutionDir)\bin\ + TRACE + prompt + 4 + false + + + false + + + true + $(SolutionDir)\bin\ + DEBUG;TRACE + full + x86 + prompt + false + + + $(SolutionDir)\bin\ + TRACE + + + true + pdbonly + x86 + prompt + false + + + true + $(SolutionDir)\bin\ + DEBUG;TRACE + full + x64 + prompt + false + + + $(SolutionDir)\bin\ + TRACE + + + true + pdbonly + x64 + prompt + false + + + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + + + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + + + + + + + UserControl + + + AvailablePluginsView.cs + + + UserControl + + + BasicUpdateView.cs + + + Form + + + ConfirmationDialog.cs + + + Form + + + ConnectionSetupView.cs + + + + + + + + + + Form + + + PluginUpdaterForm.cs + + + + UserControl + + + EditProductsView.cs + + + UserControl + + + InstalledPluginsView.cs + + + Form + + + LicenseConfirmationDialog.cs + + + UserControl + + + UploadPluginsView.cs + + + + UserControl + + + InstallationManagerControl.cs + + + + Form + + + InstallationManagerForm.cs + + + Form + + + LicenseView.cs + + + Component + + + MultiSelectListView.cs + + + Form + + + PluginView.cs + + + + + + + + Form + + + ErrorDialog.cs + + + + + Form + + + FrameworkVersionErrorDialog.cs + + + + + + + Designer + + + + + + PublicSettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + True + True + Resources.resx + + + + Form + + + AboutDialog.cs + + + Form + + + SplashScreen.cs + + + Form + + + StarterForm.cs + + + + + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + {94186a6a-5176-4402-ae83-886557b53cca} + HeuristicLab.PluginInfrastructure-3.3 + + + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) +set ProjectDir=$(ProjectDir) +set SolutionDir=$(SolutionDir) +set Outdir=$(Outdir) + +call PreBuildEvent.cmd + +export ProjectDir=$(ProjectDir) +export SolutionDir=$(SolutionDir) + +$SolutionDir/PreBuildEvent.sh + + + \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/HeuristicLab.snk b/HeuristicLab.PluginInfrastructure.Extension/3.3/HeuristicLab.snk new file mode 100644 index 0000000000..41ce51218d Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/HeuristicLab.snk differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Main.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Main.cs new file mode 100644 index 0000000000..f0e3508a67 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Main.cs @@ -0,0 +1,53 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Starter; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Static class that contains the main entry point of the plugin infrastructure. + /// + public static class Main { + /// + /// Main entry point of the plugin infrastructure. Loads the starter form. + /// + /// Command line arguments + public static void Run(string[] args) { + if ((!FrameworkVersionErrorDialog.NET4_5Installed && !FrameworkVersionErrorDialog.MonoInstalled) + || (FrameworkVersionErrorDialog.MonoInstalled && !FrameworkVersionErrorDialog.MonoCorrectVersionInstalled)) { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FrameworkVersionErrorDialog()); + } else { + try { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new StarterForm(args)); + } + catch (Exception ex) { + ErrorHandlingUI.ShowErrorDialog(ex); + } + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginInfrastructureCancelEventArgs.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginInfrastructureCancelEventArgs.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Manager/PluginInfrastructureCancelEventArgs.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginInfrastructureCancelEventArgs.cs index 3a71dae0ea..db9bd4c1af 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginInfrastructureCancelEventArgs.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginInfrastructureCancelEventArgs.cs @@ -1,36 +1,36 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.ComponentModel; - -namespace HeuristicLab.PluginInfrastructure.Manager { - // to be replaced by GenericEventArgs - [Serializable] - internal sealed class PluginInfrastructureCancelEventArgs : CancelEventArgs { - internal IEnumerable Plugins { get; private set; } - internal PluginInfrastructureCancelEventArgs(IEnumerable plugins) - : base() { - this.Plugins = plugins; - } - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; + +namespace HeuristicLab.PluginInfrastructure.Manager { + // to be replaced by GenericEventArgs + [Serializable] + internal sealed class PluginInfrastructureCancelEventArgs : CancelEventArgs { + internal IEnumerable Plugins { get; private set; } + internal PluginInfrastructureCancelEventArgs(IEnumerable plugins) + : base() { + this.Plugins = plugins; + } + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginManager.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginManager.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Manager/PluginManager.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginManager.cs index a018794441..382a37b0e9 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginManager.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginManager.cs @@ -1,212 +1,212 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Security.Permissions; - -namespace HeuristicLab.PluginInfrastructure.Manager { - - // must extend MarshalByRefObject because of event passing between Loader and PluginManager (each in it's own AppDomain) - /// - /// Class to manage different plugins. - /// - public sealed class PluginManager : MarshalByRefObject { - public event EventHandler PluginLoaded; - public event EventHandler PluginUnloaded; - public event EventHandler Initializing; - public event EventHandler Initialized; - public event EventHandler ApplicationStarting; - public event EventHandler ApplicationStarted; - - private string pluginDir; - - private List plugins; - /// - /// Gets all installed plugins. - /// - public IEnumerable Plugins { - get { return plugins; } - } - - private List applications; - /// - /// Gets all installed applications. - /// - public IEnumerable Applications { - get { return applications; } - } - - private object locker = new object(); - private bool initialized; - - public PluginManager(string pluginDir) { - this.pluginDir = pluginDir; - plugins = new List(); - applications = new List(); - initialized = false; - } - - /// - /// Determines installed plugins and checks if all plugins are loadable. - /// - public void DiscoverAndCheckPlugins() { - OnInitializing(PluginInfrastructureEventArgs.Empty); - AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; - setup.ApplicationBase = pluginDir; - AppDomain pluginDomain = null; - try { - pluginDomain = AppDomain.CreateDomain("plugin domain", null, setup); - Type pluginValidatorType = typeof(PluginValidator); - PluginValidator remoteValidator = (PluginValidator)pluginDomain.CreateInstanceAndUnwrap(pluginValidatorType.Assembly.FullName, pluginValidatorType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); - remoteValidator.PluginDir = pluginDir; - // forward all events from the remoteValidator to listeners - remoteValidator.PluginLoaded += - delegate(object sender, PluginInfrastructureEventArgs e) { - OnPluginLoaded(e); - }; - // get list of plugins and applications from the validator - plugins.Clear(); applications.Clear(); - plugins.AddRange(remoteValidator.Plugins); - applications.AddRange(remoteValidator.Applications); - } - finally { - // discard the AppDomain that was used for plugin discovery - AppDomain.Unload(pluginDomain); - // unload all plugins - foreach (var pluginDescription in plugins.Where(x => x.PluginState == PluginState.Loaded)) { - pluginDescription.Unload(); - OnPluginUnloaded(new PluginInfrastructureEventArgs(pluginDescription)); - } - initialized = true; - OnInitialized(PluginInfrastructureEventArgs.Empty); - } - } - - - /// - /// Starts an application in a separate AppDomain. - /// Loads all enabled plugins and starts the application via an ApplicationManager instance activated in the new AppDomain. - /// - /// application to run - public void Run(ApplicationDescription appInfo, ICommandLineArgument[] args) { - if (!initialized) throw new InvalidOperationException("PluginManager is not initialized. DiscoverAndCheckPlugins() must be called before Run()"); - // create a separate AppDomain for the application - // initialize the static ApplicationManager in the AppDomain - // and remotely tell it to start the application - - OnApplicationStarting(new PluginInfrastructureEventArgs(appInfo)); - AppDomain applicationDomain = null; - try { - AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; - setup.PrivateBinPath = pluginDir; - applicationDomain = AppDomain.CreateDomain(AppDomain.CurrentDomain.FriendlyName, null, setup); - Type applicationManagerType = typeof(DefaultApplicationManager); - DefaultApplicationManager applicationManager = - (DefaultApplicationManager)applicationDomain.CreateInstanceAndUnwrap(applicationManagerType.Assembly.FullName, applicationManagerType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); - applicationManager.PluginLoaded += applicationManager_PluginLoaded; - applicationManager.PluginUnloaded += applicationManager_PluginUnloaded; - applicationManager.PrepareApplicationDomain(applications, plugins); - OnApplicationStarted(new PluginInfrastructureEventArgs(appInfo)); - applicationManager.Run(appInfo, args); - } - finally { - // make sure domain is unloaded in all cases - AppDomain.Unload(applicationDomain); - } - } - - private void applicationManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { - // unload the matching plugin description ( - PluginDescription desc = (PluginDescription)e.Entity; - - // access to plugin descriptions has to be synchronized because multiple applications - // can be started or stopped at the same time - lock (locker) { - // also unload the matching plugin description in this AppDomain - plugins.First(x => x.Equals(desc)).Unload(); - } - OnPluginUnloaded(e); - } - - private void applicationManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { - // load the matching plugin description ( - PluginDescription desc = (PluginDescription)e.Entity; - // access to plugin descriptions has to be synchronized because multiple applications - // can be started or stopped at the same time - lock (locker) { - // also load the matching plugin description in this AppDomain - plugins.First(x => x.Equals(desc)).Load(); - } - OnPluginLoaded(e); - } - - #region event raising methods - private void OnPluginLoaded(PluginInfrastructureEventArgs e) { - if (PluginLoaded != null) { - PluginLoaded(this, e); - } - } - - private void OnPluginUnloaded(PluginInfrastructureEventArgs e) { - if (PluginUnloaded != null) { - PluginUnloaded(this, e); - } - } - - private void OnInitializing(PluginInfrastructureEventArgs e) { - if (Initializing != null) { - Initializing(this, e); - } - } - - private void OnInitialized(PluginInfrastructureEventArgs e) { - if (Initialized != null) { - Initialized(this, e); - } - } - - private void OnApplicationStarting(PluginInfrastructureEventArgs e) { - if (ApplicationStarting != null) { - ApplicationStarting(this, e); - } - } - - private void OnApplicationStarted(PluginInfrastructureEventArgs e) { - if (ApplicationStarted != null) { - ApplicationStarted(this, e); - } - } - #endregion - - // infinite lease time - /// - /// Make sure that the plugin manager is never disposed (necessary for cross-app-domain events) - /// - /// null. - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)] - public override object InitializeLifetimeService() { - return null; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Security.Permissions; + +namespace HeuristicLab.PluginInfrastructure.Manager { + + // must extend MarshalByRefObject because of event passing between Loader and PluginManager (each in it's own AppDomain) + /// + /// Class to manage different plugins. + /// + public sealed class PluginManager : MarshalByRefObject { + public event EventHandler PluginLoaded; + public event EventHandler PluginUnloaded; + public event EventHandler Initializing; + public event EventHandler Initialized; + public event EventHandler ApplicationStarting; + public event EventHandler ApplicationStarted; + + private string pluginDir; + + private List plugins; + /// + /// Gets all installed plugins. + /// + public IEnumerable Plugins { + get { return plugins; } + } + + private List applications; + /// + /// Gets all installed applications. + /// + public IEnumerable Applications { + get { return applications; } + } + + private object locker = new object(); + private bool initialized; + + public PluginManager(string pluginDir) { + this.pluginDir = pluginDir; + plugins = new List(); + applications = new List(); + initialized = false; + } + + /// + /// Determines installed plugins and checks if all plugins are loadable. + /// + public void DiscoverAndCheckPlugins() { + OnInitializing(PluginInfrastructureEventArgs.Empty); + AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; + setup.ApplicationBase = pluginDir; + AppDomain pluginDomain = null; + try { + pluginDomain = AppDomain.CreateDomain("plugin domain", null, setup); + Type pluginValidatorType = typeof(PluginValidator); + PluginValidator remoteValidator = (PluginValidator)pluginDomain.CreateInstanceAndUnwrap(pluginValidatorType.Assembly.FullName, pluginValidatorType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); + remoteValidator.PluginDir = pluginDir; + // forward all events from the remoteValidator to listeners + remoteValidator.PluginLoaded += + delegate(object sender, PluginInfrastructureEventArgs e) { + OnPluginLoaded(e); + }; + // get list of plugins and applications from the validator + plugins.Clear(); applications.Clear(); + plugins.AddRange(remoteValidator.Plugins); + applications.AddRange(remoteValidator.Applications); + } + finally { + // discard the AppDomain that was used for plugin discovery + AppDomain.Unload(pluginDomain); + // unload all plugins + foreach (var pluginDescription in plugins.Where(x => x.PluginState == PluginState.Loaded)) { + pluginDescription.Unload(); + OnPluginUnloaded(new PluginInfrastructureEventArgs(pluginDescription)); + } + initialized = true; + OnInitialized(PluginInfrastructureEventArgs.Empty); + } + } + + + /// + /// Starts an application in a separate AppDomain. + /// Loads all enabled plugins and starts the application via an ApplicationManager instance activated in the new AppDomain. + /// + /// application to run + public void Run(ApplicationDescription appInfo, ICommandLineArgument[] args) { + if (!initialized) throw new InvalidOperationException("PluginManager is not initialized. DiscoverAndCheckPlugins() must be called before Run()"); + // create a separate AppDomain for the application + // initialize the static ApplicationManager in the AppDomain + // and remotely tell it to start the application + + OnApplicationStarting(new PluginInfrastructureEventArgs(appInfo)); + AppDomain applicationDomain = null; + try { + AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; + setup.PrivateBinPath = pluginDir; + applicationDomain = AppDomain.CreateDomain(AppDomain.CurrentDomain.FriendlyName, null, setup); + Type applicationManagerType = typeof(DefaultApplicationManager); + DefaultApplicationManager applicationManager = + (DefaultApplicationManager)applicationDomain.CreateInstanceAndUnwrap(applicationManagerType.Assembly.FullName, applicationManagerType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); + applicationManager.PluginLoaded += applicationManager_PluginLoaded; + applicationManager.PluginUnloaded += applicationManager_PluginUnloaded; + applicationManager.PrepareApplicationDomain(applications, plugins); + OnApplicationStarted(new PluginInfrastructureEventArgs(appInfo)); + applicationManager.Run(appInfo, args); + } + finally { + // make sure domain is unloaded in all cases + AppDomain.Unload(applicationDomain); + } + } + + private void applicationManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + // unload the matching plugin description ( + PluginDescription desc = (PluginDescription)e.Entity; + + // access to plugin descriptions has to be synchronized because multiple applications + // can be started or stopped at the same time + lock (locker) { + // also unload the matching plugin description in this AppDomain + plugins.First(x => x.Equals(desc)).Unload(); + } + OnPluginUnloaded(e); + } + + private void applicationManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + // load the matching plugin description ( + PluginDescription desc = (PluginDescription)e.Entity; + // access to plugin descriptions has to be synchronized because multiple applications + // can be started or stopped at the same time + lock (locker) { + // also load the matching plugin description in this AppDomain + plugins.First(x => x.Equals(desc)).Load(); + } + OnPluginLoaded(e); + } + + #region event raising methods + private void OnPluginLoaded(PluginInfrastructureEventArgs e) { + if (PluginLoaded != null) { + PluginLoaded(this, e); + } + } + + private void OnPluginUnloaded(PluginInfrastructureEventArgs e) { + if (PluginUnloaded != null) { + PluginUnloaded(this, e); + } + } + + private void OnInitializing(PluginInfrastructureEventArgs e) { + if (Initializing != null) { + Initializing(this, e); + } + } + + private void OnInitialized(PluginInfrastructureEventArgs e) { + if (Initialized != null) { + Initialized(this, e); + } + } + + private void OnApplicationStarting(PluginInfrastructureEventArgs e) { + if (ApplicationStarting != null) { + ApplicationStarting(this, e); + } + } + + private void OnApplicationStarted(PluginInfrastructureEventArgs e) { + if (ApplicationStarted != null) { + ApplicationStarted(this, e); + } + } + #endregion + + // infinite lease time + /// + /// Make sure that the plugin manager is never disposed (necessary for cross-app-domain events) + /// + /// null. + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)] + public override object InitializeLifetimeService() { + return null; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginValidator.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginValidator.cs new file mode 100644 index 0000000000..c96f23b5d7 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Manager/PluginValidator.cs @@ -0,0 +1,623 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Security; +using System.Text; + + +namespace HeuristicLab.PluginInfrastructure.Manager { + /// + /// Discovers all installed plugins in the plugin directory. Checks correctness of plugin meta-data and if + /// all plugin files are available and checks plugin dependencies. + /// + internal sealed class PluginValidator : MarshalByRefObject { + // private class to store plugin dependency declarations while reflecting over plugins + private class PluginDependency { + public string Name { get; private set; } + public Version Version { get; private set; } + + public PluginDependency(string name, Version version) { + this.Name = name; + this.Version = version; + } + } + + + internal event EventHandler PluginLoaded; + + private Dictionary> pluginDependencies; + + private List applications; + internal IEnumerable Applications { + get { + if (string.IsNullOrEmpty(PluginDir)) throw new InvalidOperationException("PluginDir is not set."); + if (applications == null) DiscoverAndCheckPlugins(); + return applications; + } + } + + private IEnumerable plugins; + internal IEnumerable Plugins { + get { + if (string.IsNullOrEmpty(PluginDir)) throw new InvalidOperationException("PluginDir is not set."); + if (plugins == null) DiscoverAndCheckPlugins(); + return plugins; + } + } + + internal string PluginDir { get; set; } + + internal PluginValidator() { + this.pluginDependencies = new Dictionary>(); + + // ReflectionOnlyAssemblyResolveEvent must be handled because we load assemblies from the plugin path + // (which is not listed in the default assembly lookup locations) + AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += ReflectionOnlyAssemblyResolveEventHandler; + } + + private Dictionary reflectionOnlyAssemblies = new Dictionary(); + private Assembly ReflectionOnlyAssemblyResolveEventHandler(object sender, ResolveEventArgs args) { + if (reflectionOnlyAssemblies.ContainsKey(args.Name)) + return reflectionOnlyAssemblies[args.Name]; + else + //TODO: .NET6 + //return Assembly.ReflectionOnlyLoad(args.Name); + return Assembly.Load(args.Name); + } + + + /// + /// Init first clears all internal datastructures (including plugin lists) + /// 1. All assemblies in the plugins directory are loaded into the reflection only context. + /// 2. The validator checks if all necessary files for each plugin are available. + /// 3. The validator checks if all declared plugin assemblies can be loaded. + /// 4. The validator builds the tree of plugin descriptions (dependencies) + /// 5. The validator checks if there are any cycles in the plugin dependency graph and disables plugin with circular dependencies + /// 6. The validator checks for each plugin if any dependency is disabled. + /// 7. All plugins that are not disabled are loaded into the execution context. + /// 8. Each loaded plugin (all assemblies) is searched for a types that implement IPlugin + /// then one instance of each IPlugin type is activated and the OnLoad hook is called. + /// 9. All types implementing IApplication are discovered + /// + internal void DiscoverAndCheckPlugins() { + pluginDependencies.Clear(); + + IEnumerable reflectionOnlyAssemblies = ReflectionOnlyLoadDlls(PluginDir); + IEnumerable pluginDescriptions = GatherPluginDescriptions(reflectionOnlyAssemblies); + CheckPluginFiles(pluginDescriptions); + + // check if all plugin assemblies can be loaded + CheckPluginAssemblies(pluginDescriptions); + + // a full list of plugin descriptions is available now we can build the dependency tree + BuildDependencyTree(pluginDescriptions); + + // check for dependency cycles + CheckPluginDependencyCycles(pluginDescriptions); + + // 1st time recursively check if all necessary plugins are available and not disabled + // disable plugins with missing or disabled dependencies + // to prevent that plugins with missing dependencies are loaded into the execution context + // in the next step + CheckPluginDependencies(pluginDescriptions); + + // test full loading (in contrast to reflection only loading) of plugins + // disables plugins that are not loaded correctly + CheckExecutionContextLoad(pluginDescriptions); + + // 2nd time recursively check if all necessary plugins have been loaded successfully and not disabled + // disable plugins with for which dependencies could not be loaded successfully + CheckPluginDependencies(pluginDescriptions); + + // mark all plugins as enabled that were not disabled in CheckPluginFiles, CheckPluginAssemblies, + // CheckCircularDependencies, CheckPluginDependencies and CheckExecutionContextLoad + foreach (var desc in pluginDescriptions) + if (desc.PluginState != PluginState.Disabled) + desc.Enable(); + + // load the enabled plugins + LoadPlugins(pluginDescriptions); + + plugins = pluginDescriptions; + DiscoverApplications(pluginDescriptions); + } + + private void DiscoverApplications(IEnumerable pluginDescriptions) { + applications = new List(); + foreach (IApplication application in GetApplications(pluginDescriptions)) { + Type appType = application.GetType(); + ApplicationAttribute attr = (from x in appType.GetCustomAttributes(typeof(ApplicationAttribute), false) + select (ApplicationAttribute)x).Single(); + ApplicationDescription info = new ApplicationDescription(); + PluginDescription declaringPlugin = GetDeclaringPlugin(appType, pluginDescriptions); + info.Name = application.Name; + info.Version = declaringPlugin.Version; + info.Description = application.Description; + info.AutoRestart = attr.RestartOnErrors; + info.DeclaringAssemblyName = appType.Assembly.GetName().Name; + info.DeclaringTypeName = appType.Namespace + "." + application.GetType().Name; + + applications.Add(info); + } + } + + private static IEnumerable GetApplications(IEnumerable pluginDescriptions) { + return from asm in AppDomain.CurrentDomain.GetAssemblies() + from t in asm.GetTypes() + where typeof(IApplication).IsAssignableFrom(t) && + !t.IsAbstract && !t.IsInterface && !t.HasElementType + where GetDeclaringPlugin(t, pluginDescriptions).PluginState != PluginState.Disabled + select (IApplication)Activator.CreateInstance(t); + } + + private IEnumerable ReflectionOnlyLoadDlls(string baseDir) { + List assemblies = new List(); + // recursively load .dll files in subdirectories + foreach (string dirName in Directory.GetDirectories(baseDir)) { + assemblies.AddRange(ReflectionOnlyLoadDlls(dirName)); + } + // try to load each .dll file in the plugin directory into the reflection only context + foreach (string filename in Directory.GetFiles(baseDir, "*.dll").Union(Directory.GetFiles(baseDir, "*.exe"))) { + try { + //TODO: .NET6 + //Assembly asm = Assembly.ReflectionOnlyLoadFrom(filename); + Assembly asm = Assembly.LoadFrom(filename); + + RegisterLoadedAssembly(asm); + assemblies.Add(asm); + } catch (BadImageFormatException) { } // just ignore the case that the .dll file is not a CLR assembly (e.g. a native dll) + catch (FileLoadException) { } catch (SecurityException) { } catch (ReflectionTypeLoadException) { } // referenced assemblies are missing + } + return assemblies; + } + + /// + /// Checks if all plugin assemblies can be loaded. If an assembly can't be loaded the plugin is disabled. + /// + /// + private void CheckPluginAssemblies(IEnumerable pluginDescriptions) { + foreach (var desc in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { + try { + var missingAssemblies = new List(); + foreach (var asmLocation in desc.AssemblyLocations) { + // the assembly must have been loaded in ReflectionOnlyDlls + // so we simply determine the name of the assembly and try to find it in the cache of loaded assemblies + var asmName = AssemblyName.GetAssemblyName(asmLocation); + if (!reflectionOnlyAssemblies.ContainsKey(asmName.FullName)) { + missingAssemblies.Add(asmName.FullName); + } + } + if (missingAssemblies.Count > 0) { + StringBuilder errorStrBuiler = new StringBuilder(); + errorStrBuiler.AppendLine("Missing assemblies:"); + foreach (string missingAsm in missingAssemblies) { + errorStrBuiler.AppendLine(missingAsm); + } + desc.Disable(errorStrBuiler.ToString()); + } + } catch (BadImageFormatException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "BadImageFormatException: " + ex.Message); + } catch (FileNotFoundException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "FileNotFoundException: " + ex.Message); + } catch (FileLoadException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "FileLoadException: " + ex.Message); + } catch (ArgumentException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "ArgumentException: " + ex.Message); + } catch (SecurityException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "SecurityException: " + ex.Message); + } + } + } + + + // find all types implementing IPlugin in the reflectionOnlyAssemblies and create a list of plugin descriptions + // the dependencies in the plugin descriptions are not yet set correctly because we need to create + // the full list of all plugin descriptions first + private IEnumerable GatherPluginDescriptions(IEnumerable assemblies) { + List pluginDescriptions = new List(); + foreach (Assembly assembly in assemblies) { + // GetExportedTypes throws FileNotFoundException when a referenced assembly + // of the current assembly is missing. + try { + // if there is a type that implements IPlugin + // use AssemblyQualifiedName to compare the types because we can't directly + // compare ReflectionOnly types and execution types + var assemblyPluginDescriptions = from t in assembly.GetExportedTypes() + where !t.IsAbstract && t.GetInterfaces().Any(x => x.AssemblyQualifiedName == typeof(IPlugin).AssemblyQualifiedName) + select GetPluginDescription(t); + pluginDescriptions.AddRange(assemblyPluginDescriptions); + } + // ignore exceptions. Just don't yield a plugin description when an exception is thrown + catch (FileNotFoundException) { + } catch (FileLoadException) { + } catch (InvalidPluginException) { + } catch (TypeLoadException) { + } catch (MissingMemberException) { + } + } + return pluginDescriptions; + } + + /// + /// Extracts plugin information for this type. + /// Reads plugin name, list and type of files and dependencies of the plugin. This information is necessary for + /// plugin dependency checking before plugin activation. + /// + /// + private PluginDescription GetPluginDescription(Type pluginType) { + + string pluginName, pluginDescription, pluginVersion; + string contactName, contactAddress; + GetPluginMetaData(pluginType, out pluginName, out pluginDescription, out pluginVersion); + GetPluginContactMetaData(pluginType, out contactName, out contactAddress); + var pluginFiles = GetPluginFilesMetaData(pluginType); + var pluginDependencies = GetPluginDependencyMetaData(pluginType); + + // minimal sanity check of the attribute values + if (!string.IsNullOrEmpty(pluginName) && + pluginFiles.Count() > 0 && // at least one file + pluginFiles.Any(f => f.Type == PluginFileType.Assembly)) { // at least one assembly + // create a temporary PluginDescription that contains the attribute values + PluginDescription info = new PluginDescription(); + info.Name = pluginName; + info.Description = pluginDescription; + info.Version = new Version(pluginVersion); + info.ContactName = contactName; + info.ContactEmail = contactAddress; + info.LicenseText = ReadLicenseFiles(pluginFiles); + info.AddFiles(pluginFiles); + + this.pluginDependencies[info] = pluginDependencies; + return info; + } else { + throw new InvalidPluginException("Invalid metadata in plugin " + pluginType.ToString()); + } + } + + private static string ReadLicenseFiles(IEnumerable pluginFiles) { + // combine the contents of all plugin files + var licenseFiles = from file in pluginFiles + where file.Type == PluginFileType.License + select file; + if (licenseFiles.Count() == 0) return string.Empty; + StringBuilder licenseTextBuilder = new StringBuilder(); + licenseTextBuilder.AppendLine(File.ReadAllText(licenseFiles.First().Name)); + foreach (var licenseFile in licenseFiles.Skip(1)) { + licenseTextBuilder.AppendLine().AppendLine(); // leave some empty space between multiple license files + licenseTextBuilder.AppendLine(File.ReadAllText(licenseFile.Name)); + } + return licenseTextBuilder.ToString(); + } + + private static IEnumerable GetPluginDependencyMetaData(Type pluginType) { + // get all attributes of type PluginDependency + var dependencyAttributes = from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(PluginDependencyAttribute)) + select attr; + + foreach (var dependencyAttr in dependencyAttributes) { + string name = (string)dependencyAttr.ConstructorArguments[0].Value; + Version version = new Version("0.0.0.0"); // default version + // check if version is given for now + // later when the constructor of PluginDependencyAttribute with only one argument has been removed + // this conditional can be removed as well + if (dependencyAttr.ConstructorArguments.Count > 1) { + try { + version = new Version((string)dependencyAttr.ConstructorArguments[1].Value); // might throw FormatException + } catch (FormatException ex) { + throw new InvalidPluginException("Invalid version format of dependency " + name + " in plugin " + pluginType.ToString(), ex); + } + } + yield return new PluginDependency(name, version); + } + } + + private static void GetPluginContactMetaData(Type pluginType, out string contactName, out string contactAddress) { + // get attribute of type ContactInformation if there is any + var contactInfoAttribute = (from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(ContactInformationAttribute)) + select attr).SingleOrDefault(); + + if (contactInfoAttribute != null) { + contactName = (string)contactInfoAttribute.ConstructorArguments[0].Value; + contactAddress = (string)contactInfoAttribute.ConstructorArguments[1].Value; + } else { + contactName = string.Empty; + contactAddress = string.Empty; + } + } + + // not static because we need the PluginDir property + private IEnumerable GetPluginFilesMetaData(Type pluginType) { + // get all attributes of type PluginFileAttribute + var pluginFileAttributes = from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(PluginFileAttribute)) + select attr; + foreach (var pluginFileAttribute in pluginFileAttributes) { + string pluginFileName = (string)pluginFileAttribute.ConstructorArguments[0].Value; + PluginFileType fileType = (PluginFileType)pluginFileAttribute.ConstructorArguments[1].Value; + yield return new PluginFile(Path.GetFullPath(Path.Combine(PluginDir, pluginFileName)), fileType); + } + } + + private static void GetPluginMetaData(Type pluginType, out string pluginName, out string pluginDescription, out string pluginVersion) { + // there must be a single attribute of type PluginAttribute + var pluginMetaDataAttr = (from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(PluginAttribute)) + select attr).Single(); + + pluginName = (string)pluginMetaDataAttr.ConstructorArguments[0].Value; + + // default description and version + pluginVersion = "0.0.0.0"; + pluginDescription = string.Empty; + if (pluginMetaDataAttr.ConstructorArguments.Count() == 2) { + // if two arguments are given the second argument is the version + pluginVersion = (string)pluginMetaDataAttr.ConstructorArguments[1].Value; + } else if (pluginMetaDataAttr.ConstructorArguments.Count() == 3) { + // if three arguments are given the second argument is the description and the third is the version + pluginDescription = (string)pluginMetaDataAttr.ConstructorArguments[1].Value; + pluginVersion = (string)pluginMetaDataAttr.ConstructorArguments[2].Value; + } + } + + private static bool IsAttributeDataForType(CustomAttributeData attributeData, Type attributeType) { + return attributeData.Constructor.DeclaringType.AssemblyQualifiedName == attributeType.AssemblyQualifiedName; + } + + // builds a dependency tree of all plugin descriptions + // searches matching plugin descriptions based on the list of dependency names for each plugin + // and sets the dependencies in the plugin descriptions + private void BuildDependencyTree(IEnumerable pluginDescriptions) { + foreach (var desc in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { + var missingDependencies = new List(); + foreach (var dependency in pluginDependencies[desc]) { + var matchingDescriptions = from availablePlugin in pluginDescriptions + where availablePlugin.PluginState != PluginState.Disabled + where availablePlugin.Name == dependency.Name + where IsCompatiblePluginVersion(availablePlugin.Version, dependency.Version) + select availablePlugin; + if (matchingDescriptions.Count() > 0) { + desc.AddDependency(matchingDescriptions.Single()); + } else { + missingDependencies.Add(dependency); + } + } + // no plugin description that matches the dependencies are available => plugin is disabled + if (missingDependencies.Count > 0) { + StringBuilder errorStrBuilder = new StringBuilder(); + errorStrBuilder.AppendLine("Missing dependencies:"); + foreach (var missingDep in missingDependencies) { + errorStrBuilder.AppendLine(missingDep.Name + " " + missingDep.Version); + } + desc.Disable(errorStrBuilder.ToString()); + } + } + } + + /// + /// Checks if version is compatible to version . + /// Note: the compatibility relation is not bijective. + /// Compatibility rules: + /// * major and minor number must be the same + /// * build and revision number of must be larger or equal to . + /// + /// The available version which should be compared to . + /// The requested version that must be matched. + /// + private static bool IsCompatiblePluginVersion(Version available, Version requested) { + // this condition must be removed after all plugins have been updated to declare plugin and dependency versions + if ( + (requested.Major == 0 && requested.Minor == 0) || + (available.Major == 0 && available.Minor == 0)) return true; + return + available.Major == requested.Major && + available.Minor == requested.Minor && + available.Build >= requested.Build && + available.Revision >= requested.Revision; + } + + private void CheckPluginDependencyCycles(IEnumerable pluginDescriptions) { + foreach (var plugin in pluginDescriptions) { + // if the plugin is not disabled check if there are cycles + if (plugin.PluginState != PluginState.Disabled && HasCycleInDependencies(plugin, plugin.Dependencies)) { + plugin.Disable("Dependency graph has a cycle."); + } + } + } + + private bool HasCycleInDependencies(PluginDescription plugin, IEnumerable pluginDependencies) { + foreach (var dep in pluginDependencies) { + // if one of the dependencies is the original plugin we found a cycle and can return + // if the dependency is already disabled we can ignore the cycle detection because we will disable the plugin anyway + // if following one of the dependencies recursively leads to a cycle then we also return + if (dep == plugin || dep.PluginState == PluginState.Disabled || HasCycleInDependencies(plugin, dep.Dependencies)) return true; + } + // no cycle found and none of the direct and indirect dependencies is disabled + return false; + } + + private void CheckPluginDependencies(IEnumerable pluginDescriptions) { + foreach (PluginDescription pluginDescription in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { + List disabledPlugins = new List(); + if (IsAnyDependencyDisabled(pluginDescription, disabledPlugins)) { + StringBuilder errorStrBuilder = new StringBuilder(); + errorStrBuilder.AppendLine("Dependencies are disabled:"); + foreach (var disabledPlugin in disabledPlugins) { + errorStrBuilder.AppendLine(disabledPlugin.Name + " " + disabledPlugin.Version); + } + pluginDescription.Disable(errorStrBuilder.ToString()); + } + } + } + + + private bool IsAnyDependencyDisabled(PluginDescription descr, List disabledPlugins) { + if (descr.PluginState == PluginState.Disabled) { + disabledPlugins.Add(descr); + return true; + } + foreach (PluginDescription dependency in descr.Dependencies) { + IsAnyDependencyDisabled(dependency, disabledPlugins); + } + return disabledPlugins.Count > 0; + } + + // tries to load all plugin assemblies into the execution context + // if an assembly of a plugin cannot be loaded the plugin is disabled + private void CheckExecutionContextLoad(IEnumerable pluginDescriptions) { + // load all loadable plugins (all dependencies available) into the execution context + foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(pluginDescriptions + .Where(x => x.PluginState != PluginState.Disabled))) { + // store the assembly names so that we can later retrieve the assemblies loaded in the appdomain by name + var assemblyNames = new List(); + foreach (string assemblyLocation in desc.AssemblyLocations) { + if (desc.PluginState != PluginState.Disabled) { + try { + //TODO: .NET6 + string assemblyName = (from assembly in AppDomain.CurrentDomain.GetAssemblies() + where string.Equals(Path.GetFullPath(assembly.Location), Path.GetFullPath(assemblyLocation), StringComparison.CurrentCultureIgnoreCase) + select assembly.FullName).Single(); + // now load the assemblies into the execution context + // this can still lead to an exception + // even when the assemby was successfully loaded into the reflection only context before + // when loading the assembly using it's assemblyName it can be loaded from a different location than before (e.g. the GAC) + Assembly.Load(assemblyName); + assemblyNames.Add(assemblyName); + } catch (BadImageFormatException) { + desc.Disable(Path.GetFileName(assemblyLocation) + " is not a valid assembly."); + } catch (FileLoadException) { + desc.Disable("Can't load file " + Path.GetFileName(assemblyLocation)); + } catch (FileNotFoundException) { + desc.Disable("File " + Path.GetFileName(assemblyLocation) + " is missing."); + } catch (SecurityException) { + desc.Disable("File " + Path.GetFileName(assemblyLocation) + " can't be loaded because of security constraints."); + } catch (NotSupportedException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "NotSupportedException: " + ex.Message); + } + } + } + desc.AssemblyNames = assemblyNames; + } + } + + // assumes that all plugin assemblies have been loaded into the execution context via CheckExecutionContextLoad + // for each enabled plugin: + // calls OnLoad method of the plugin + // and raises the PluginLoaded event + private void LoadPlugins(IEnumerable pluginDescriptions) { + List assemblies = new List(AppDomain.CurrentDomain.GetAssemblies()); + foreach (var desc in pluginDescriptions) { + if (desc.PluginState == PluginState.Enabled) { + // cannot use ApplicationManager to retrieve types because it is not yet instantiated + foreach (string assemblyName in desc.AssemblyNames) { + var asm = (from assembly in assemblies + where assembly.FullName == assemblyName + select assembly) + .SingleOrDefault(); + if (asm == null) throw new InvalidPluginException("Could not load assembly " + assemblyName + " for plugin " + desc.Name); + foreach (Type pluginType in asm.GetTypes()) { + if (typeof(IPlugin).IsAssignableFrom(pluginType) && !pluginType.IsAbstract && !pluginType.IsInterface && !pluginType.HasElementType) { + IPlugin plugin = (IPlugin)Activator.CreateInstance(pluginType); + plugin.OnLoad(); + OnPluginLoaded(new PluginInfrastructureEventArgs(desc)); + } + } + } // end foreach assembly in plugin + desc.Load(); + } + } // end foreach plugin description + } + + // checks if all declared plugin files are actually available and disables plugins with missing files + private void CheckPluginFiles(IEnumerable pluginDescriptions) { + foreach (PluginDescription desc in pluginDescriptions) { + IEnumerable missingFiles; + if (ArePluginFilesMissing(desc, out missingFiles)) { + StringBuilder errorStrBuilder = new StringBuilder(); + errorStrBuilder.AppendLine("Missing files:"); + foreach (string fileName in missingFiles) { + errorStrBuilder.AppendLine(fileName); + } + desc.Disable(errorStrBuilder.ToString()); + } + } + } + + private bool ArePluginFilesMissing(PluginDescription pluginDescription, out IEnumerable missingFiles) { + List missing = new List(); + foreach (string filename in pluginDescription.Files.Select(x => x.Name)) { + if (!FileLiesInDirectory(PluginDir, filename) || + !File.Exists(filename)) { + missing.Add(filename); + } + } + missingFiles = missing; + return missing.Count > 0; + } + + private static bool FileLiesInDirectory(string dir, string fileName) { + var basePath = Path.GetFullPath(dir); + return Path.GetFullPath(fileName).StartsWith(basePath); + } + + private static PluginDescription GetDeclaringPlugin(Type appType, IEnumerable plugins) { + return (from p in plugins + from asmLocation in p.AssemblyLocations + where Path.GetFullPath(asmLocation).Equals(Path.GetFullPath(appType.Assembly.Location), StringComparison.CurrentCultureIgnoreCase) + select p).Single(); + } + + // register assembly in the assembly cache for the ReflectionOnlyAssemblyResolveEvent + private void RegisterLoadedAssembly(Assembly asm) { + if (reflectionOnlyAssemblies.ContainsKey(asm.FullName) || reflectionOnlyAssemblies.ContainsKey(asm.GetName().Name)) { + throw new ArgumentException("An assembly with the name " + asm.GetName().Name + " has been registered already.", "asm"); + } else { + reflectionOnlyAssemblies.Add(asm.FullName, asm); + reflectionOnlyAssemblies.Add(asm.GetName().Name, asm); // add short name + } + } + + private void OnPluginLoaded(PluginInfrastructureEventArgs e) { + if (PluginLoaded != null) + PluginLoaded(this, e); + } + + /// + /// Initializes the life time service with an infinite lease time. + /// + /// null. + public override object InitializeLifetimeService() { + return null; + } + } +} diff --git a/HeuristicLab.Tests/Properties/AssemblyInfo.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/AssemblyInfo.cs.frame similarity index 66% rename from HeuristicLab.Tests/Properties/AssemblyInfo.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/AssemblyInfo.cs.frame index 73e7cc0f50..e521e1a3ab 100644 --- a/HeuristicLab.Tests/Properties/AssemblyInfo.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/AssemblyInfo.cs.frame @@ -1,55 +1,58 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("HeuristicLab.Tests")] -[assembly: AssemblyDescription("HeuristicLab unit tests.")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("HeuristicLab")] -[assembly: AssemblyCopyright("(c) HEAL")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fb91e607-de02-4a3f-a402-9376865a8155")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security; +using System; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HeuristicLab.PluginInfrastructure")] +[assembly: AssemblyDescription("PluginInfrastructure to load and manage HeuristicLab plugins")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HeuristicLab")] +[assembly: AssemblyCopyright("(c) 2019 HEAL")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: CLSCompliant(true)] +[assembly: InternalsVisibleTo("HeuristicLab.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100e3d38bc66a0dd8dd36f57285e34632ec04b3049866ab1e64cf230e95ffcbfbb90c437b4d11dfe74ba981f746274290bb03f3e636e139e685b501031dc6e0bc8409153f0c842721eb9e8e2a703c9e4d102283f3ddbdfab4078c08de51869715992a694d2f608d0fa865c9d17c06b8d6a9135004e982fd862cdb2277e4ad15a4a6")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7f3dedcf-24cc-4176-977a-0baad7f16573")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("3.3.0.0")] +[assembly: AssemblyFileVersion("3.3.16.$WCREV$")] diff --git a/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/Settings.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/Settings.Designer.cs index ec0663296e..77d88b9301 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Properties/Settings.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/Settings.Designer.cs @@ -1,122 +1,122 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace HeuristicLab.PluginInfrastructure.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] - public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("anonymous")] - public string UpdateLocationUserName { - get { - return ((string)(this["UpdateLocationUserName"])); - } - set { - this["UpdateLocationUserName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("GetTheLab!")] - public string UpdateLocationPassword { - get { - return ((string)(this["UpdateLocationPassword"])); - } - set { - this["UpdateLocationPassword"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool ShowPluginUploadControls { - get { - return ((bool)(this["ShowPluginUploadControls"])); - } - set { - this["ShowPluginUploadControls"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc")] - public string UpdateLocation { - get { - return ((string)(this["UpdateLocation"])); - } - set { - this["UpdateLocation"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/AdminService.svc")] - public string UpdateLocationAdministrationAddress { - get { - return ((string)(this["UpdateLocationAdministrationAddress"])); - } - set { - this["UpdateLocationAdministrationAddress"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Point StarterFormLocation { - get { - return ((global::System.Drawing.Point)(this["StarterFormLocation"])); - } - set { - this["StarterFormLocation"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Size StarterFormSize { - get { - return ((global::System.Drawing.Size)(this["StarterFormSize"])); - } - set { - this["StarterFormSize"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Normal")] - public global::System.Windows.Forms.FormWindowState StarterFormWindowState { - get { - return ((global::System.Windows.Forms.FormWindowState)(this["StarterFormWindowState"])); - } - set { - this["StarterFormWindowState"] = value; - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HeuristicLab.PluginInfrastructure.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")] + public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("anonymous")] + public string UpdateLocationUserName { + get { + return ((string)(this["UpdateLocationUserName"])); + } + set { + this["UpdateLocationUserName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("GetTheLab!")] + public string UpdateLocationPassword { + get { + return ((string)(this["UpdateLocationPassword"])); + } + set { + this["UpdateLocationPassword"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool ShowPluginUploadControls { + get { + return ((bool)(this["ShowPluginUploadControls"])); + } + set { + this["ShowPluginUploadControls"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc")] + public string UpdateLocation { + get { + return ((string)(this["UpdateLocation"])); + } + set { + this["UpdateLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/AdminService.svc")] + public string UpdateLocationAdministrationAddress { + get { + return ((string)(this["UpdateLocationAdministrationAddress"])); + } + set { + this["UpdateLocationAdministrationAddress"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Point StarterFormLocation { + get { + return ((global::System.Drawing.Point)(this["StarterFormLocation"])); + } + set { + this["StarterFormLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Size StarterFormSize { + get { + return ((global::System.Drawing.Size)(this["StarterFormSize"])); + } + set { + this["StarterFormSize"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState StarterFormWindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["StarterFormWindowState"])); + } + set { + this["StarterFormWindowState"] = value; + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/Settings.settings b/HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/Settings.settings new file mode 100644 index 0000000000..128bdbfa9a --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Properties/Settings.settings @@ -0,0 +1,30 @@ + + + + + + anonymous + + + GetTheLab! + + + False + + + http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc + + + http://services.heuristiclab.com/Deployment-3.3/AdminService.svc + + + 0, 0 + + + 0, 0 + + + Normal + + + \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Resources.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources.Designer.cs similarity index 96% rename from HeuristicLab.PluginInfrastructure/3.3/Resources.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Resources.Designer.cs index 4ff7530dd4..48d2379295 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Resources.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources.Designer.cs @@ -1,186 +1,186 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34014 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace HeuristicLab.PluginInfrastructure { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.PluginInfrastructure.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Add { - get { - object obj = ResourceManager.GetObject("Add", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap ArrowUp { - get { - object obj = ResourceManager.GetObject("ArrowUp", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Assembly { - get { - object obj = ResourceManager.GetObject("Assembly", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Document { - get { - object obj = ResourceManager.GetObject("Document", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Error { - get { - object obj = ResourceManager.GetObject("Error", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon ErrorIcon { - get { - object obj = ResourceManager.GetObject("ErrorIcon", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap File { - get { - object obj = ResourceManager.GetObject("File", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon HeuristicLab { - get { - object obj = ResourceManager.GetObject("HeuristicLab", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap HeuristicLabBanner { - get { - object obj = ResourceManager.GetObject("HeuristicLabBanner", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap HeuristicLabLogo { - get { - object obj = ResourceManager.GetObject("HeuristicLabLogo", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Install { - get { - object obj = ResourceManager.GetObject("Install", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Internet { - get { - object obj = ResourceManager.GetObject("Internet", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HeuristicLab.PluginInfrastructure { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.PluginInfrastructure.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Add { + get { + object obj = ResourceManager.GetObject("Add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ArrowUp { + get { + object obj = ResourceManager.GetObject("ArrowUp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Assembly { + get { + object obj = ResourceManager.GetObject("Assembly", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Document { + get { + object obj = ResourceManager.GetObject("Document", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Error { + get { + object obj = ResourceManager.GetObject("Error", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon ErrorIcon { + get { + object obj = ResourceManager.GetObject("ErrorIcon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap File { + get { + object obj = ResourceManager.GetObject("File", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon HeuristicLab { + get { + object obj = ResourceManager.GetObject("HeuristicLab", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap HeuristicLabBanner { + get { + object obj = ResourceManager.GetObject("HeuristicLabBanner", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap HeuristicLabLogo { + get { + object obj = ResourceManager.GetObject("HeuristicLabLogo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Install { + get { + object obj = ResourceManager.GetObject("Install", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Internet { + get { + object obj = ResourceManager.GetObject("Internet", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// /// Looks up a localized string similar to HeuristicLab is free software: you can redistribute it and/or modify ///it under the terms of the GNU General Public License as published by ///the Free Software Foundation, either version 3 of the License, or @@ -191,102 +191,102 @@ internal static System.Drawing.Bitmap Internet { ///MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ///GNU General Public License for more details. /// - ///You should have received a copy of t [rest of string was truncated]";. - /// - internal static string LicenseText { - get { - return ResourceManager.GetString("LicenseText", resourceCulture); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap NetworkConnections { - get { - object obj = ResourceManager.GetObject("NetworkConnections", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Plugin { - get { - object obj = ResourceManager.GetObject("Plugin", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap PublishToWeb { - get { - object obj = ResourceManager.GetObject("PublishToWeb", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Remove { - get { - object obj = ResourceManager.GetObject("Remove", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Repeat { - get { - object obj = ResourceManager.GetObject("Repeat", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon Setup_Install { - get { - object obj = ResourceManager.GetObject("Setup_Install", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap ShowDetails { - get { - object obj = ResourceManager.GetObject("ShowDetails", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap ShowIcons { - get { - object obj = ResourceManager.GetObject("ShowIcons", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon UpdateAvailable { - get { - object obj = ResourceManager.GetObject("UpdateAvailable", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - } -} + ///You should have received a copy of t [rest of string was truncated]";. + /// + internal static string LicenseText { + get { + return ResourceManager.GetString("LicenseText", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NetworkConnections { + get { + object obj = ResourceManager.GetObject("NetworkConnections", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Plugin { + get { + object obj = ResourceManager.GetObject("Plugin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap PublishToWeb { + get { + object obj = ResourceManager.GetObject("PublishToWeb", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Remove { + get { + object obj = ResourceManager.GetObject("Remove", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Repeat { + get { + object obj = ResourceManager.GetObject("Repeat", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Setup_Install { + get { + object obj = ResourceManager.GetObject("Setup_Install", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ShowDetails { + get { + object obj = ResourceManager.GetObject("ShowDetails", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ShowIcons { + get { + object obj = ResourceManager.GetObject("ShowIcons", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon UpdateAvailable { + get { + object obj = ResourceManager.GetObject("UpdateAvailable", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Resources.resx b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources.resx similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Resources.resx rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Resources.resx index 979ab98c6b..8a4a6bbcaf 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Resources.resx +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources.resx @@ -1,160 +1,160 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Objects_Assembly.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Objects_Document.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Annotations_Error.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\Error.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Objects_File.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\HeuristicLab.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\HeuristicLabBanner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\HeuristicLabLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Objects_Install.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Objects_Internet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Assembly.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Document.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Annotations_Error.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Error.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_File.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\HeuristicLab.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\HeuristicLabBanner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\HeuristicLabLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Install.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Internet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + HeuristicLab is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -166,34 +166,34 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with HeuristicLab. If not, see http://www.gnu.org/licenses. - Displayed in about dialog - - - Resources\VS2008ImageLibrary_Objects_NetworkConnections.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Objects_Plugin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Actions_PublishToWebHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_CommonElements_Actions_Remove.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\VS2008ImageLibrary_Actions_RepeatHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\Setup_Install.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\show_details.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\show_icons.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - Resources\UpdateAvailable.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - +along with HeuristicLab. If not, see http://www.gnu.org/licenses. + Displayed in about dialog + + + Resources\VS2008ImageLibrary_Objects_NetworkConnections.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Plugin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Actions_PublishToWebHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_CommonElements_Actions_Remove.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Actions_RepeatHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Setup_Install.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\show_details.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\show_icons.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UpdateAvailable.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/Error.ico b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/Error.ico new file mode 100644 index 0000000000..4db814c65d Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/Error.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLab.ico b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLab.ico new file mode 100644 index 0000000000..6c6f943b9d Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLab.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLabBanner.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLabBanner.png new file mode 100644 index 0000000000..f183baf1d0 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLabBanner.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLabLogo.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLabLogo.png new file mode 100644 index 0000000000..65f387b225 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/HeuristicLabLogo.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/Setup_Install.ico b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/Setup_Install.ico new file mode 100644 index 0000000000..09b98f81c9 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/Setup_Install.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/UpdateAvailable.ico b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/UpdateAvailable.ico new file mode 100644 index 0000000000..c7dc05d696 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/UpdateAvailable.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Actions_PublishToWebHS.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Actions_PublishToWebHS.png new file mode 100644 index 0000000000..aaf48657e7 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Actions_PublishToWebHS.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Actions_RepeatHS.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Actions_RepeatHS.png new file mode 100644 index 0000000000..1b6573d213 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Actions_RepeatHS.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Annotations_Error.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Annotations_Error.png new file mode 100644 index 0000000000..243ddb2aee Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Annotations_Error.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Add.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Add.png new file mode 100644 index 0000000000..2ccf605a20 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Add.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Remove.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Remove.png new file mode 100644 index 0000000000..402561a7b2 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Remove.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png new file mode 100644 index 0000000000..a12e825131 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Assembly.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Assembly.png new file mode 100644 index 0000000000..3309df0b27 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Assembly.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Document.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Document.png new file mode 100644 index 0000000000..0da460b272 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Document.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_File.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_File.png new file mode 100644 index 0000000000..d287d20517 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_File.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Install.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Install.png new file mode 100644 index 0000000000..175de0d1d9 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Install.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Internet.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Internet.png new file mode 100644 index 0000000000..f96d8a4380 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Internet.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_NetworkConnections.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_NetworkConnections.png new file mode 100644 index 0000000000..5f5563b3a6 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_NetworkConnections.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Plugin.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Plugin.png new file mode 100644 index 0000000000..70740ec7d2 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/VS2008ImageLibrary_Objects_Plugin.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/show_details.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/show_details.png new file mode 100644 index 0000000000..a7b68e598f Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/show_details.png differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/show_icons.png b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/show_icons.png new file mode 100644 index 0000000000..8d69282639 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/Resources/show_icons.png differ diff --git a/HeuristicLab.PluginInfrastructure/3.3/SandboxApplicationManager.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/SandboxApplicationManager.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/SandboxApplicationManager.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/SandboxApplicationManager.cs index 9bb66e1739..02e7136349 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/SandboxApplicationManager.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/SandboxApplicationManager.cs @@ -1,366 +1,366 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure { - - /// - /// The SandboxApplicationManager provides properties to retrieve the list of available plugins and applications. - /// It also provides methods for type discovery and instantiation for types declared in plugins. - /// The SandboxApplicationManager is used in sandboxed Application Domains where permissions are restricted and - /// only partially-trusted code can be executed. - /// - internal class SandboxApplicationManager : MarshalByRefObject, IApplicationManager { - /// - /// Fired when a plugin is loaded. - /// - internal event EventHandler PluginLoaded; - /// - /// Fired when a plugin is unloaded (when the application terminates). - /// - internal event EventHandler PluginUnloaded; - - // cache for the AssemblyResolveEvent - // which must be handled when assemblies are loaded dynamically after the application start - protected internal Dictionary loadedAssemblies; - - private List loadedPlugins; - - private List plugins; - /// - /// Gets all plugins. - /// - public IEnumerable Plugins { - get { return plugins.Cast(); } - } - - private List applications; - /// - /// Gets all installed applications. - /// - public IEnumerable Applications { - get { return applications.Cast(); } - } - - internal SandboxApplicationManager() - : base() { - loadedAssemblies = new Dictionary(); - loadedPlugins = new List(); - - AppDomain.CurrentDomain.DomainUnload += CurrentDomain_DomainUnload; - } - - /// - /// The sandbox application manager can also be used to load plugins even when no actual application is executed. - /// In such cases, plugins that have been loaded also have to be unloaded again before the application domain is unloaded. - /// - private void CurrentDomain_DomainUnload(object sender, EventArgs e) { - UnloadPlugins(); - } - - /// - /// Prepares the application domain for the execution of an HL application. - /// Pre-loads all . - /// - /// Enumerable of available HL applications. - /// Enumerable of plugins that should be pre-loaded. - internal void PrepareApplicationDomain(IEnumerable apps, IEnumerable plugins) { - this.plugins = new List(plugins); - this.applications = new List(apps); - ApplicationManager.RegisterApplicationManager(this); - LoadPlugins(plugins); - } - - /// - /// Loads the into this application domain. - /// - /// Enumerable of plugins that should be loaded. - private void LoadPlugins(IEnumerable plugins) { - // load all loadable plugins (all dependencies available) into the execution context - foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(plugins.Where(x => x.PluginState != PluginState.Disabled))) { - foreach (string fileName in desc.AssemblyLocations) { - // load assembly reflection only first to get the full assembly name - var reflectionOnlyAssembly = Assembly.ReflectionOnlyLoadFrom(fileName); - // load the assembly into execution context using full assembly name - var asm = Assembly.Load(reflectionOnlyAssembly.FullName); - RegisterLoadedAssembly(asm); - // instantiate and load all plugins in this assembly - foreach (var plugin in GetInstances(asm)) { - plugin.OnLoad(); - loadedPlugins.Add(plugin); - } - } - OnPluginLoaded(new PluginInfrastructureEventArgs(desc)); - desc.Load(); - } - } - - /// - /// Unloads the that were loaded into this application domain. - /// - private void UnloadPlugins() { - // unload plugins in reverse order - foreach (var plugin in loadedPlugins.Reverse()) { - plugin.OnUnload(); - } - loadedPlugins.Clear(); // remove all plugins once unloaded - - foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(plugins.Where(x => x.PluginState != PluginState.Disabled))) { - desc.Unload(); - OnPluginUnloaded(new PluginInfrastructureEventArgs(desc)); - } - plugins.Clear(); // remove all plugin descriptions once unloaded - } - - /// - /// Runs the application declared in . - /// This is a synchronous call. When the application is terminated all plugins are unloaded. - /// - /// Description of the application to run - internal void Run(ApplicationDescription appInfo, ICommandLineArgument[] args) { - IApplication runnablePlugin = (IApplication)Activator.CreateInstance(appInfo.DeclaringAssemblyName, appInfo.DeclaringTypeName).Unwrap(); - try { - runnablePlugin.Run(args); - } finally { - UnloadPlugins(); - } - } - - // register assembly in the assembly cache for the AssemblyResolveEvent - private void RegisterLoadedAssembly(Assembly asm) { - if (loadedAssemblies.ContainsKey(asm.FullName) || loadedAssemblies.ContainsKey(asm.GetName().Name)) { - throw new ArgumentException("An assembly with the name " + asm.GetName().Name + " has been registered already.", "asm"); - } - loadedAssemblies.Add(asm.FullName, asm); - loadedAssemblies.Add(asm.GetName().Name, asm); // add short name - } - - /// - /// Creates an instance of all types that are subtypes or the same type of the specified type and declared in - /// - /// Most general type. - /// Enumerable of the created instances. - internal static IEnumerable GetInstances(IPluginDescription plugin) where T : class { - List instances = new List(); - foreach (Type t in GetTypes(typeof(T), plugin, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { - T instance = null; - try { instance = (T)Activator.CreateInstance(t); } - catch { } - if (instance != null) instances.Add(instance); - } - return instances; - } - /// - /// Creates an instance of all types declared in assembly that are subtypes or the same type of the specified . - /// - /// Most general type. - /// Declaring assembly. - /// Enumerable of the created instances. - private static IEnumerable GetInstances(Assembly asm) where T : class { - List instances = new List(); - foreach (Type t in GetTypes(typeof(T), asm, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { - T instance = null; - try { instance = (T)Activator.CreateInstance(t); } - catch { } - if (instance != null) instances.Add(instance); - } - return instances; - } - /// - /// Creates an instance of all types that are subtypes or the same type of the specified type - /// - /// Most general type. - /// Enumerable of the created instances. - internal static IEnumerable GetInstances() where T : class { - return from i in GetInstances(typeof(T)) - select (T)i; - } - - /// - /// Creates an instance of all types that are subtypes or the same type of the specified type - /// - /// Most general type. - /// Enumerable of the created instances. - internal static IEnumerable GetInstances(Type type) { - List instances = new List(); - foreach (Type t in GetTypes(type, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { - object instance = null; - try { instance = Activator.CreateInstance(t); } - catch { } - if (instance != null) instances.Add(instance); - } - return instances; - } - - /// - /// Finds all types that are subtypes or equal to the specified type. - /// - /// Most general type for which to find matching types. - /// Return only types that are instantiable - /// Specifies if generic type definitions shall be included - /// (interfaces, abstract classes... are not returned) - /// Enumerable of the discovered types. - internal static IEnumerable GetTypes(Type type, bool onlyInstantiable, bool includeGenericTypeDefinitions) { - return from asm in AppDomain.CurrentDomain.GetAssemblies() - where !asm.IsDynamic && !string.IsNullOrEmpty(asm.Location) - from t in GetTypes(type, asm, onlyInstantiable, includeGenericTypeDefinitions) - select t; - } - - internal static IEnumerable GetTypes(IEnumerable types, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { - IEnumerable result = GetTypes(types.First(), onlyInstantiable, includeGenericTypeDefinitions); - foreach (Type type in types.Skip(1)) { - IEnumerable discoveredTypes = GetTypes(type, onlyInstantiable, includeGenericTypeDefinitions); - if (assignableToAllTypes) result = result.Intersect(discoveredTypes); - else result = result.Union(discoveredTypes); - } - return result; - } - - /// - /// Finds all types that are subtypes or equal to the specified type if they are part of the given - /// . - /// - /// Most general type for which to find matching types. - /// The plugin the subtypes must be part of. - /// Return only types that are instantiable - /// Specifies if generic type definitions shall be included - /// (interfaces, abstract classes... are not returned) - /// Enumerable of the discovered types. - internal static IEnumerable GetTypes(Type type, IPluginDescription pluginDescription, bool onlyInstantiable, bool includeGenericTypeDefinitions) { - PluginDescription pluginDesc = (PluginDescription)pluginDescription; - return from asm in AppDomain.CurrentDomain.GetAssemblies() - where !asm.IsDynamic && !string.IsNullOrEmpty(asm.Location) - where pluginDesc.AssemblyLocations.Any(location => location.Equals(Path.GetFullPath(asm.Location), StringComparison.CurrentCultureIgnoreCase)) - from t in GetTypes(type, asm, onlyInstantiable, includeGenericTypeDefinitions) - select t; - } - - internal static IEnumerable GetTypes(IEnumerable types, IPluginDescription pluginDescription, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { - IEnumerable result = GetTypes(types.First(), pluginDescription, onlyInstantiable, includeGenericTypeDefinitions); - foreach (Type type in types.Skip(1)) { - IEnumerable discoveredTypes = GetTypes(type, pluginDescription, onlyInstantiable, includeGenericTypeDefinitions); - if (assignableToAllTypes) result = result.Intersect(discoveredTypes); - else result = result.Union(discoveredTypes); - } - return result; - } - - /// - /// Gets types that are assignable (same of subtype) to the specified type only from the given assembly. - /// - /// Most general type we want to find. - /// Assembly that should be searched for types. - /// Return only types that are instantiable - /// (interfaces, abstract classes... are not returned) - /// Specifies if generic type definitions shall be included - /// Enumerable of the discovered types. - internal static IEnumerable GetTypes(Type type, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions) { - var matchingTypes = from assemblyType in assembly.GetTypes() - let t = assemblyType.BuildType(type) - where t != null - where t.IsSubTypeOf(type) - where !t.IsNonDiscoverableType() - where onlyInstantiable == false || (!t.IsAbstract && !t.IsInterface && !t.HasElementType) - where includeGenericTypeDefinitions || !t.IsGenericTypeDefinition - select t; - - return matchingTypes; - } - - /// - /// Discovers all types implementing or inheriting all or any type in (directly and indirectly) that are declared in the assembly . - /// - /// The types to discover. - /// The declaring assembly. - /// Return only types that are instantiable (instance, abstract... are not returned) - /// /// Specifies if discovered types must implement or inherit all given . - /// An enumerable of discovered types. - internal static IEnumerable GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true) { - IEnumerable result = GetTypes(types.First(), assembly, onlyInstantiable, includeGenericTypeDefinitions); - foreach (Type type in types.Skip(1)) { - IEnumerable discoveredTypes = GetTypes(type, assembly, onlyInstantiable, includeGenericTypeDefinitions); - if (assignableToAllTypes) result = result.Intersect(discoveredTypes); - else result = result.Union(discoveredTypes); - } - return result; - } - - private void OnPluginLoaded(PluginInfrastructureEventArgs e) { - if (PluginLoaded != null) PluginLoaded(this, e); - } - - private void OnPluginUnloaded(PluginInfrastructureEventArgs e) { - if (PluginUnloaded != null) PluginUnloaded(this, e); - } - - #region IApplicationManager Members - - IEnumerable IApplicationManager.GetInstances() { - return GetInstances(); - } - - IEnumerable IApplicationManager.GetInstances(Type type) { - return GetInstances(type); - } - - IEnumerable IApplicationManager.GetTypes(Type type, bool onlyInstantiable, bool includeGenericTypeDefinitions) { - return GetTypes(type, onlyInstantiable, includeGenericTypeDefinitions); - } - IEnumerable IApplicationManager.GetTypes(IEnumerable types, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { - return GetTypes(types, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); - } - - IEnumerable IApplicationManager.GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable, bool includeGenericTypeDefinitions) { - return GetTypes(type, plugin, onlyInstantiable, includeGenericTypeDefinitions); - } - IEnumerable IApplicationManager.GetTypes(IEnumerable types, IPluginDescription plugin, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { - return GetTypes(types, plugin, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); - } - - IEnumerable IApplicationManager.GetTypes(Type type, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions) { - return GetTypes(type, assembly, onlyInstantiable, includeGenericTypeDefinitions); - } - IEnumerable IApplicationManager.GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { - return GetTypes(types, assembly, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); - } - - /// - /// Finds the plugin that declares the type. - /// - /// The type of interest. - /// The description of the plugin that declares the given type or null if the type has not been declared by a known plugin. - public IPluginDescription GetDeclaringPlugin(Type type) { - if (type == null) throw new ArgumentNullException("type"); - foreach (PluginDescription info in Plugins) { - if (info.AssemblyLocations.Contains(Path.GetFullPath(type.Assembly.Location))) return info; - } - return null; - } - #endregion - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure { + + /// + /// The SandboxApplicationManager provides properties to retrieve the list of available plugins and applications. + /// It also provides methods for type discovery and instantiation for types declared in plugins. + /// The SandboxApplicationManager is used in sandboxed Application Domains where permissions are restricted and + /// only partially-trusted code can be executed. + /// + internal class SandboxApplicationManager : MarshalByRefObject, IApplicationManager { + /// + /// Fired when a plugin is loaded. + /// + internal event EventHandler PluginLoaded; + /// + /// Fired when a plugin is unloaded (when the application terminates). + /// + internal event EventHandler PluginUnloaded; + + // cache for the AssemblyResolveEvent + // which must be handled when assemblies are loaded dynamically after the application start + protected internal Dictionary loadedAssemblies; + + private List loadedPlugins; + + private List plugins; + /// + /// Gets all plugins. + /// + public IEnumerable Plugins { + get { return plugins.Cast(); } + } + + private List applications; + /// + /// Gets all installed applications. + /// + public IEnumerable Applications { + get { return applications.Cast(); } + } + + internal SandboxApplicationManager() + : base() { + loadedAssemblies = new Dictionary(); + loadedPlugins = new List(); + + AppDomain.CurrentDomain.DomainUnload += CurrentDomain_DomainUnload; + } + + /// + /// The sandbox application manager can also be used to load plugins even when no actual application is executed. + /// In such cases, plugins that have been loaded also have to be unloaded again before the application domain is unloaded. + /// + private void CurrentDomain_DomainUnload(object sender, EventArgs e) { + UnloadPlugins(); + } + + /// + /// Prepares the application domain for the execution of an HL application. + /// Pre-loads all . + /// + /// Enumerable of available HL applications. + /// Enumerable of plugins that should be pre-loaded. + internal void PrepareApplicationDomain(IEnumerable apps, IEnumerable plugins) { + this.plugins = new List(plugins); + this.applications = new List(apps); + ApplicationManager.RegisterApplicationManager(this); + LoadPlugins(plugins); + } + + /// + /// Loads the into this application domain. + /// + /// Enumerable of plugins that should be loaded. + private void LoadPlugins(IEnumerable plugins) { + // load all loadable plugins (all dependencies available) into the execution context + foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(plugins.Where(x => x.PluginState != PluginState.Disabled))) { + foreach (string fileName in desc.AssemblyLocations) { + // load assembly reflection only first to get the full assembly name + var reflectionOnlyAssembly = Assembly.ReflectionOnlyLoadFrom(fileName); + // load the assembly into execution context using full assembly name + var asm = Assembly.Load(reflectionOnlyAssembly.FullName); + RegisterLoadedAssembly(asm); + // instantiate and load all plugins in this assembly + foreach (var plugin in GetInstances(asm)) { + plugin.OnLoad(); + loadedPlugins.Add(plugin); + } + } + OnPluginLoaded(new PluginInfrastructureEventArgs(desc)); + desc.Load(); + } + } + + /// + /// Unloads the that were loaded into this application domain. + /// + private void UnloadPlugins() { + // unload plugins in reverse order + foreach (var plugin in loadedPlugins.Reverse()) { + plugin.OnUnload(); + } + loadedPlugins.Clear(); // remove all plugins once unloaded + + foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(plugins.Where(x => x.PluginState != PluginState.Disabled))) { + desc.Unload(); + OnPluginUnloaded(new PluginInfrastructureEventArgs(desc)); + } + plugins.Clear(); // remove all plugin descriptions once unloaded + } + + /// + /// Runs the application declared in . + /// This is a synchronous call. When the application is terminated all plugins are unloaded. + /// + /// Description of the application to run + internal void Run(ApplicationDescription appInfo, ICommandLineArgument[] args) { + IApplication runnablePlugin = (IApplication)Activator.CreateInstance(appInfo.DeclaringAssemblyName, appInfo.DeclaringTypeName).Unwrap(); + try { + runnablePlugin.Run(args); + } finally { + UnloadPlugins(); + } + } + + // register assembly in the assembly cache for the AssemblyResolveEvent + private void RegisterLoadedAssembly(Assembly asm) { + if (loadedAssemblies.ContainsKey(asm.FullName) || loadedAssemblies.ContainsKey(asm.GetName().Name)) { + throw new ArgumentException("An assembly with the name " + asm.GetName().Name + " has been registered already.", "asm"); + } + loadedAssemblies.Add(asm.FullName, asm); + loadedAssemblies.Add(asm.GetName().Name, asm); // add short name + } + + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type and declared in + /// + /// Most general type. + /// Enumerable of the created instances. + internal static IEnumerable GetInstances(IPluginDescription plugin) where T : class { + List instances = new List(); + foreach (Type t in GetTypes(typeof(T), plugin, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { + T instance = null; + try { instance = (T)Activator.CreateInstance(t); } + catch { } + if (instance != null) instances.Add(instance); + } + return instances; + } + /// + /// Creates an instance of all types declared in assembly that are subtypes or the same type of the specified . + /// + /// Most general type. + /// Declaring assembly. + /// Enumerable of the created instances. + private static IEnumerable GetInstances(Assembly asm) where T : class { + List instances = new List(); + foreach (Type t in GetTypes(typeof(T), asm, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { + T instance = null; + try { instance = (T)Activator.CreateInstance(t); } + catch { } + if (instance != null) instances.Add(instance); + } + return instances; + } + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type + /// + /// Most general type. + /// Enumerable of the created instances. + internal static IEnumerable GetInstances() where T : class { + return from i in GetInstances(typeof(T)) + select (T)i; + } + + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type + /// + /// Most general type. + /// Enumerable of the created instances. + internal static IEnumerable GetInstances(Type type) { + List instances = new List(); + foreach (Type t in GetTypes(type, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { + object instance = null; + try { instance = Activator.CreateInstance(t); } + catch { } + if (instance != null) instances.Add(instance); + } + return instances; + } + + /// + /// Finds all types that are subtypes or equal to the specified type. + /// + /// Most general type for which to find matching types. + /// Return only types that are instantiable + /// Specifies if generic type definitions shall be included + /// (interfaces, abstract classes... are not returned) + /// Enumerable of the discovered types. + internal static IEnumerable GetTypes(Type type, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return from asm in AppDomain.CurrentDomain.GetAssemblies() + where !asm.IsDynamic && !string.IsNullOrEmpty(asm.Location) + from t in GetTypes(type, asm, onlyInstantiable, includeGenericTypeDefinitions) + select t; + } + + internal static IEnumerable GetTypes(IEnumerable types, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + IEnumerable result = GetTypes(types.First(), onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + /// + /// Finds all types that are subtypes or equal to the specified type if they are part of the given + /// . + /// + /// Most general type for which to find matching types. + /// The plugin the subtypes must be part of. + /// Return only types that are instantiable + /// Specifies if generic type definitions shall be included + /// (interfaces, abstract classes... are not returned) + /// Enumerable of the discovered types. + internal static IEnumerable GetTypes(Type type, IPluginDescription pluginDescription, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + PluginDescription pluginDesc = (PluginDescription)pluginDescription; + return from asm in AppDomain.CurrentDomain.GetAssemblies() + where !asm.IsDynamic && !string.IsNullOrEmpty(asm.Location) + where pluginDesc.AssemblyLocations.Any(location => location.Equals(Path.GetFullPath(asm.Location), StringComparison.CurrentCultureIgnoreCase)) + from t in GetTypes(type, asm, onlyInstantiable, includeGenericTypeDefinitions) + select t; + } + + internal static IEnumerable GetTypes(IEnumerable types, IPluginDescription pluginDescription, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + IEnumerable result = GetTypes(types.First(), pluginDescription, onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, pluginDescription, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + /// + /// Gets types that are assignable (same of subtype) to the specified type only from the given assembly. + /// + /// Most general type we want to find. + /// Assembly that should be searched for types. + /// Return only types that are instantiable + /// (interfaces, abstract classes... are not returned) + /// Specifies if generic type definitions shall be included + /// Enumerable of the discovered types. + internal static IEnumerable GetTypes(Type type, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + var matchingTypes = from assemblyType in assembly.GetTypes() + let t = assemblyType.BuildType(type) + where t != null + where t.IsSubTypeOf(type) + where !t.IsNonDiscoverableType() + where onlyInstantiable == false || (!t.IsAbstract && !t.IsInterface && !t.HasElementType) + where includeGenericTypeDefinitions || !t.IsGenericTypeDefinition + select t; + + return matchingTypes; + } + + /// + /// Discovers all types implementing or inheriting all or any type in (directly and indirectly) that are declared in the assembly . + /// + /// The types to discover. + /// The declaring assembly. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// /// Specifies if discovered types must implement or inherit all given . + /// An enumerable of discovered types. + internal static IEnumerable GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true) { + IEnumerable result = GetTypes(types.First(), assembly, onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, assembly, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + private void OnPluginLoaded(PluginInfrastructureEventArgs e) { + if (PluginLoaded != null) PluginLoaded(this, e); + } + + private void OnPluginUnloaded(PluginInfrastructureEventArgs e) { + if (PluginUnloaded != null) PluginUnloaded(this, e); + } + + #region IApplicationManager Members + + IEnumerable IApplicationManager.GetInstances() { + return GetInstances(); + } + + IEnumerable IApplicationManager.GetInstances(Type type) { + return GetInstances(type); + } + + IEnumerable IApplicationManager.GetTypes(Type type, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return GetTypes(type, onlyInstantiable, includeGenericTypeDefinitions); + } + IEnumerable IApplicationManager.GetTypes(IEnumerable types, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + return GetTypes(types, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); + } + + IEnumerable IApplicationManager.GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return GetTypes(type, plugin, onlyInstantiable, includeGenericTypeDefinitions); + } + IEnumerable IApplicationManager.GetTypes(IEnumerable types, IPluginDescription plugin, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + return GetTypes(types, plugin, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); + } + + IEnumerable IApplicationManager.GetTypes(Type type, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return GetTypes(type, assembly, onlyInstantiable, includeGenericTypeDefinitions); + } + IEnumerable IApplicationManager.GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + return GetTypes(types, assembly, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); + } + + /// + /// Finds the plugin that declares the type. + /// + /// The type of interest. + /// The description of the plugin that declares the given type or null if the type has not been declared by a known plugin. + public IPluginDescription GetDeclaringPlugin(Type type) { + if (type == null) throw new ArgumentNullException("type"); + foreach (PluginDescription info in Plugins) { + if (info.AssemblyLocations.Contains(Path.GetFullPath(type.Assembly.Location))) return info; + } + return null; + } + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Sandboxing/SandboxManager.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Sandboxing/SandboxManager.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Sandboxing/SandboxManager.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Sandboxing/SandboxManager.cs index 2450b4a30a..36f55fcac7 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Sandboxing/SandboxManager.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Sandboxing/SandboxManager.cs @@ -1,53 +1,53 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Reflection; -using System.Security; -using System.Security.Permissions; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Sandboxing { - public static class SandboxManager { - /// - /// Returns a new AppDomain with loaded assemblies/plugins from applicationBase - /// - public static AppDomain CreateAndInitSandbox(string appDomainName, string applicationBase, string configFilePath) { - PermissionSet pSet; - pSet = new PermissionSet(PermissionState.Unrestricted); - - AppDomainSetup setup = new AppDomainSetup(); - setup.PrivateBinPath = applicationBase; - setup.ApplicationBase = applicationBase; - setup.ConfigurationFile = configFilePath; - - Type applicationManagerType = typeof(DefaultApplicationManager); - AppDomain applicationDomain = AppDomain.CreateDomain(appDomainName, null, setup, pSet, null); - DefaultApplicationManager applicationManager = (DefaultApplicationManager)applicationDomain.CreateInstanceAndUnwrap(applicationManagerType.Assembly.FullName, applicationManagerType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); - - PluginManager pm = new PluginManager(applicationBase); - pm.DiscoverAndCheckPlugins(); - applicationManager.PrepareApplicationDomain(pm.Applications, pm.Plugins); - - return applicationDomain; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Reflection; +using System.Security; +using System.Security.Permissions; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Sandboxing { + public static class SandboxManager { + /// + /// Returns a new AppDomain with loaded assemblies/plugins from applicationBase + /// + public static AppDomain CreateAndInitSandbox(string appDomainName, string applicationBase, string configFilePath) { + PermissionSet pSet; + pSet = new PermissionSet(PermissionState.Unrestricted); + + AppDomainSetup setup = new AppDomainSetup(); + setup.PrivateBinPath = applicationBase; + setup.ApplicationBase = applicationBase; + setup.ConfigurationFile = configFilePath; + + Type applicationManagerType = typeof(DefaultApplicationManager); + AppDomain applicationDomain = AppDomain.CreateDomain(appDomainName, null, setup, pSet, null); + DefaultApplicationManager applicationManager = (DefaultApplicationManager)applicationDomain.CreateInstanceAndUnwrap(applicationManagerType.Assembly.FullName, applicationManagerType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); + + PluginManager pm = new PluginManager(applicationBase); + pm.DiscoverAndCheckPlugins(); + applicationManager.PrepareApplicationDomain(pm.Applications, pm.Plugins); + + return applicationDomain; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/AboutDialog.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/AboutDialog.Designer.cs index 06c01864f5..d217becebe 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/AboutDialog.Designer.cs @@ -1,331 +1,331 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure.Starter { - partial class AboutDialog { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.okButton = new System.Windows.Forms.Button(); - this.pluginListView = new System.Windows.Forms.ListView(); - this.pluginNameColumnHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginVersionColumnHeader = new System.Windows.Forms.ColumnHeader(); - this.pluginDescriptionColumnHeader = new System.Windows.Forms.ColumnHeader(); - this.imageList = new System.Windows.Forms.ImageList(this.components); - this.pictureBox = new System.Windows.Forms.PictureBox(); - this.label = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.productTextBox = new System.Windows.Forms.TextBox(); - this.versionTextBox = new System.Windows.Forms.TextBox(); - this.copyrightTextBox = new System.Windows.Forms.TextBox(); - this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); - this.licenseTextBox = new System.Windows.Forms.RichTextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label4 = new System.Windows.Forms.Label(); - this.webLinkLabel = new System.Windows.Forms.LinkLabel(); - this.mailLinkLabel = new System.Windows.Forms.LinkLabel(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); - this.pluginsGroupBox.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // okButton - // - this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.okButton.Location = new System.Drawing.Point(538, 13); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(75, 23); - this.okButton.TabIndex = 0; - this.okButton.Text = "&Close"; - this.okButton.UseVisualStyleBackColor = true; - this.okButton.Click += new System.EventHandler(this.okButton_Click); - // - // pluginListView - // - this.pluginListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pluginListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.pluginNameColumnHeader, - this.pluginVersionColumnHeader, - this.pluginDescriptionColumnHeader}); - this.pluginListView.Location = new System.Drawing.Point(6, 19); - this.pluginListView.Name = "pluginListView"; - this.pluginListView.ShowGroups = false; - this.pluginListView.Size = new System.Drawing.Size(589, 201); - this.pluginListView.SmallImageList = this.imageList; - this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending; - this.pluginListView.TabIndex = 0; - this.pluginListView.UseCompatibleStateImageBehavior = false; - this.pluginListView.View = System.Windows.Forms.View.Details; - this.pluginListView.ItemActivate += new System.EventHandler(this.pluginListView_ItemActivate); - // - // pluginNameColumnHeader - // - this.pluginNameColumnHeader.Text = "Name"; - // - // pluginVersionColumnHeader - // - this.pluginVersionColumnHeader.Text = "Version"; - // - // pluginDescriptionColumnHeader - // - this.pluginDescriptionColumnHeader.Text = "Description"; - // - // imageList - // - this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.imageList.ImageSize = new System.Drawing.Size(16, 16); - this.imageList.TransparentColor = System.Drawing.Color.Transparent; - // - // pictureBox - // - this.pictureBox.Location = new System.Drawing.Point(12, 12); - this.pictureBox.Name = "pictureBox"; - this.pictureBox.Size = new System.Drawing.Size(160, 180); - this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pictureBox.TabIndex = 2; - this.pictureBox.TabStop = false; - // - // label - // - this.label.AutoSize = true; - this.label.Location = new System.Drawing.Point(183, 12); - this.label.Name = "label"; - this.label.Size = new System.Drawing.Size(47, 13); - this.label.TabIndex = 1; - this.label.Text = "Product:"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(183, 31); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(45, 13); - this.label1.TabIndex = 3; - this.label1.Text = "Version:"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(183, 50); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(54, 13); - this.label3.TabIndex = 5; - this.label3.Text = "Copyright:"; - // - // productTextBox - // - this.productTextBox.BackColor = System.Drawing.SystemColors.HighlightText; - this.productTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.productTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.productTextBox.Location = new System.Drawing.Point(258, 12); - this.productTextBox.Name = "productTextBox"; - this.productTextBox.ReadOnly = true; - this.productTextBox.Size = new System.Drawing.Size(355, 13); - this.productTextBox.TabIndex = 2; - this.productTextBox.Text = "HeuristicLab"; - // - // versionTextBox - // - this.versionTextBox.BackColor = System.Drawing.SystemColors.HighlightText; - this.versionTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.versionTextBox.Location = new System.Drawing.Point(258, 31); - this.versionTextBox.Name = "versionTextBox"; - this.versionTextBox.ReadOnly = true; - this.versionTextBox.Size = new System.Drawing.Size(355, 13); - this.versionTextBox.TabIndex = 4; - this.versionTextBox.Text = "1.0"; - // - // copyrightTextBox - // - this.copyrightTextBox.BackColor = System.Drawing.SystemColors.HighlightText; - this.copyrightTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.copyrightTextBox.Location = new System.Drawing.Point(258, 50); - this.copyrightTextBox.Name = "copyrightTextBox"; - this.copyrightTextBox.ReadOnly = true; - this.copyrightTextBox.Size = new System.Drawing.Size(355, 13); - this.copyrightTextBox.TabIndex = 6; - this.copyrightTextBox.Text = "(C)"; - // - // pluginsGroupBox - // - this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pluginsGroupBox.Controls.Add(this.pluginListView); - this.pluginsGroupBox.Location = new System.Drawing.Point(12, 306); - this.pluginsGroupBox.Name = "pluginsGroupBox"; - this.pluginsGroupBox.Size = new System.Drawing.Size(601, 226); - this.pluginsGroupBox.TabIndex = 12; - this.pluginsGroupBox.TabStop = false; - this.pluginsGroupBox.Text = "Plugins"; - // - // licenseTextBox - // - this.licenseTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.licenseTextBox.BackColor = System.Drawing.SystemColors.HighlightText; - this.licenseTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.licenseTextBox.Location = new System.Drawing.Point(186, 115); - this.licenseTextBox.Name = "licenseTextBox"; - this.licenseTextBox.ReadOnly = true; - this.licenseTextBox.Size = new System.Drawing.Size(427, 185); - this.licenseTextBox.TabIndex = 11; - this.licenseTextBox.Text = "License Text"; - this.licenseTextBox.WordWrap = false; - this.licenseTextBox.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.licenseTextBox_LinkClicked); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(183, 69); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(49, 13); - this.label2.TabIndex = 7; - this.label2.Text = "Website:"; - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.BackColor = System.Drawing.SystemColors.Control; - this.panel1.Controls.Add(this.okButton); - this.panel1.Location = new System.Drawing.Point(0, 538); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(626, 48); - this.panel1.TabIndex = 0; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(183, 88); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(47, 13); - this.label4.TabIndex = 9; - this.label4.Text = "Contact:"; - // - // webLinkLabel - // - this.webLinkLabel.AutoSize = true; - this.webLinkLabel.Location = new System.Drawing.Point(255, 69); - this.webLinkLabel.Name = "webLinkLabel"; - this.webLinkLabel.Size = new System.Drawing.Size(135, 13); - this.webLinkLabel.TabIndex = 8; - this.webLinkLabel.TabStop = true; - this.webLinkLabel.Text = "http://dev.heuristiclab.com"; - this.webLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.webLinkLabel_LinkClicked); - // - // mailLinkLabel - // - this.mailLinkLabel.AutoSize = true; - this.mailLinkLabel.Location = new System.Drawing.Point(255, 88); - this.mailLinkLabel.Name = "mailLinkLabel"; - this.mailLinkLabel.Size = new System.Drawing.Size(129, 13); - this.mailLinkLabel.TabIndex = 10; - this.mailLinkLabel.TabStop = true; - this.mailLinkLabel.Text = "support@heuristiclab.com"; - this.mailLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.mailLinkLabel_LinkClicked); - // - // AboutDialog - // - this.AcceptButton = this.okButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.BackColor = System.Drawing.SystemColors.Window; - this.CancelButton = this.okButton; - this.ClientSize = new System.Drawing.Size(625, 586); - this.Controls.Add(this.mailLinkLabel); - this.Controls.Add(this.webLinkLabel); - this.Controls.Add(this.label4); - this.Controls.Add(this.panel1); - this.Controls.Add(this.label2); - this.Controls.Add(this.licenseTextBox); - this.Controls.Add(this.pluginsGroupBox); - this.Controls.Add(this.copyrightTextBox); - this.Controls.Add(this.versionTextBox); - this.Controls.Add(this.productTextBox); - this.Controls.Add(this.label3); - this.Controls.Add(this.label1); - this.Controls.Add(this.label); - this.Controls.Add(this.pictureBox); - this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AboutDialog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "About HeuristicLab"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); - this.pluginsGroupBox.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button okButton; - private System.Windows.Forms.ListView pluginListView; - private System.Windows.Forms.ImageList imageList; - private System.Windows.Forms.ColumnHeader pluginNameColumnHeader; - private System.Windows.Forms.ColumnHeader pluginVersionColumnHeader; - private System.Windows.Forms.ColumnHeader pluginDescriptionColumnHeader; - private System.Windows.Forms.PictureBox pictureBox; - private System.Windows.Forms.Label label; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox productTextBox; - private System.Windows.Forms.TextBox versionTextBox; - private System.Windows.Forms.TextBox copyrightTextBox; - private System.Windows.Forms.GroupBox pluginsGroupBox; - private System.Windows.Forms.RichTextBox licenseTextBox; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.LinkLabel webLinkLabel; - private System.Windows.Forms.LinkLabel mailLinkLabel; - } +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Starter { + partial class AboutDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.okButton = new System.Windows.Forms.Button(); + this.pluginListView = new System.Windows.Forms.ListView(); + this.pluginNameColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginVersionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginDescriptionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + this.pictureBox = new System.Windows.Forms.PictureBox(); + this.label = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.productTextBox = new System.Windows.Forms.TextBox(); + this.versionTextBox = new System.Windows.Forms.TextBox(); + this.copyrightTextBox = new System.Windows.Forms.TextBox(); + this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); + this.licenseTextBox = new System.Windows.Forms.RichTextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label4 = new System.Windows.Forms.Label(); + this.webLinkLabel = new System.Windows.Forms.LinkLabel(); + this.mailLinkLabel = new System.Windows.Forms.LinkLabel(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); + this.pluginsGroupBox.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.Location = new System.Drawing.Point(538, 13); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 0; + this.okButton.Text = "&Close"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // pluginListView + // + this.pluginListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameColumnHeader, + this.pluginVersionColumnHeader, + this.pluginDescriptionColumnHeader}); + this.pluginListView.Location = new System.Drawing.Point(6, 19); + this.pluginListView.Name = "pluginListView"; + this.pluginListView.ShowGroups = false; + this.pluginListView.Size = new System.Drawing.Size(589, 201); + this.pluginListView.SmallImageList = this.imageList; + this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.pluginListView.TabIndex = 0; + this.pluginListView.UseCompatibleStateImageBehavior = false; + this.pluginListView.View = System.Windows.Forms.View.Details; + this.pluginListView.ItemActivate += new System.EventHandler(this.pluginListView_ItemActivate); + // + // pluginNameColumnHeader + // + this.pluginNameColumnHeader.Text = "Name"; + // + // pluginVersionColumnHeader + // + this.pluginVersionColumnHeader.Text = "Version"; + // + // pluginDescriptionColumnHeader + // + this.pluginDescriptionColumnHeader.Text = "Description"; + // + // imageList + // + this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.imageList.ImageSize = new System.Drawing.Size(16, 16); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + // + // pictureBox + // + this.pictureBox.Location = new System.Drawing.Point(12, 12); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size(160, 180); + this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox.TabIndex = 2; + this.pictureBox.TabStop = false; + // + // label + // + this.label.AutoSize = true; + this.label.Location = new System.Drawing.Point(183, 12); + this.label.Name = "label"; + this.label.Size = new System.Drawing.Size(47, 13); + this.label.TabIndex = 1; + this.label.Text = "Product:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(183, 31); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(45, 13); + this.label1.TabIndex = 3; + this.label1.Text = "Version:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(183, 50); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(54, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Copyright:"; + // + // productTextBox + // + this.productTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.productTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.productTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.productTextBox.Location = new System.Drawing.Point(258, 12); + this.productTextBox.Name = "productTextBox"; + this.productTextBox.ReadOnly = true; + this.productTextBox.Size = new System.Drawing.Size(355, 13); + this.productTextBox.TabIndex = 2; + this.productTextBox.Text = "HeuristicLab"; + // + // versionTextBox + // + this.versionTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.versionTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.versionTextBox.Location = new System.Drawing.Point(258, 31); + this.versionTextBox.Name = "versionTextBox"; + this.versionTextBox.ReadOnly = true; + this.versionTextBox.Size = new System.Drawing.Size(355, 13); + this.versionTextBox.TabIndex = 4; + this.versionTextBox.Text = "1.0"; + // + // copyrightTextBox + // + this.copyrightTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.copyrightTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.copyrightTextBox.Location = new System.Drawing.Point(258, 50); + this.copyrightTextBox.Name = "copyrightTextBox"; + this.copyrightTextBox.ReadOnly = true; + this.copyrightTextBox.Size = new System.Drawing.Size(355, 13); + this.copyrightTextBox.TabIndex = 6; + this.copyrightTextBox.Text = "(C)"; + // + // pluginsGroupBox + // + this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsGroupBox.Controls.Add(this.pluginListView); + this.pluginsGroupBox.Location = new System.Drawing.Point(12, 306); + this.pluginsGroupBox.Name = "pluginsGroupBox"; + this.pluginsGroupBox.Size = new System.Drawing.Size(601, 226); + this.pluginsGroupBox.TabIndex = 12; + this.pluginsGroupBox.TabStop = false; + this.pluginsGroupBox.Text = "Plugins"; + // + // licenseTextBox + // + this.licenseTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.licenseTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.licenseTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.licenseTextBox.Location = new System.Drawing.Point(186, 115); + this.licenseTextBox.Name = "licenseTextBox"; + this.licenseTextBox.ReadOnly = true; + this.licenseTextBox.Size = new System.Drawing.Size(427, 185); + this.licenseTextBox.TabIndex = 11; + this.licenseTextBox.Text = "License Text"; + this.licenseTextBox.WordWrap = false; + this.licenseTextBox.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.licenseTextBox_LinkClicked); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(183, 69); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(49, 13); + this.label2.TabIndex = 7; + this.label2.Text = "Website:"; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.Control; + this.panel1.Controls.Add(this.okButton); + this.panel1.Location = new System.Drawing.Point(0, 538); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(626, 48); + this.panel1.TabIndex = 0; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(183, 88); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(47, 13); + this.label4.TabIndex = 9; + this.label4.Text = "Contact:"; + // + // webLinkLabel + // + this.webLinkLabel.AutoSize = true; + this.webLinkLabel.Location = new System.Drawing.Point(255, 69); + this.webLinkLabel.Name = "webLinkLabel"; + this.webLinkLabel.Size = new System.Drawing.Size(135, 13); + this.webLinkLabel.TabIndex = 8; + this.webLinkLabel.TabStop = true; + this.webLinkLabel.Text = "http://dev.heuristiclab.com"; + this.webLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.webLinkLabel_LinkClicked); + // + // mailLinkLabel + // + this.mailLinkLabel.AutoSize = true; + this.mailLinkLabel.Location = new System.Drawing.Point(255, 88); + this.mailLinkLabel.Name = "mailLinkLabel"; + this.mailLinkLabel.Size = new System.Drawing.Size(129, 13); + this.mailLinkLabel.TabIndex = 10; + this.mailLinkLabel.TabStop = true; + this.mailLinkLabel.Text = "support@heuristiclab.com"; + this.mailLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.mailLinkLabel_LinkClicked); + // + // AboutDialog + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.SystemColors.Window; + this.CancelButton = this.okButton; + this.ClientSize = new System.Drawing.Size(625, 586); + this.Controls.Add(this.mailLinkLabel); + this.Controls.Add(this.webLinkLabel); + this.Controls.Add(this.label4); + this.Controls.Add(this.panel1); + this.Controls.Add(this.label2); + this.Controls.Add(this.licenseTextBox); + this.Controls.Add(this.pluginsGroupBox); + this.Controls.Add(this.copyrightTextBox); + this.Controls.Add(this.versionTextBox); + this.Controls.Add(this.productTextBox); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.label); + this.Controls.Add(this.pictureBox); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About HeuristicLab"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); + this.pluginsGroupBox.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.ListView pluginListView; + private System.Windows.Forms.ImageList imageList; + private System.Windows.Forms.ColumnHeader pluginNameColumnHeader; + private System.Windows.Forms.ColumnHeader pluginVersionColumnHeader; + private System.Windows.Forms.ColumnHeader pluginDescriptionColumnHeader; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Label label; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox productTextBox; + private System.Windows.Forms.TextBox versionTextBox; + private System.Windows.Forms.TextBox copyrightTextBox; + private System.Windows.Forms.GroupBox pluginsGroupBox; + private System.Windows.Forms.RichTextBox licenseTextBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.LinkLabel webLinkLabel; + private System.Windows.Forms.LinkLabel mailLinkLabel; + } } \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/AboutDialog.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/AboutDialog.cs index d17ef07e02..3de9a2ca7b 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Starter/AboutDialog.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/AboutDialog.cs @@ -1,116 +1,116 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Advanced; - -namespace HeuristicLab.PluginInfrastructure.Starter { - /// - /// Shows product, version and copyright information for HeuristicLab and all plugins. - /// - public partial class AboutDialog : Form { - /// - /// Creates a new about dialog with all plugins loaded in the current application. - /// - public AboutDialog() { - InitializeComponent(); - var curAssembly = this.GetType().Assembly; - productTextBox.Text = GetProduct(curAssembly); - versionTextBox.Text = GetVersion(); - copyrightTextBox.Text = GetCopyright(curAssembly); - imageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); - pictureBox.Image = HeuristicLab.PluginInfrastructure.Resources.HeuristicLabLogo; - licenseTextBox.Text = HeuristicLab.PluginInfrastructure.Resources.LicenseText; - UpdatePluginList(ApplicationManager.Manager.Plugins); - ActiveControl = okButton; - } - - /// - /// Creates a new about dialog listing all plugins in the enumerable. - /// - /// Enumerable of plugins that should be listed. - public AboutDialog(IEnumerable plugins) - : this() { - UpdatePluginList(plugins); - } - - private void UpdatePluginList(IEnumerable plugins) { - pluginListView.Items.Clear(); - foreach (var plugin in plugins) { - ListViewItem pluginItem = CreateListViewItem(plugin); - pluginListView.Items.Add(pluginItem); - } - Util.ResizeColumns(pluginListView.Columns.OfType()); - } - - private ListViewItem CreateListViewItem(IPluginDescription plugin) { - ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); - item.Tag = plugin; - item.ImageIndex = 0; - return item; - } - - private string GetCopyright(Assembly asm) { - AssemblyCopyrightAttribute attribute = GetAttribute(asm); - return attribute.Copyright; - } - - private string GetVersion() { - return AssemblyHelpers.GetFileVersion(GetType().Assembly); - } - - private string GetProduct(Assembly asm) { - AssemblyProductAttribute attribute = GetAttribute(asm); - return attribute.Product; - } - - private T GetAttribute(Assembly asm) { - return (T)asm.GetCustomAttributes(typeof(T), false).Single(); - } - - private void okButton_Click(object sender, EventArgs e) { - Close(); - } - - private void pluginListView_ItemActivate(object sender, EventArgs e) { - if (pluginListView.SelectedItems.Count > 0) { - PluginView view = new PluginView((IPluginDescription)pluginListView.SelectedItems[0].Tag); - view.Show(this); - } - } - - private void licenseTextBox_LinkClicked(object sender, LinkClickedEventArgs e) { - System.Diagnostics.Process.Start(e.LinkText); - } - - private void webLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - System.Diagnostics.Process.Start(webLinkLabel.Text); - } - - private void mailLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { - System.Diagnostics.Process.Start("mailto:" + mailLinkLabel.Text); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Advanced; + +namespace HeuristicLab.PluginInfrastructure.Starter { + /// + /// Shows product, version and copyright information for HeuristicLab and all plugins. + /// + public partial class AboutDialog : Form { + /// + /// Creates a new about dialog with all plugins loaded in the current application. + /// + public AboutDialog() { + InitializeComponent(); + var curAssembly = this.GetType().Assembly; + productTextBox.Text = GetProduct(curAssembly); + versionTextBox.Text = GetVersion(); + copyrightTextBox.Text = GetCopyright(curAssembly); + imageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + pictureBox.Image = HeuristicLab.PluginInfrastructure.Resources.HeuristicLabLogo; + licenseTextBox.Text = HeuristicLab.PluginInfrastructure.Resources.LicenseText; + UpdatePluginList(ApplicationManager.Manager.Plugins); + ActiveControl = okButton; + } + + /// + /// Creates a new about dialog listing all plugins in the enumerable. + /// + /// Enumerable of plugins that should be listed. + public AboutDialog(IEnumerable plugins) + : this() { + UpdatePluginList(plugins); + } + + private void UpdatePluginList(IEnumerable plugins) { + pluginListView.Items.Clear(); + foreach (var plugin in plugins) { + ListViewItem pluginItem = CreateListViewItem(plugin); + pluginListView.Items.Add(pluginItem); + } + Util.ResizeColumns(pluginListView.Columns.OfType()); + } + + private ListViewItem CreateListViewItem(IPluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + return item; + } + + private string GetCopyright(Assembly asm) { + AssemblyCopyrightAttribute attribute = GetAttribute(asm); + return attribute.Copyright; + } + + private string GetVersion() { + return AssemblyHelpers.GetFileVersion(GetType().Assembly); + } + + private string GetProduct(Assembly asm) { + AssemblyProductAttribute attribute = GetAttribute(asm); + return attribute.Product; + } + + private T GetAttribute(Assembly asm) { + return (T)asm.GetCustomAttributes(typeof(T), false).Single(); + } + + private void okButton_Click(object sender, EventArgs e) { + Close(); + } + + private void pluginListView_ItemActivate(object sender, EventArgs e) { + if (pluginListView.SelectedItems.Count > 0) { + PluginView view = new PluginView((IPluginDescription)pluginListView.SelectedItems[0].Tag); + view.Show(this); + } + } + + private void licenseTextBox_LinkClicked(object sender, LinkClickedEventArgs e) { + System.Diagnostics.Process.Start(e.LinkText); + } + + private void webLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + System.Diagnostics.Process.Start(webLinkLabel.Text); + } + + private void mailLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + System.Diagnostics.Process.Start("mailto:" + mailLinkLabel.Text); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/SplashScreen.Designer.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/SplashScreen.Designer.cs index e46d7d8ceb..a38a2aa4b0 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/SplashScreen.Designer.cs @@ -1,134 +1,134 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure.Starter { - partial class SplashScreen { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.versionLabel = new System.Windows.Forms.Label(); - this.infoLabel = new System.Windows.Forms.Label(); - this.copyrightLabel = new System.Windows.Forms.Label(); - this.pictureBox = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); - this.SuspendLayout(); - // - // versionLabel - // - this.versionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.versionLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F); - this.versionLabel.Location = new System.Drawing.Point(436, 147); - this.versionLabel.Name = "versionLabel"; - this.versionLabel.Size = new System.Drawing.Size(150, 9); - this.versionLabel.TabIndex = 1; - this.versionLabel.Text = "Version "; - this.versionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // infoLabel - // - this.infoLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.infoLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.infoLabel.ForeColor = System.Drawing.Color.DarkOrange; - this.infoLabel.Location = new System.Drawing.Point(12, 113); - this.infoLabel.Name = "infoLabel"; - this.infoLabel.Size = new System.Drawing.Size(574, 30); - this.infoLabel.TabIndex = 6; - this.infoLabel.Text = "Startup Information"; - this.infoLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // copyrightLabel - // - this.copyrightLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.copyrightLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F); - this.copyrightLabel.Location = new System.Drawing.Point(12, 147); - this.copyrightLabel.Name = "copyrightLabel"; - this.copyrightLabel.Size = new System.Drawing.Size(150, 9); - this.copyrightLabel.TabIndex = 2; - this.copyrightLabel.Text = "Copyright"; - this.copyrightLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // pictureBox - // - this.pictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pictureBox.Image = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLabBanner; - this.pictureBox.Location = new System.Drawing.Point(0, 0); - this.pictureBox.Name = "pictureBox"; - this.pictureBox.Size = new System.Drawing.Size(598, 110); - this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pictureBox.TabIndex = 0; - this.pictureBox.TabStop = false; - // - // SplashScreen - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.BackColor = System.Drawing.Color.White; - this.ClientSize = new System.Drawing.Size(598, 165); - this.ControlBox = false; - this.Controls.Add(this.pictureBox); - this.Controls.Add(this.versionLabel); - this.Controls.Add(this.copyrightLabel); - this.Controls.Add(this.infoLabel); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "SplashScreen"; - this.Opacity = 0.99D; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.PictureBox pictureBox; - private System.Windows.Forms.Label versionLabel; - private System.Windows.Forms.Label copyrightLabel; - private System.Windows.Forms.Label infoLabel; - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Starter { + partial class SplashScreen { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.versionLabel = new System.Windows.Forms.Label(); + this.infoLabel = new System.Windows.Forms.Label(); + this.copyrightLabel = new System.Windows.Forms.Label(); + this.pictureBox = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); + this.SuspendLayout(); + // + // versionLabel + // + this.versionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.versionLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F); + this.versionLabel.Location = new System.Drawing.Point(436, 147); + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size(150, 9); + this.versionLabel.TabIndex = 1; + this.versionLabel.Text = "Version "; + this.versionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // infoLabel + // + this.infoLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.infoLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.infoLabel.ForeColor = System.Drawing.Color.DarkOrange; + this.infoLabel.Location = new System.Drawing.Point(12, 113); + this.infoLabel.Name = "infoLabel"; + this.infoLabel.Size = new System.Drawing.Size(574, 30); + this.infoLabel.TabIndex = 6; + this.infoLabel.Text = "Startup Information"; + this.infoLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // copyrightLabel + // + this.copyrightLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.copyrightLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F); + this.copyrightLabel.Location = new System.Drawing.Point(12, 147); + this.copyrightLabel.Name = "copyrightLabel"; + this.copyrightLabel.Size = new System.Drawing.Size(150, 9); + this.copyrightLabel.TabIndex = 2; + this.copyrightLabel.Text = "Copyright"; + this.copyrightLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // pictureBox + // + this.pictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox.Image = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLabBanner; + this.pictureBox.Location = new System.Drawing.Point(0, 0); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size(598, 110); + this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // SplashScreen + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(598, 165); + this.ControlBox = false; + this.Controls.Add(this.pictureBox); + this.Controls.Add(this.versionLabel); + this.Controls.Add(this.copyrightLabel); + this.Controls.Add(this.infoLabel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SplashScreen"; + this.Opacity = 0.99D; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Label versionLabel; + private System.Windows.Forms.Label copyrightLabel; + private System.Windows.Forms.Label infoLabel; + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/SplashScreen.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/SplashScreen.cs index 3ed732c5b3..6d8c527224 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Starter/SplashScreen.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/SplashScreen.cs @@ -1,167 +1,167 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Linq; -using System.Reflection; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Starter { - internal partial class SplashScreen : Form { - private const int FADE_INTERVAL = 50; - private Timer fadeTimer; - private int initialInterval; - private PluginManager pluginManager; - - internal SplashScreen() { - InitializeComponent(); - } - - internal SplashScreen(PluginManager manager, int initialInterval) - : this() { - this.initialInterval = initialInterval; - this.pluginManager = manager; - - RegisterPluginManagerEventHandlers(); - - versionLabel.Text = "Version " + AssemblyHelpers.GetFileVersion(GetType().Assembly); - infoLabel.Text = ""; - - var attr = (AssemblyCopyrightAttribute)this.GetType().Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false).Single(); - copyrightLabel.Text = "Copyright " + attr.Copyright; - - fadeTimer = new Timer(); - fadeTimer.Tick += fadeTimer_Elapsed; - fadeTimer.Interval = initialInterval; - } - - #region events - private void RegisterPluginManagerEventHandlers() { - pluginManager.ApplicationStarted += new EventHandler(manager_ApplicationStarted); - pluginManager.ApplicationStarting += new EventHandler(manager_ApplicationStarting); - pluginManager.Initializing += new EventHandler(manager_Initializing); - pluginManager.Initialized += new EventHandler(manager_Initialized); - pluginManager.PluginLoaded += new EventHandler(manager_PluginLoaded); - pluginManager.PluginUnloaded += new EventHandler(manager_PluginUnloaded); - } - - private void DeregisterPluginManagerEventHandlers() { - pluginManager.ApplicationStarted -= new EventHandler(manager_ApplicationStarted); - pluginManager.ApplicationStarting -= new EventHandler(manager_ApplicationStarting); - pluginManager.Initializing -= new EventHandler(manager_Initializing); - pluginManager.Initialized -= new EventHandler(manager_Initialized); - pluginManager.PluginLoaded -= new EventHandler(manager_PluginLoaded); - pluginManager.PluginUnloaded -= new EventHandler(manager_PluginUnloaded); - } - - private void manager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { - SafeUpdateMessage("Unloaded " + e.Entity); - } - - private void manager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { - SafeUpdateMessage("Loaded " + e.Entity); - } - - private void manager_Initialized(object sender, PluginInfrastructureEventArgs e) { - SafeUpdateMessage("Initialized"); - } - - private void manager_Initializing(object sender, PluginInfrastructureEventArgs e) { - SafeUpdateMessage("Initializing"); - } - - private void manager_ApplicationStarting(object sender, PluginInfrastructureEventArgs e) { - SafeUpdateMessage("Starting " + e.Entity); - } - - private void manager_ApplicationStarted(object sender, PluginInfrastructureEventArgs e) { - SafeUpdateMessage("Started " + e.Entity); - } - // called from event handlers - private void SafeUpdateMessage(string msg) { - try { - Invoke((Action)UpdateMessage, msg); - } - catch (ObjectDisposedException) { } - } - - // each tick of the timer reduce opacity and restart timer - private void fadeTimer_Elapsed(object sender, EventArgs e) { - // only called from local timer: no need to invoke here - FadeOut(); - } - #endregion - - public void Show(string initialText) { - if (InvokeRequired) Invoke((Action)Show, initialText); - else { - Opacity = 1; - infoLabel.Text = initialText; - ResetFadeTimer(); - Show(); - } - } - - public void Show(IWin32Window owner, string initialText) { - if (InvokeRequired) Invoke((Action)Show, owner, initialText); - else { - Opacity = 1; - infoLabel.Text = initialText; - ResetFadeTimer(); - Show(owner); - } - } - - private void ResetFadeTimer() { - // wait initialInterval again for the first tick - fadeTimer.Stop(); - fadeTimer.Interval = initialInterval; - fadeTimer.Start(); - } - - private void UpdateMessage(string msg) { - ResetFadeTimer(); - infoLabel.Text = msg; - Application.DoEvents(); // force immediate update of splash screen control - } - - // reduces opacity of the splashscreen one step and restarts the fade-timer - private void FadeOut() { - fadeTimer.Stop(); - fadeTimer.Interval = FADE_INTERVAL; - if (this.Opacity > 0) { - Opacity -= 0.1; - fadeTimer.Start(); - } else { - Opacity = 0; - fadeTimer.Stop(); - Hide(); - } - } - - protected override void OnClosing(System.ComponentModel.CancelEventArgs e) { - // deregister events when form is closing - DeregisterPluginManagerEventHandlers(); - base.OnClosing(e); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Linq; +using System.Reflection; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Starter { + internal partial class SplashScreen : Form { + private const int FADE_INTERVAL = 50; + private Timer fadeTimer; + private int initialInterval; + private PluginManager pluginManager; + + internal SplashScreen() { + InitializeComponent(); + } + + internal SplashScreen(PluginManager manager, int initialInterval) + : this() { + this.initialInterval = initialInterval; + this.pluginManager = manager; + + RegisterPluginManagerEventHandlers(); + + versionLabel.Text = "Version " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + infoLabel.Text = ""; + + var attr = (AssemblyCopyrightAttribute)this.GetType().Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false).Single(); + copyrightLabel.Text = "Copyright " + attr.Copyright; + + fadeTimer = new Timer(); + fadeTimer.Tick += fadeTimer_Elapsed; + fadeTimer.Interval = initialInterval; + } + + #region events + private void RegisterPluginManagerEventHandlers() { + pluginManager.ApplicationStarted += new EventHandler(manager_ApplicationStarted); + pluginManager.ApplicationStarting += new EventHandler(manager_ApplicationStarting); + pluginManager.Initializing += new EventHandler(manager_Initializing); + pluginManager.Initialized += new EventHandler(manager_Initialized); + pluginManager.PluginLoaded += new EventHandler(manager_PluginLoaded); + pluginManager.PluginUnloaded += new EventHandler(manager_PluginUnloaded); + } + + private void DeregisterPluginManagerEventHandlers() { + pluginManager.ApplicationStarted -= new EventHandler(manager_ApplicationStarted); + pluginManager.ApplicationStarting -= new EventHandler(manager_ApplicationStarting); + pluginManager.Initializing -= new EventHandler(manager_Initializing); + pluginManager.Initialized -= new EventHandler(manager_Initialized); + pluginManager.PluginLoaded -= new EventHandler(manager_PluginLoaded); + pluginManager.PluginUnloaded -= new EventHandler(manager_PluginUnloaded); + } + + private void manager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Unloaded " + e.Entity); + } + + private void manager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Loaded " + e.Entity); + } + + private void manager_Initialized(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Initialized"); + } + + private void manager_Initializing(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Initializing"); + } + + private void manager_ApplicationStarting(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Starting " + e.Entity); + } + + private void manager_ApplicationStarted(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Started " + e.Entity); + } + // called from event handlers + private void SafeUpdateMessage(string msg) { + try { + Invoke((Action)UpdateMessage, msg); + } + catch (ObjectDisposedException) { } + } + + // each tick of the timer reduce opacity and restart timer + private void fadeTimer_Elapsed(object sender, EventArgs e) { + // only called from local timer: no need to invoke here + FadeOut(); + } + #endregion + + public void Show(string initialText) { + if (InvokeRequired) Invoke((Action)Show, initialText); + else { + Opacity = 1; + infoLabel.Text = initialText; + ResetFadeTimer(); + Show(); + } + } + + public void Show(IWin32Window owner, string initialText) { + if (InvokeRequired) Invoke((Action)Show, owner, initialText); + else { + Opacity = 1; + infoLabel.Text = initialText; + ResetFadeTimer(); + Show(owner); + } + } + + private void ResetFadeTimer() { + // wait initialInterval again for the first tick + fadeTimer.Stop(); + fadeTimer.Interval = initialInterval; + fadeTimer.Start(); + } + + private void UpdateMessage(string msg) { + ResetFadeTimer(); + infoLabel.Text = msg; + Application.DoEvents(); // force immediate update of splash screen control + } + + // reduces opacity of the splashscreen one step and restarts the fade-timer + private void FadeOut() { + fadeTimer.Stop(); + fadeTimer.Interval = FADE_INTERVAL; + if (this.Opacity > 0) { + Opacity -= 0.1; + fadeTimer.Start(); + } else { + Opacity = 0; + fadeTimer.Stop(); + Hide(); + } + } + + protected override void OnClosing(System.ComponentModel.CancelEventArgs e) { + // deregister events when form is closing + DeregisterPluginManagerEventHandlers(); + base.OnClosing(e); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.Designer.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/StarterForm.Designer.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.Designer.cs rename to HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/StarterForm.Designer.cs index a404e5c1eb..42fe142ab9 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.Designer.cs +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/StarterForm.Designer.cs @@ -1,203 +1,203 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -namespace HeuristicLab.PluginInfrastructure.Starter { - partial class StarterForm { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) { - if (disposing && (components != null)) { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Applications", System.Windows.Forms.HorizontalAlignment.Left); - System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Plugin Management", System.Windows.Forms.HorizontalAlignment.Left); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StarterForm)); - this.startButton = new System.Windows.Forms.Button(); - this.largeImageList = new System.Windows.Forms.ImageList(this.components); - this.applicationsListView = new System.Windows.Forms.ListView(); - this.nameColumnHeader = new System.Windows.Forms.ColumnHeader(); - this.versionColumnHeader = new System.Windows.Forms.ColumnHeader(); - this.descriptionColumnHeader = new System.Windows.Forms.ColumnHeader(); - this.smallImageList = new System.Windows.Forms.ImageList(this.components); - this.toolTip = new System.Windows.Forms.ToolTip(this.components); - this.showLargeIconsButton = new System.Windows.Forms.RadioButton(); - this.showDetailsButton = new System.Windows.Forms.RadioButton(); - this.aboutButton = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // startButton - // - this.startButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.startButton.Enabled = false; - this.startButton.Location = new System.Drawing.Point(498, 511); - this.startButton.Name = "startButton"; - this.startButton.Size = new System.Drawing.Size(75, 23); - this.startButton.TabIndex = 1; - this.startButton.Text = "&Start"; - this.toolTip.SetToolTip(this.startButton, "Start Selected Application"); - this.startButton.UseVisualStyleBackColor = true; - this.startButton.Click += new System.EventHandler(this.applicationsListView_ItemActivate); - // - // largeImageList - // - this.largeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.largeImageList.ImageSize = new System.Drawing.Size(32, 32); - this.largeImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // applicationsListView - // - this.applicationsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.applicationsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.nameColumnHeader, - this.versionColumnHeader, - this.descriptionColumnHeader}); - listViewGroup1.Header = "Applications"; - listViewGroup1.Name = "Applications"; - listViewGroup2.Header = "Plugin Management"; - listViewGroup2.Name = "Plugin Management"; - this.applicationsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] { - listViewGroup1, - listViewGroup2}); - this.applicationsListView.LargeImageList = this.largeImageList; - this.applicationsListView.Location = new System.Drawing.Point(12, 12); - this.applicationsListView.MultiSelect = false; - this.applicationsListView.Name = "applicationsListView"; - this.applicationsListView.ShowItemToolTips = true; - this.applicationsListView.Size = new System.Drawing.Size(642, 493); - this.applicationsListView.SmallImageList = this.smallImageList; - this.applicationsListView.TabIndex = 0; - this.applicationsListView.UseCompatibleStateImageBehavior = false; - this.applicationsListView.ItemActivate += new System.EventHandler(this.applicationsListView_ItemActivate); - this.applicationsListView.SelectedIndexChanged += new System.EventHandler(this.applicationsListView_SelectedIndexChanged); - // - // nameColumnHeader - // - this.nameColumnHeader.Text = "Name"; - this.nameColumnHeader.Width = 125; - // - // versionColumnHeader - // - this.versionColumnHeader.Text = "Version"; - // - // descriptionColumnHeader - // - this.descriptionColumnHeader.Text = "Description"; - this.descriptionColumnHeader.Width = 453; - // - // smallImageList - // - this.smallImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; - this.smallImageList.ImageSize = new System.Drawing.Size(16, 16); - this.smallImageList.TransparentColor = System.Drawing.Color.Transparent; - // - // showLargeIconsButton - // - this.showLargeIconsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.showLargeIconsButton.Appearance = System.Windows.Forms.Appearance.Button; - this.showLargeIconsButton.Checked = true; - this.showLargeIconsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowIcons; - this.showLargeIconsButton.Location = new System.Drawing.Point(12, 511); - this.showLargeIconsButton.Name = "showLargeIconsButton"; - this.showLargeIconsButton.Size = new System.Drawing.Size(23, 23); - this.showLargeIconsButton.TabIndex = 2; - this.showLargeIconsButton.TabStop = true; - this.toolTip.SetToolTip(this.showLargeIconsButton, "Show Large Icons"); - this.showLargeIconsButton.UseVisualStyleBackColor = false; - this.showLargeIconsButton.Click += new System.EventHandler(this.largeIconsButton_Click); - // - // showDetailsButton - // - this.showDetailsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.showDetailsButton.Appearance = System.Windows.Forms.Appearance.Button; - this.showDetailsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowDetails; - this.showDetailsButton.Location = new System.Drawing.Point(41, 511); - this.showDetailsButton.Name = "showDetailsButton"; - this.showDetailsButton.Size = new System.Drawing.Size(23, 23); - this.showDetailsButton.TabIndex = 3; - this.toolTip.SetToolTip(this.showDetailsButton, "Show Details"); - this.showDetailsButton.UseVisualStyleBackColor = false; - this.showDetailsButton.Click += new System.EventHandler(this.detailsButton_Click); - // - // aboutButton - // - this.aboutButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.aboutButton.Location = new System.Drawing.Point(579, 511); - this.aboutButton.Name = "aboutButton"; - this.aboutButton.Size = new System.Drawing.Size(75, 23); - this.aboutButton.TabIndex = 4; - this.aboutButton.Text = "&About..."; - this.aboutButton.UseVisualStyleBackColor = true; - this.aboutButton.Click += new System.EventHandler(this.aboutButton_Click); - // - // StarterForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; - this.ClientSize = new System.Drawing.Size(666, 546); - this.Controls.Add(this.aboutButton); - this.Controls.Add(this.showDetailsButton); - this.Controls.Add(this.showLargeIconsButton); - this.Controls.Add(this.applicationsListView); - this.Controls.Add(this.startButton); - this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; - this.Name = "StarterForm"; - this.Text = "HeuristicLab Starter"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.StarterForm_FormClosing); - this.Load += new System.EventHandler(this.StarterForm_Load); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button startButton; - private System.Windows.Forms.ImageList largeImageList; - private System.Windows.Forms.ListView applicationsListView; - private System.Windows.Forms.ColumnHeader nameColumnHeader; - private System.Windows.Forms.ColumnHeader versionColumnHeader; - private System.Windows.Forms.ColumnHeader descriptionColumnHeader; - private System.Windows.Forms.ImageList smallImageList; - private System.Windows.Forms.ToolTip toolTip; - private System.Windows.Forms.RadioButton showLargeIconsButton; - private System.Windows.Forms.RadioButton showDetailsButton; - private System.Windows.Forms.Button aboutButton; - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Starter { + partial class StarterForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Applications", System.Windows.Forms.HorizontalAlignment.Left); + System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Plugin Management", System.Windows.Forms.HorizontalAlignment.Left); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StarterForm)); + this.startButton = new System.Windows.Forms.Button(); + this.largeImageList = new System.Windows.Forms.ImageList(this.components); + this.applicationsListView = new System.Windows.Forms.ListView(); + this.nameColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.versionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.smallImageList = new System.Windows.Forms.ImageList(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.showLargeIconsButton = new System.Windows.Forms.RadioButton(); + this.showDetailsButton = new System.Windows.Forms.RadioButton(); + this.aboutButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // startButton + // + this.startButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(498, 511); + this.startButton.Name = "startButton"; + this.startButton.Size = new System.Drawing.Size(75, 23); + this.startButton.TabIndex = 1; + this.startButton.Text = "&Start"; + this.toolTip.SetToolTip(this.startButton, "Start Selected Application"); + this.startButton.UseVisualStyleBackColor = true; + this.startButton.Click += new System.EventHandler(this.applicationsListView_ItemActivate); + // + // largeImageList + // + this.largeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.largeImageList.ImageSize = new System.Drawing.Size(32, 32); + this.largeImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // applicationsListView + // + this.applicationsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.applicationsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.nameColumnHeader, + this.versionColumnHeader, + this.descriptionColumnHeader}); + listViewGroup1.Header = "Applications"; + listViewGroup1.Name = "Applications"; + listViewGroup2.Header = "Plugin Management"; + listViewGroup2.Name = "Plugin Management"; + this.applicationsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] { + listViewGroup1, + listViewGroup2}); + this.applicationsListView.LargeImageList = this.largeImageList; + this.applicationsListView.Location = new System.Drawing.Point(12, 12); + this.applicationsListView.MultiSelect = false; + this.applicationsListView.Name = "applicationsListView"; + this.applicationsListView.ShowItemToolTips = true; + this.applicationsListView.Size = new System.Drawing.Size(642, 493); + this.applicationsListView.SmallImageList = this.smallImageList; + this.applicationsListView.TabIndex = 0; + this.applicationsListView.UseCompatibleStateImageBehavior = false; + this.applicationsListView.ItemActivate += new System.EventHandler(this.applicationsListView_ItemActivate); + this.applicationsListView.SelectedIndexChanged += new System.EventHandler(this.applicationsListView_SelectedIndexChanged); + // + // nameColumnHeader + // + this.nameColumnHeader.Text = "Name"; + this.nameColumnHeader.Width = 125; + // + // versionColumnHeader + // + this.versionColumnHeader.Text = "Version"; + // + // descriptionColumnHeader + // + this.descriptionColumnHeader.Text = "Description"; + this.descriptionColumnHeader.Width = 453; + // + // smallImageList + // + this.smallImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.smallImageList.ImageSize = new System.Drawing.Size(16, 16); + this.smallImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // showLargeIconsButton + // + this.showLargeIconsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.showLargeIconsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showLargeIconsButton.Checked = true; + this.showLargeIconsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowIcons; + this.showLargeIconsButton.Location = new System.Drawing.Point(12, 511); + this.showLargeIconsButton.Name = "showLargeIconsButton"; + this.showLargeIconsButton.Size = new System.Drawing.Size(23, 23); + this.showLargeIconsButton.TabIndex = 2; + this.showLargeIconsButton.TabStop = true; + this.toolTip.SetToolTip(this.showLargeIconsButton, "Show Large Icons"); + this.showLargeIconsButton.UseVisualStyleBackColor = false; + this.showLargeIconsButton.Click += new System.EventHandler(this.largeIconsButton_Click); + // + // showDetailsButton + // + this.showDetailsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.showDetailsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showDetailsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowDetails; + this.showDetailsButton.Location = new System.Drawing.Point(41, 511); + this.showDetailsButton.Name = "showDetailsButton"; + this.showDetailsButton.Size = new System.Drawing.Size(23, 23); + this.showDetailsButton.TabIndex = 3; + this.toolTip.SetToolTip(this.showDetailsButton, "Show Details"); + this.showDetailsButton.UseVisualStyleBackColor = false; + this.showDetailsButton.Click += new System.EventHandler(this.detailsButton_Click); + // + // aboutButton + // + this.aboutButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.aboutButton.Location = new System.Drawing.Point(579, 511); + this.aboutButton.Name = "aboutButton"; + this.aboutButton.Size = new System.Drawing.Size(75, 23); + this.aboutButton.TabIndex = 4; + this.aboutButton.Text = "&About..."; + this.aboutButton.UseVisualStyleBackColor = true; + this.aboutButton.Click += new System.EventHandler(this.aboutButton_Click); + // + // StarterForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(666, 546); + this.Controls.Add(this.aboutButton); + this.Controls.Add(this.showDetailsButton); + this.Controls.Add(this.showLargeIconsButton); + this.Controls.Add(this.applicationsListView); + this.Controls.Add(this.startButton); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.Name = "StarterForm"; + this.Text = "HeuristicLab Starter"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.StarterForm_FormClosing); + this.Load += new System.EventHandler(this.StarterForm_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.ImageList largeImageList; + private System.Windows.Forms.ListView applicationsListView; + private System.Windows.Forms.ColumnHeader nameColumnHeader; + private System.Windows.Forms.ColumnHeader versionColumnHeader; + private System.Windows.Forms.ColumnHeader descriptionColumnHeader; + private System.Windows.Forms.ImageList smallImageList; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.RadioButton showLargeIconsButton; + private System.Windows.Forms.RadioButton showDetailsButton; + private System.Windows.Forms.Button aboutButton; + } +} diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/StarterForm.cs b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/StarterForm.cs new file mode 100644 index 0000000000..251626cd15 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/Starter/StarterForm.cs @@ -0,0 +1,344 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Advanced; +using HeuristicLab.PluginInfrastructure.Manager; +using HeuristicLab.PluginInfrastructure.Properties; + +namespace HeuristicLab.PluginInfrastructure.Starter { + /// + /// The starter form is responsible for initializing the plugin infrastructure + /// and shows a list of installed applications. + /// + public partial class StarterForm : Form { + private const string pluginManagerItemName = "Plugin Manager"; + private const string updatePluginsItemName = "Updates Available"; + private const string optimizerItemName = "Optimizer"; + + private readonly ICommandLineArgument[] arguments; + + private ListViewItem pluginManagerListViewItem; + private bool abortRequested; + private PluginManager pluginManager; + private SplashScreen splashScreen; + private bool updatesAvailable = false; + + /// + /// Initializes an instance of the starter form. + /// The starter form shows a splashscreen and initializes the plugin infrastructure. + /// + public StarterForm() + : base() { + InitializeComponent(); + largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); + largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); + smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); + smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); + Text = "HeuristicLab " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + + string pluginPath = Path.GetFullPath(Application.StartupPath); + pluginManager = new PluginManager(pluginPath); + splashScreen = new SplashScreen(pluginManager, 1000); + splashScreen.VisibleChanged += new EventHandler(splashScreen_VisibleChanged); + splashScreen.Show(this, "Loading HeuristicLab..."); + + if (CheckSavedStarterFormSettings()) { + Location = Settings.Default.StarterFormLocation; + Size = Settings.Default.StarterFormSize; + WindowState = Settings.Default.StarterFormWindowState; + } + + pluginManager.DiscoverAndCheckPlugins(); + UpdateApplicationsList(); + + CheckUpdatesAvailableAsync(); + } + + /// + /// Creates a new StarterForm and passes the arguments in . + /// + /// The arguments that should be processed + public StarterForm(string[] args) + : this() { + arguments = CommandLineArgumentHandling.GetArguments(args); + } + + protected override void SetVisibleCore(bool value) { + value &= !(arguments.OfType().Any() || arguments.OfType().Any()); + if (!value) HandleArguments(); + base.SetVisibleCore(value); + } + + #region Events + private void StarterForm_Load(object sender, EventArgs e) { + HandleArguments(); + } + + private void StarterForm_FormClosing(object sender, FormClosingEventArgs e) { + splashScreen.Close(); + abortRequested = true; + + if (WindowState != FormWindowState.Minimized) + Settings.Default.StarterFormWindowState = WindowState; + if (WindowState != FormWindowState.Normal) { + Settings.Default.StarterFormLocation = RestoreBounds.Location; + Settings.Default.StarterFormSize = RestoreBounds.Size; + } else if (WindowState == FormWindowState.Normal) { + Settings.Default.StarterFormLocation = Location; + Settings.Default.StarterFormSize = Size; + } + + Settings.Default.Save(); + } + + private void applicationsListView_SelectedIndexChanged(object sender, EventArgs e) { + startButton.Enabled = applicationsListView.SelectedItems.Count > 0; + } + + private void applicationsListView_ItemActivate(object sender, EventArgs e) { + if (applicationsListView.SelectedItems.Count > 0) { + ListViewItem selected = applicationsListView.SelectedItems[0]; + if (selected.Text == pluginManagerItemName) { + if (pluginManager.Plugins.Any(x => x.PluginState == PluginState.Loaded)) { + MessageBox.Show("Installation Manager cannot be started while another HeuristicLab application is active." + Environment.NewLine + + "Please stop all active HeuristicLab applications and try again.", "Plugin Manager", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } else { + try { + Cursor = Cursors.AppStarting; + using (InstallationManagerForm form = new InstallationManagerForm(pluginManager)) { + form.ShowDialog(this); + } + UpdateApplicationsList(); + } + finally { + Cursor = Cursors.Arrow; + } + } + } else if (selected.Text == updatePluginsItemName) { + if (pluginManager.Plugins.Any(x => x.PluginState == PluginState.Loaded)) { + MessageBox.Show("Updating is not possible while another HeuristicLab application is active." + Environment.NewLine + + "Please stop all active HeuristicLab applications and try again.", "Update plugins", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } else { + try { + Cursor = Cursors.AppStarting; + using (PluginUpdaterForm form = new PluginUpdaterForm(pluginManager)) { + form.ShowDialog(this); + } + updatesAvailable = false; + CheckUpdatesAvailableAsync(); + UpdateApplicationsList(); + } + finally { + Cursor = Cursors.Arrow; + } + } + } else { + ApplicationDescription app = (ApplicationDescription)applicationsListView.SelectedItems[0].Tag; + StartApplication(app, arguments); + } + } + } + + private void largeIconsButton_Click(object sender, EventArgs e) { + applicationsListView.View = View.LargeIcon; + } + + private void detailsButton_Click(object sender, EventArgs e) { + applicationsListView.View = View.Details; + foreach (ColumnHeader column in applicationsListView.Columns) { + if (applicationsListView.Items.Count > 0) + column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); + else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); + } + } + + private void aboutButton_Click(object sender, EventArgs e) { + List plugins = new List(pluginManager.Plugins.OfType()); + using (var dialog = new AboutDialog(plugins)) { + dialog.ShowDialog(); + } + } + + private void splashScreen_VisibleChanged(object sender, EventArgs e) { + // close hidden starter form + if (!splashScreen.Visible && arguments != null && + (arguments.OfType().Any() || arguments.OfType().Any())) + Close(); + } + #endregion + + #region Helpers + private bool CheckSavedStarterFormSettings() { + var formArea = new Rectangle(Settings.Default.StarterFormLocation, Settings.Default.StarterFormSize); + var screenArea = Screen.FromRectangle(formArea).WorkingArea; + var overlappingArea = Rectangle.Intersect(formArea, screenArea); + bool offLimits = overlappingArea.IsEmpty || overlappingArea.Width * overlappingArea.Height < formArea.Width * formArea.Height * 0.25; + return !formArea.IsEmpty && !offLimits; + } + + private void UpdateApplicationsList() { + if (InvokeRequired) Invoke((Action)UpdateApplicationsList); + else { + applicationsListView.Items.Clear(); + AddPluginManagerItem(); + AddUpdatePluginsItem(); + + foreach (ApplicationDescription info in pluginManager.Applications) { + ListViewItem item = new ListViewItem(info.Name, 0); + item.Tag = info; + item.Group = applicationsListView.Groups["Applications"]; + item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Version.ToString())); + item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Description)); + item.ToolTipText = info.Description; + applicationsListView.Items.Add(item); + } + foreach (ColumnHeader column in applicationsListView.Columns) { + if (applicationsListView.Items.Count > 0) + column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); + else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); + } + } + } + + private void AddPluginManagerItem() { + pluginManagerListViewItem = new ListViewItem(pluginManagerItemName, 0); + pluginManagerListViewItem.Group = applicationsListView.Groups["Plugin Management"]; + pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, AssemblyHelpers.GetFileVersion(GetType().Assembly))); + pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, "Install, upgrade or delete plugins")); + pluginManagerListViewItem.ToolTipText = "Install, upgrade or delete plugins"; + + applicationsListView.Items.Add(pluginManagerListViewItem); + } + + private void AddUpdatePluginsItem() { + if (updatesAvailable) { + var updateListViewItem = new ListViewItem(updatePluginsItemName, 1); + updateListViewItem.Group = applicationsListView.Groups["Plugin Management"]; + updateListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(updateListViewItem, "")); + updateListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(updateListViewItem, "Download and install updates")); + updateListViewItem.ToolTipText = "Download and install updates"; + + applicationsListView.Items.Add(updateListViewItem); + } + } + + private void CheckUpdatesAvailableAsync() { + string pluginPath = Path.GetFullPath(Application.StartupPath); + var task = Task.Factory.StartNew(() => { + var installationManager = new InstallationManager(pluginPath); + IEnumerable installedPlugins = pluginManager.Plugins.OfType(); + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in installedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where Util.IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + return pluginsToUpdate.Count() > 0; + }); + task.ContinueWith(t => { + try { + t.Wait(); + updatesAvailable = t.Result; + UpdateApplicationsList(); + } + catch (AggregateException ae) { + ae.Handle(ex => { + if (ex is InstallationManagerException) { + // this is expected when no internet connection is available => do nothing + return true; + } else { + return false; + } + }); + } + }); + } + + private void HandleArguments() { + try { + if (arguments.OfType().Any() && !arguments.OfType().Any()) { + InitiateApplicationStart(optimizerItemName); + } + foreach (var argument in arguments) { + if (argument is StartArgument) { + var arg = (StartArgument)argument; + InitiateApplicationStart(arg.Value); + } + } + } + catch (AggregateException ex) { + ErrorHandlingUI.ShowErrorDialog(this, "One or more errors occurred while initializing the application.", ex); + } + } + + private void InitiateApplicationStart(string appName) { + var appDesc = (from desc in pluginManager.Applications + where desc.Name.Equals(appName) + select desc).SingleOrDefault(); + if (appDesc != null) { + StartApplication(appDesc, arguments); + } else { + MessageBox.Show("Cannot start application " + appName + ".", + "HeuristicLab", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + } + } + + private void StartApplication(ApplicationDescription app, ICommandLineArgument[] args) { + splashScreen.Show("Loading " + app.Name); + Thread t = new Thread(delegate() { + bool stopped = false; + do { + try { + if (!abortRequested) { + pluginManager.Run(app, args); + } + stopped = true; + } + catch (Exception ex) { + stopped = false; + ThreadPool.QueueUserWorkItem(delegate(object exception) { ErrorHandlingUI.ShowErrorDialog(this, (Exception)exception); }, ex); + Thread.Sleep(5000); // sleep 5 seconds before autorestart + } + } while (!abortRequested && !stopped && app.AutoRestart); + }); + t.SetApartmentState(ApartmentState.STA); // needed for the AdvancedOptimizationFrontent + t.Start(); + } + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/app.config b/HeuristicLab.PluginInfrastructure.Extension/3.3/app.config new file mode 100644 index 0000000000..8e52aace91 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/app.config @@ -0,0 +1,76 @@ + + + + +
+ + + + + + + anonymous + + + GetTheLab! + + + False + + + http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc + + + http://services.heuristiclab.com/Deployment-3.3/AdminService.svc + + + 0, 0 + + + 0, 0 + + + Normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/file.PublicKey b/HeuristicLab.PluginInfrastructure.Extension/3.3/file.PublicKey new file mode 100644 index 0000000000..12e2e8656d Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Extension/3.3/file.PublicKey differ diff --git a/HeuristicLab.PluginInfrastructure.Extension/3.3/packages.config b/HeuristicLab.PluginInfrastructure.Extension/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Extension/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/AvailablePluginsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/AvailablePluginsView.Designer.cs new file mode 100644 index 0000000000..09ae3e2244 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/AvailablePluginsView.Designer.cs @@ -0,0 +1,317 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class AvailablePluginsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.pluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.nameHeader = new System.Windows.Forms.ColumnHeader(); + this.versionHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginsImageList = new System.Windows.Forms.ImageList(this.components); + this.productsListView = new System.Windows.Forms.ListView(); + this.productNameHeader = new System.Windows.Forms.ColumnHeader(); + this.productVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.productLargeImageList = new System.Windows.Forms.ImageList(this.components); + this.productImageList = new System.Windows.Forms.ImageList(this.components); + this.productsGroupBox = new System.Windows.Forms.GroupBox(); + this.showDetailsButton = new System.Windows.Forms.RadioButton(); + this.showLargeIconsButton = new System.Windows.Forms.RadioButton(); + this.installProductsButton = new System.Windows.Forms.Button(); + this.refreshButton = new System.Windows.Forms.Button(); + this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); + this.installPluginsButton = new System.Windows.Forms.Button(); + this.splitContainer = new System.Windows.Forms.SplitContainer(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.productsGroupBox.SuspendLayout(); + this.pluginsGroupBox.SuspendLayout(); + this.splitContainer.Panel1.SuspendLayout(); + this.splitContainer.Panel2.SuspendLayout(); + this.splitContainer.SuspendLayout(); + this.SuspendLayout(); + // + // pluginsListView + // + this.pluginsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsListView.CheckBoxes = true; + this.pluginsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.nameHeader, + this.versionHeader, + this.descriptionHeader}); + this.pluginsListView.Location = new System.Drawing.Point(6, 19); + this.pluginsListView.Name = "pluginsListView"; + this.pluginsListView.ShowGroups = false; + this.pluginsListView.Size = new System.Drawing.Size(266, 502); + this.pluginsListView.SmallImageList = this.pluginsImageList; + this.pluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.pluginsListView.SuppressItemCheckedEvents = false; + this.pluginsListView.TabIndex = 0; + this.pluginsListView.UseCompatibleStateImageBehavior = false; + this.pluginsListView.View = System.Windows.Forms.View.Details; + this.pluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.remotePluginsListView_ItemChecked); + // + // nameHeader + // + this.nameHeader.Text = "Name"; + this.nameHeader.Width = 185; + // + // versionHeader + // + this.versionHeader.Text = "Version"; + this.versionHeader.Width = 93; + // + // descriptionHeader + // + this.descriptionHeader.Text = "Description"; + this.descriptionHeader.Width = 250; + // + // pluginsImageList + // + this.pluginsImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginsImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginsImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // productsListView + // + this.productsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.productNameHeader, + this.productVersionHeader}); + this.productsListView.HideSelection = false; + this.productsListView.LargeImageList = this.productLargeImageList; + this.productsListView.Location = new System.Drawing.Point(6, 50); + this.productsListView.MultiSelect = false; + this.productsListView.Name = "productsListView"; + this.productsListView.ShowGroups = false; + this.productsListView.Size = new System.Drawing.Size(240, 471); + this.productsListView.SmallImageList = this.productImageList; + this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.productsListView.TabIndex = 18; + this.productsListView.UseCompatibleStateImageBehavior = false; + this.productsListView.View = System.Windows.Forms.View.Details; + this.productsListView.SelectedIndexChanged += new System.EventHandler(this.productsListView_SelectedIndexChanged); + // + // productNameHeader + // + this.productNameHeader.Text = "Name"; + // + // productVersionHeader + // + this.productVersionHeader.Text = "Version"; + // + // productLargeImageList + // + this.productLargeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.productLargeImageList.ImageSize = new System.Drawing.Size(32, 32); + this.productLargeImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // productImageList + // + this.productImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.productImageList.ImageSize = new System.Drawing.Size(16, 16); + this.productImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // productsGroupBox + // + this.productsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsGroupBox.Controls.Add(this.showDetailsButton); + this.productsGroupBox.Controls.Add(this.showLargeIconsButton); + this.productsGroupBox.Controls.Add(this.installProductsButton); + this.productsGroupBox.Controls.Add(this.refreshButton); + this.productsGroupBox.Controls.Add(this.productsListView); + this.productsGroupBox.Location = new System.Drawing.Point(0, 0); + this.productsGroupBox.Name = "productsGroupBox"; + this.productsGroupBox.Size = new System.Drawing.Size(252, 558); + this.productsGroupBox.TabIndex = 19; + this.productsGroupBox.TabStop = false; + this.productsGroupBox.Text = "Products"; + // + // showDetailsButton + // + this.showDetailsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.showDetailsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showDetailsButton.Checked = true; + this.showDetailsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowDetails; + this.showDetailsButton.Location = new System.Drawing.Point(221, 19); + this.showDetailsButton.Name = "showDetailsButton"; + this.showDetailsButton.Size = new System.Drawing.Size(25, 25); + this.showDetailsButton.TabIndex = 22; + this.showDetailsButton.TabStop = true; + this.toolTip.SetToolTip(this.showDetailsButton, "Show Details"); + this.showDetailsButton.UseVisualStyleBackColor = true; + this.showDetailsButton.CheckedChanged += new System.EventHandler(this.showDetailsButton_CheckedChanged); + // + // showLargeIconsButton + // + this.showLargeIconsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.showLargeIconsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showLargeIconsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowIcons; + this.showLargeIconsButton.Location = new System.Drawing.Point(190, 19); + this.showLargeIconsButton.Name = "showLargeIconsButton"; + this.showLargeIconsButton.Size = new System.Drawing.Size(25, 25); + this.showLargeIconsButton.TabIndex = 21; + this.toolTip.SetToolTip(this.showLargeIconsButton, "Show Large Icons"); + this.showLargeIconsButton.UseVisualStyleBackColor = true; + this.showLargeIconsButton.CheckedChanged += new System.EventHandler(this.showLargeIconsButton_CheckedChanged); + // + // installProductsButton + // + this.installProductsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.installProductsButton.Enabled = false; + this.installProductsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Install; + this.installProductsButton.Location = new System.Drawing.Point(6, 527); + this.installProductsButton.Name = "installProductsButton"; + this.installProductsButton.Size = new System.Drawing.Size(146, 25); + this.installProductsButton.TabIndex = 20; + this.installProductsButton.Text = "Install Selected Product"; + this.installProductsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.installProductsButton, "Install all plugins for the selected product"); + this.installProductsButton.UseVisualStyleBackColor = true; + this.installProductsButton.Click += new System.EventHandler(this.installProductsButton_Click); + // + // refreshButton + // + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.refreshButton.Location = new System.Drawing.Point(6, 19); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(72, 25); + this.refreshButton.TabIndex = 16; + this.refreshButton.Text = "Refresh"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Refresh available products from HeuristicLab deployment service"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshRemoteButton_Click); + // + // pluginsGroupBox + // + this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsGroupBox.Controls.Add(this.pluginsListView); + this.pluginsGroupBox.Controls.Add(this.installPluginsButton); + this.pluginsGroupBox.Location = new System.Drawing.Point(-1, 0); + this.pluginsGroupBox.Name = "pluginsGroupBox"; + this.pluginsGroupBox.Size = new System.Drawing.Size(278, 558); + this.pluginsGroupBox.TabIndex = 20; + this.pluginsGroupBox.TabStop = false; + this.pluginsGroupBox.Text = "Plugins"; + // + // installPluginsButton + // + this.installPluginsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.installPluginsButton.Enabled = false; + this.installPluginsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Install; + this.installPluginsButton.Location = new System.Drawing.Point(6, 527); + this.installPluginsButton.Name = "installPluginsButton"; + this.installPluginsButton.Size = new System.Drawing.Size(140, 25); + this.installPluginsButton.TabIndex = 17; + this.installPluginsButton.Text = "Install Selected Plugins"; + this.installPluginsButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.installPluginsButton, "Install only checked plugins"); + this.installPluginsButton.UseVisualStyleBackColor = true; + this.installPluginsButton.Click += new System.EventHandler(this.installPluginsButton_Click); + // + // splitContainer + // + this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.splitContainer.Location = new System.Drawing.Point(0, 0); + this.splitContainer.Name = "splitContainer"; + // + // splitContainer.Panel1 + // + this.splitContainer.Panel1.Controls.Add(this.productsGroupBox); + // + // splitContainer.Panel2 + // + this.splitContainer.Panel2.Controls.Add(this.pluginsGroupBox); + this.splitContainer.Size = new System.Drawing.Size(533, 558); + this.splitContainer.SplitterDistance = 252; + this.splitContainer.TabIndex = 21; + // + // RemotePluginInstallerView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.splitContainer); + this.Name = "RemotePluginInstallerView"; + this.Size = new System.Drawing.Size(533, 558); + this.productsGroupBox.ResumeLayout(false); + this.pluginsGroupBox.ResumeLayout(false); + this.splitContainer.Panel1.ResumeLayout(false); + this.splitContainer.Panel2.ResumeLayout(false); + this.splitContainer.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private MultiSelectListView pluginsListView; + private System.Windows.Forms.ColumnHeader nameHeader; + private System.Windows.Forms.ColumnHeader versionHeader; + private System.Windows.Forms.ColumnHeader descriptionHeader; + private System.Windows.Forms.Button refreshButton; + private System.Windows.Forms.Button installPluginsButton; + private System.Windows.Forms.ListView productsListView; + private System.Windows.Forms.GroupBox productsGroupBox; + private System.Windows.Forms.GroupBox pluginsGroupBox; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.Button installProductsButton; + private System.Windows.Forms.ColumnHeader productNameHeader; + private System.Windows.Forms.ColumnHeader productVersionHeader; + private System.Windows.Forms.ImageList productImageList; + private System.Windows.Forms.ImageList pluginsImageList; + private System.Windows.Forms.RadioButton showDetailsButton; + private System.Windows.Forms.RadioButton showLargeIconsButton; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ImageList productLargeImageList; + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/AvailablePluginsView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/AvailablePluginsView.cs new file mode 100644 index 0000000000..e820b25d1e --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/AvailablePluginsView.cs @@ -0,0 +1,329 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class AvailablePluginsView : InstallationManagerControl { + private class RefreshBackgroundWorkerResult { + public IEnumerable RemotePlugins { get; set; } + public IEnumerable RemoteProducts { get; set; } + } + private class UpdateOrInstallPluginsBackgroundWorkerArgument { + public IEnumerable PluginsToUpdate { get; set; } + public IEnumerable PluginsToInstall { get; set; } + } + private const string PluginDiscoveryMessage = "Looking for new plugins..."; + private BackgroundWorker refreshServerPluginsBackgroundWorker; + private BackgroundWorker updateOrInstallPluginsBackgroundWorker; + + private IEnumerable products; + private IEnumerable plugins; + + private IEnumerable CheckedPlugins { + get { + return (from item in pluginsListView.Items.OfType() + where item.Checked + let plugin = item.Tag as IPluginDescription + where plugin != null + select plugin).ToList(); + } + } + + private InstallationManager installationManager; + public InstallationManager InstallationManager { + get { return installationManager; } + set { installationManager = value; } + } + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { pluginManager = value; } + } + public AvailablePluginsView() { + InitializeComponent(); + productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); + productLargeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); + pluginsImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + refreshServerPluginsBackgroundWorker = new BackgroundWorker(); + refreshServerPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(refreshServerPluginsBackgroundWorker_DoWork); + refreshServerPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshServerPluginsBackgroundWorker_RunWorkerCompleted); + + updateOrInstallPluginsBackgroundWorker = new BackgroundWorker(); + updateOrInstallPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updateOrInstallPluginsBackgroundWorker_DoWork); + updateOrInstallPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted); + } + + + #region event handlers for refresh server plugins background worker + void refreshServerPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + RefreshBackgroundWorkerResult refreshResult = (RefreshBackgroundWorkerResult)e.Result; + products = refreshResult.RemoteProducts; + plugins = refreshResult.RemotePlugins; + UpdateControl(); + } + StatusView.UnlockUI(); + StatusView.RemoveMessage(PluginDiscoveryMessage); + StatusView.HideProgressIndicator(); + } + + void refreshServerPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + RefreshBackgroundWorkerResult result = new RefreshBackgroundWorkerResult(); + result.RemotePlugins = installationManager.GetRemotePluginList(); + result.RemoteProducts = installationManager.GetRemoteProductList(); + e.Result = result; + } + #endregion + #region event handlers for plugin update background worker + void updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + UpdateControl(); + } + StatusView.UnlockUI(); + StatusView.HideProgressIndicator(); + } + + void updateOrInstallPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + UpdateOrInstallPluginsBackgroundWorkerArgument info = (UpdateOrInstallPluginsBackgroundWorkerArgument)e.Argument; + bool cancelled = false; + if (info.PluginsToInstall.Count() > 0) + installationManager.Install(info.PluginsToInstall, out cancelled); + if (info.PluginsToUpdate.Count() > 0) + installationManager.Update(info.PluginsToUpdate, out cancelled); + + if (!cancelled && (info.PluginsToInstall.Count() > 0 || info.PluginsToUpdate.Count() > 0)) + pluginManager.DiscoverAndCheckPlugins(); + } + #endregion + + + #region button events + private void refreshRemoteButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(PluginDiscoveryMessage); + refreshServerPluginsBackgroundWorker.RunWorkerAsync(); + } + private void installPluginsButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in CheckedPlugins + let matchingLocalPlugins = from localPlugin in pluginManager.Plugins + where localPlugin.Name == remotePlugin.Name + where localPlugin.Version.Major == remotePlugin.Version.Major + where localPlugin.Version.Minor == remotePlugin.Version.Minor + where IsNewerThan(remotePlugin, localPlugin) + select localPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + + // otherwise install a new plugin + var pluginsToInstall = CheckedPlugins.Except(pluginsToUpdate); + + updateOrInstallInfo.PluginsToInstall = pluginsToInstall; + updateOrInstallInfo.PluginsToUpdate = pluginsToUpdate; + updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo); + } + private void installProductsButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument(); + var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from plugin in selectedProduct.Plugins + let matchingLocalPlugins = from localPlugin in pluginManager.Plugins + where localPlugin.Name == plugin.Name + where localPlugin.Version.Major == plugin.Version.Major + where localPlugin.Version.Minor == plugin.Version.Minor + where IsNewerThan(plugin, localPlugin) + select localPlugin + where matchingLocalPlugins.Count() > 0 + select plugin; + + // otherwise install a new plugin + var pluginsToInstall = selectedProduct.Plugins.Except(pluginsToUpdate); + + updateOrInstallInfo.PluginsToInstall = + pluginsToInstall + .Cast() + .ToList(); + updateOrInstallInfo.PluginsToUpdate = + pluginsToUpdate + .Cast() + .ToList(); + updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo); + } + + private void showLargeIconsButton_CheckedChanged(object sender, EventArgs e) { + productsListView.View = View.LargeIcon; + } + + private void showDetailsButton_CheckedChanged(object sender, EventArgs e) { + productsListView.View = View.Details; + } + + #endregion + + private void UpdateControl() { + // clear products view + List productItemsToDelete = new List(productsListView.Items.OfType()); + productItemsToDelete.ForEach(item => productsListView.Items.Remove(item)); + + // populate products list view + foreach (var product in products) { + var item = CreateListViewItem(product); + productsListView.Items.Add(item); + } + var allPluginsListViewItem = new ListViewItem(); + allPluginsListViewItem.Text = "All Plugins"; + allPluginsListViewItem.ImageIndex = 0; + productsListView.Items.Add(allPluginsListViewItem); + Util.ResizeColumns(productsListView.Columns.OfType()); + } + + private void UpdatePluginsList() { + pluginsListView.Items.Clear(); + + // populate plugins list + if (productsListView.SelectedItems.Count > 0) { + pluginsListView.SuppressItemCheckedEvents = true; + + var selectedItem = productsListView.SelectedItems[0]; + if (selectedItem.Text == "All Plugins") { + foreach (var plugin in plugins) { + var item = CreateListViewItem(plugin); + pluginsListView.Items.Add(item); + } + } else { + var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; + foreach (var plugin in selectedProduct.Plugins) { + var item = CreateListViewItem(plugin); + pluginsListView.Items.Add(item); + } + } + + Util.ResizeColumns(pluginsListView.Columns.OfType()); + pluginsListView.SuppressItemCheckedEvents = false; + } + } + + private ListViewItem CreateListViewItem(DeploymentService.ProductDescription product) { + ListViewItem item = new ListViewItem(new string[] { product.Name, product.Version.ToString() }); + item.Tag = product; + item.ImageIndex = 0; + return item; + } + + private ListViewItem CreateListViewItem(IPluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + return item; + } + + #region products list view events + private void productsListView_SelectedIndexChanged(object sender, EventArgs e) { + UpdatePluginsList(); + installProductsButton.Enabled = (productsListView.SelectedItems.Count > 0 && + productsListView.SelectedItems[0].Text != "All Plugins"); + } + #endregion + + #region item checked event handler + private void remotePluginsListView_ItemChecked(object sender, ItemCheckedEventArgs e) { + foreach (ListViewItem item in pluginsListView.SelectedItems) { + IPluginDescription plugin = (IPluginDescription)item.Tag; + if (e.Item.Checked) + HandlePluginChecked(plugin); + else + HandlePluginUnchecked(plugin); + } + installPluginsButton.Enabled = pluginsListView.CheckedItems.Count > 0; + } + + private void HandlePluginUnchecked(IPluginDescription plugin) { + // also uncheck all dependent plugins + List modifiedItems = new List(); + modifiedItems.AddRange(FindItemsForPlugin(plugin)); + var dependentPlugins = Util.GetAllDependents(plugin, plugins); + foreach (var dependentPlugin in dependentPlugins) { + // there can be multiple entries for a single plugin in different groups + foreach (var item in FindItemsForPlugin(dependentPlugin)) { + if (item != null && item.Checked) { + if (!modifiedItems.Contains(item)) + modifiedItems.Add(item); + } + } + } + pluginsListView.UncheckItems(modifiedItems); + } + + private void HandlePluginChecked(IPluginDescription plugin) { + // also check all dependencies + List modifiedItems = new List(); + modifiedItems.AddRange(FindItemsForPlugin(plugin)); + foreach (var dep in Util.GetAllDependencies(plugin)) { + // there can be multiple entries for a single plugin in different groups + foreach (ListViewItem item in FindItemsForPlugin(dep)) { + if (item != null && !item.Checked) { + if (!modifiedItems.Contains(item)) + modifiedItems.Add(item); + } + } + } + pluginsListView.CheckItems(modifiedItems); + } + + #endregion + + #region helper methods + private IEnumerable FindItemsForPlugin(IPluginDescription plugin) { + return (from item in pluginsListView.Items.OfType() + let otherPlugin = item.Tag as IPluginDescription + where otherPlugin != null && otherPlugin.Name == plugin.Name && otherPlugin.Version == plugin.Version + select item); + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + #endregion + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/BasicUpdateView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/BasicUpdateView.Designer.cs new file mode 100644 index 0000000000..5ca1f52a62 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/BasicUpdateView.Designer.cs @@ -0,0 +1,82 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class BasicUpdateView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.updateAndInstallButton = new System.Windows.Forms.Button(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.SuspendLayout(); + // + // updateAndInstallButton + // + this.updateAndInstallButton.Anchor = System.Windows.Forms.AnchorStyles.None; + this.updateAndInstallButton.Image = HeuristicLab.PluginInfrastructure.Resources.Internet; + this.updateAndInstallButton.Location = new System.Drawing.Point(3, 2); + this.updateAndInstallButton.Name = "updateAndInstallButton"; + this.updateAndInstallButton.Size = new System.Drawing.Size(155, 50); + this.updateAndInstallButton.TabIndex = 0; + this.updateAndInstallButton.Text = "Find and Install Updates"; + this.updateAndInstallButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText; + this.toolTip.SetToolTip(this.updateAndInstallButton, "Find, download and install updates for all installed plugins."); + this.updateAndInstallButton.UseVisualStyleBackColor = true; + this.updateAndInstallButton.Click += new System.EventHandler(this.updateAndInstallButton_Click); + // + // BasicUpdateView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.updateAndInstallButton); + this.Name = "BasicUpdateView"; + this.Size = new System.Drawing.Size(163, 55); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button updateAndInstallButton; + private System.Windows.Forms.ToolTip toolTip; + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/BasicUpdateView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/BasicUpdateView.cs new file mode 100644 index 0000000000..7684c0cb4b --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/BasicUpdateView.cs @@ -0,0 +1,108 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class BasicUpdateView : InstallationManagerControl { + private BackgroundWorker updatePluginsBackgroundWorker; + private const string CheckingPluginsMessage = "Checking for updated plugins..."; + private const string NoUpdatesAvailableMessage = "No updates available."; + + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { pluginManager = value; } + } + + private InstallationManager installationManager; + public InstallationManager InstallationManager { + get { return installationManager; } + set { installationManager = value; } + } + + public BasicUpdateView() { + InitializeComponent(); + updatePluginsBackgroundWorker = new BackgroundWorker(); + updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); + updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); + } + + #region event handlers for update plugins backgroundworker + void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else if (e.Cancelled) { + StatusView.ShowMessage(NoUpdatesAvailableMessage); + } + StatusView.RemoveMessage(CheckingPluginsMessage); + StatusView.HideProgressIndicator(); + StatusView.UnlockUI(); + } + + void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable installedPlugins = (IEnumerable)e.Argument; + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in installedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + if (pluginsToUpdate.Count() > 0) { + bool cancelled; + installationManager.Update(pluginsToUpdate, out cancelled); + if (!cancelled) + pluginManager.DiscoverAndCheckPlugins(); + e.Cancel = false; + } else { + e.Cancel = true; + } + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + + #endregion + private void updateAndInstallButton_Click(object sender, EventArgs e) { + var installedPlugins = pluginManager.Plugins.OfType().ToList(); + updatePluginsBackgroundWorker.RunWorkerAsync(installedPlugins); + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.RemoveMessage(NoUpdatesAvailableMessage); + StatusView.ShowMessage(CheckingPluginsMessage); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConfirmationDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConfirmationDialog.Designer.cs new file mode 100644 index 0000000000..dee3b47326 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConfirmationDialog.Designer.cs @@ -0,0 +1,163 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class ConfirmationDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfirmationDialog)); + this.informationTextBox = new System.Windows.Forms.RichTextBox(); + this.messageLabel = new System.Windows.Forms.Label(); + this.okButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.icon = new System.Windows.Forms.PictureBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + ((System.ComponentModel.ISupportInitialize)(this.icon)).BeginInit(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // informationTextBox + // + this.informationTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.informationTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.informationTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.informationTextBox.Location = new System.Drawing.Point(105, 46); + this.informationTextBox.Name = "informationTextBox"; + this.informationTextBox.ReadOnly = true; + this.informationTextBox.Size = new System.Drawing.Size(301, 181); + this.informationTextBox.TabIndex = 0; + this.informationTextBox.Text = ""; + // + // messageLabel + // + this.messageLabel.AutoSize = true; + this.messageLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.messageLabel.Location = new System.Drawing.Point(13, 13); + this.messageLabel.Name = "messageLabel"; + this.messageLabel.Size = new System.Drawing.Size(0, 13); + this.messageLabel.TabIndex = 1; + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.Location = new System.Drawing.Point(250, 14); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 2; + this.okButton.Text = "&OK"; + this.toolTip.SetToolTip(this.okButton, "Confirm Action"); + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(331, 14); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 3; + this.cancelButton.Text = "&Cancel"; + this.toolTip.SetToolTip(this.cancelButton, "Cancel Action"); + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // icon + // + this.icon.Location = new System.Drawing.Point(31, 66); + this.icon.Name = "icon"; + this.icon.Size = new System.Drawing.Size(47, 50); + this.icon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.icon.TabIndex = 4; + this.icon.TabStop = false; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.Control; + this.panel1.Controls.Add(this.okButton); + this.panel1.Controls.Add(this.cancelButton); + this.panel1.Location = new System.Drawing.Point(0, 233); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(418, 50); + this.panel1.TabIndex = 6; + // + // ConfirmationDialog + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.SystemColors.HighlightText; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(418, 282); + this.Controls.Add(this.panel1); + this.Controls.Add(this.icon); + this.Controls.Add(this.messageLabel); + this.Controls.Add(this.informationTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ConfirmationDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "ConfirmationDialog"; + ((System.ComponentModel.ISupportInitialize)(this.icon)).EndInit(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox informationTextBox; + private System.Windows.Forms.Label messageLabel; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.PictureBox icon; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolTip toolTip; + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConfirmationDialog.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConfirmationDialog.cs new file mode 100644 index 0000000000..276e294157 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConfirmationDialog.cs @@ -0,0 +1,50 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class ConfirmationDialog : Form { + public ConfirmationDialog() + : base() { + InitializeComponent(); + icon.Image = System.Drawing.SystemIcons.Exclamation.ToBitmap(); + DialogResult = DialogResult.Cancel; + } + + public ConfirmationDialog(string caption, string message, string text) + : this() { + this.Text = caption; + messageLabel.Text = message; + informationTextBox.Text = text; + } + + private void okButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.OK; + this.Close(); + } + + private void cancelButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.Cancel; + this.Close(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConnectionSetupView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConnectionSetupView.Designer.cs new file mode 100644 index 0000000000..fddfbb42b3 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConnectionSetupView.Designer.cs @@ -0,0 +1,212 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class ConnectionSetupView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConnectionSetupView)); + this.urlTextBox = new System.Windows.Forms.TextBox(); + this.urlLabel = new System.Windows.Forms.Label(); + this.userLabel = new System.Windows.Forms.Label(); + this.userTextBox = new System.Windows.Forms.TextBox(); + this.passwordLabel = new System.Windows.Forms.Label(); + this.passwordTextBox = new System.Windows.Forms.TextBox(); + this.applyButton = new System.Windows.Forms.Button(); + this.savePasswordCheckbox = new System.Windows.Forms.CheckBox(); + this.cancelButton = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // urlTextBox + // + this.urlTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.urlTextBox.Location = new System.Drawing.Point(66, 15); + this.urlTextBox.Name = "urlTextBox"; + this.urlTextBox.Size = new System.Drawing.Size(410, 20); + this.urlTextBox.TabIndex = 0; + this.toolTip.SetToolTip(this.urlTextBox, "URL of HeuristicLab Plugin Deployment Service"); + // + // urlLabel + // + this.urlLabel.AutoSize = true; + this.urlLabel.Location = new System.Drawing.Point(12, 18); + this.urlLabel.Name = "urlLabel"; + this.urlLabel.Size = new System.Drawing.Size(48, 13); + this.urlLabel.TabIndex = 1; + this.urlLabel.Text = "&Address:"; + // + // userLabel + // + this.userLabel.AutoSize = true; + this.userLabel.Location = new System.Drawing.Point(6, 22); + this.userLabel.Name = "userLabel"; + this.userLabel.Size = new System.Drawing.Size(58, 13); + this.userLabel.TabIndex = 3; + this.userLabel.Text = "&Username:"; + // + // userTextBox + // + this.userTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.userTextBox.Location = new System.Drawing.Point(94, 19); + this.userTextBox.Name = "userTextBox"; + this.userTextBox.Size = new System.Drawing.Size(155, 20); + this.userTextBox.TabIndex = 0; + this.toolTip.SetToolTip(this.userTextBox, "Username used to connect to the HeuristicLab plugin deployment service"); + // + // passwordLabel + // + this.passwordLabel.AutoSize = true; + this.passwordLabel.Location = new System.Drawing.Point(6, 48); + this.passwordLabel.Name = "passwordLabel"; + this.passwordLabel.Size = new System.Drawing.Size(56, 13); + this.passwordLabel.TabIndex = 5; + this.passwordLabel.Text = "&Password:"; + // + // passwordTextBox + // + this.passwordTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.passwordTextBox.Location = new System.Drawing.Point(94, 45); + this.passwordTextBox.Name = "passwordTextBox"; + this.passwordTextBox.Size = new System.Drawing.Size(155, 20); + this.passwordTextBox.TabIndex = 1; + this.toolTip.SetToolTip(this.passwordTextBox, "Passwort used to connect to the HeuristicLab plugin deployment service"); + this.passwordTextBox.UseSystemPasswordChar = true; + // + // applyButton + // + this.applyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.applyButton.Location = new System.Drawing.Point(320, 148); + this.applyButton.Name = "applyButton"; + this.applyButton.Size = new System.Drawing.Size(75, 23); + this.applyButton.TabIndex = 2; + this.applyButton.Text = "&OK"; + this.toolTip.SetToolTip(this.applyButton, "Apply and save changes"); + this.applyButton.UseVisualStyleBackColor = true; + this.applyButton.Click += new System.EventHandler(this.applyButton_Click); + // + // savePasswordCheckbox + // + this.savePasswordCheckbox.AutoSize = true; + this.savePasswordCheckbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.savePasswordCheckbox.Location = new System.Drawing.Point(6, 71); + this.savePasswordCheckbox.Name = "savePasswordCheckbox"; + this.savePasswordCheckbox.Size = new System.Drawing.Size(103, 17); + this.savePasswordCheckbox.TabIndex = 2; + this.savePasswordCheckbox.Text = "&Save Password:"; + this.toolTip.SetToolTip(this.savePasswordCheckbox, "Check to save the user credentials to disk"); + this.savePasswordCheckbox.UseVisualStyleBackColor = true; + // + // cancelButton + // + this.cancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point(401, 148); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 3; + this.cancelButton.Text = "&Cancel"; + this.toolTip.SetToolTip(this.cancelButton, "Cancel and revert changes"); + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.userTextBox); + this.groupBox1.Controls.Add(this.userLabel); + this.groupBox1.Controls.Add(this.savePasswordCheckbox); + this.groupBox1.Controls.Add(this.passwordTextBox); + this.groupBox1.Controls.Add(this.passwordLabel); + this.groupBox1.Location = new System.Drawing.Point(12, 41); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(255, 96); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "User Credentials"; + // + // ConnectionSetupView + // + this.AcceptButton = this.applyButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(488, 183); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.applyButton); + this.Controls.Add(this.urlLabel); + this.Controls.Add(this.urlTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ConnectionSetupView"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Edit Connection Settings"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox urlTextBox; + private System.Windows.Forms.Label urlLabel; + private System.Windows.Forms.Label userLabel; + private System.Windows.Forms.TextBox userTextBox; + private System.Windows.Forms.Label passwordLabel; + private System.Windows.Forms.TextBox passwordTextBox; + private System.Windows.Forms.Button applyButton; + private System.Windows.Forms.CheckBox savePasswordCheckbox; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ToolTip toolTip; + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConnectionSetupView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConnectionSetupView.cs new file mode 100644 index 0000000000..47924a9481 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/ConnectionSetupView.cs @@ -0,0 +1,58 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class ConnectionSetupView : Form { + public ConnectionSetupView() { + InitializeComponent(); + + urlTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation; + userTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; + passwordTextBox.Text = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; + savePasswordCheckbox.Checked = !string.IsNullOrEmpty(passwordTextBox.Text); + } + + private void applyButton_Click(object sender, EventArgs e) { + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation = urlTextBox.Text; + if (!savePasswordCheckbox.Checked) { + // make sure we don't save username or password + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = string.Empty; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = string.Empty; + // save + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.Save(); + // set user name and password for current process + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = userTextBox.Text; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = passwordTextBox.Text; + } else { + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName = userTextBox.Text; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword = passwordTextBox.Text; + HeuristicLab.PluginInfrastructure.Properties.Settings.Default.Save(); + } + Close(); + } + + private void cancelButton_Click(object sender, EventArgs e) { + Close(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs new file mode 100644 index 0000000000..69b32a50b0 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/AdminServiceClientFactory.cs @@ -0,0 +1,63 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + /// + /// Factory class to generate administration service client instances for the deployment service. + /// + public static class AdminServiceClientFactory { + private static byte[] serverCrtData; + + /// + /// static constructor loads the embedded service certificate + /// + static AdminServiceClientFactory() { + var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer"); + serverCrtData = new byte[stream.Length]; + stream.Read(serverCrtData, 0, serverCrtData.Length); + } + + /// + /// Factory method to create new administration service clients for the deployment service. + /// Sets the connection string and user credentials from values provided in settings. + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationnAdministrationAddress + /// + /// + /// A new instance of an adimistration service client + public static AdminServiceClient CreateClient() { + var client = new AdminServiceClient(); + client.ClientCredentials.UserName.UserName = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; + client.ClientCredentials.UserName.Password = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; + client.Endpoint.Address = new EndpointAddress(HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationAdministrationAddress); + client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom; + client.ClientCredentials.ServiceCertificate.Authentication.CustomCertificateValidator = + new DeploymentServerCertificateValidator(new X509Certificate2(serverCrtData)); + + return client; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs new file mode 100644 index 0000000000..22b729b685 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/DeploymentServerCertificateValidator.cs @@ -0,0 +1,49 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.IdentityModel.Selectors; +using System.IdentityModel.Tokens; +using System.Security.Cryptography.X509Certificates; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + internal class DeploymentServerCertificateValidator : X509CertificateValidator { + private X509Certificate2 allowedCertificate; + public DeploymentServerCertificateValidator(X509Certificate2 allowedCertificate) { + if (allowedCertificate == null) { + throw new ArgumentNullException("allowedCertificate"); + } + + this.allowedCertificate = allowedCertificate; + } + public override void Validate(X509Certificate2 certificate) { + // Check that there is a certificate. + if (certificate == null) { + throw new ArgumentNullException("certificate"); + } + + // Check that the certificate issuer matches the configured issuer + if (!allowedCertificate.Equals(certificate)) { + throw new SecurityTokenValidationException("Server certificate doesn't match."); + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd new file mode 100644 index 0000000000..95bd1a5187 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/GenerateServiceClients.cmd @@ -0,0 +1,49 @@ +@ECHO OFF + +SET HOST= +SET GENERATECONFIG= + +ECHO. +ECHO ******************************************************************************************* + +SET /P HOST=Which host should be used? [services.heuristiclab.com]: +IF "%HOST%"=="" SET HOST=services.heuristiclab.com + +SET /P GENERATECONFIG=Would you like to generate the configuration file? [y]: +IF "%GENERATECONFIG%"=="" SET GENERATECONFIG=y + +SET ARGS=http://%HOST%/Deployment-3.3/UpdateService.svc?wsdl http://%HOST%/Deployment-3.3/AdminService.svc?wsdl ^ +/out:ServiceClients ^ +/namespace:*,HeuristicLab.PluginInfrastructure.Advanced.DeploymentService ^ +/targetClientVersion:Version35 ^ +/syncOnly + +IF "%GENERATECONFIG%"=="y" ( + SET ARGS=%ARGS% /config:..\..\app.config /mergeConfig +) ELSE ( + SET ARGS=%ARGS% /noConfig +) + +ECHO. +ECHO Generating UpdateService and AdminService clients +ECHO. + +SETLOCAL ENABLEDELAYEDEXPANSION +svcutil.exe %ARGS% +ENDLOCAL + +ECHO. +ECHO --------------------------------------------------------------------------------------- +ECHO !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! +ECHO. +ECHO Following modifications have to be done manually: +ECHO * Change endpoint identity in app.config from "" to "", e.g. "" +ECHO. +ECHO !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! ATTENTION !!! +ECHO --------------------------------------------------------------------------------------- +ECHO. +ECHO Generation of UpdateService and AdminService clients finished. +ECHO ******************************************************************************************* +ECHO. + +PAUSE diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/PluginDescription.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/PluginDescription.cs new file mode 100644 index 0000000000..fcd767a3f4 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/PluginDescription.cs @@ -0,0 +1,107 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + // extension of auto-generated DataContract class PluginDescription + public partial class PluginDescription : IPluginDescription { + /// + /// Initializes an new instance of + /// with no dependencies, empty contact details and empty license text. + /// + /// Name of the plugin + /// Version of the plugin + public PluginDescription(string name, Version version) : this(name, version, new List()) { } + /// + /// Initializes a new instance of + /// with empty contact details and empty license text. + /// + /// Name of the plugin + /// Version of the plugin + /// Enumerable of dependencies of the plugin + public PluginDescription(string name, Version version, IEnumerable dependencies) + : this(name, version, dependencies, string.Empty, string.Empty, string.Empty) { + } + + /// + /// Initializes a new instance of . + /// + /// Name of the plugin + /// Version of the plugin + /// Enumerable of dependencies of the plugin + /// Name of the contact person for the plugin + /// E-mail of the contact person for the plugin + /// License text for the plugin + public PluginDescription(string name, Version version, IEnumerable dependencies, string contactName, string contactEmail, string licenseText) { + this.Name = name; + this.Version = version; + this.Dependencies = dependencies.ToArray(); + this.LicenseText = licenseText; + } + + #region IPluginDescription Members + /// + /// Gets the description of the plugin. Always string.Empty. + /// + public string Description { + get { return string.Empty; } + } + + /// + /// Gets an enumerable of dependencies of the plugin + /// + IEnumerable IPluginDescription.Dependencies { + get { + return Dependencies; + } + } + + /// + /// Gets and enumerable of files that are part of this pluing. Always empty. + /// + public IEnumerable Files { + get { return Enumerable.Empty(); } + } + + #endregion + + /// + /// ToString override + /// + /// String representation of the PluginDescription (name + version) + public override string ToString() { + return Name + " " + Version; + } + + public override bool Equals(object obj) { + PluginDescription other = obj as PluginDescription; + if (other == null) return false; + else return other.Name == this.Name && other.Version == this.Version; + } + + public override int GetHashCode() { + return Name.GetHashCode() + Version.GetHashCode(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/ProductDescription.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/ProductDescription.cs new file mode 100644 index 0000000000..c0ea233fc4 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/ProductDescription.cs @@ -0,0 +1,54 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + // extension of auto-generated DataContract class ProductDescription + /// + /// Product description as provided by the deployment service. + /// A product has a name, a version and a list of plugins that are part of the product. + /// + public partial class ProductDescription { + /// + /// Initializes a new instance of + /// + /// Name of the product + /// Version of the product + public ProductDescription(string name, Version version) + : this(name, version, new List()) { + } + + /// + /// Initializes a new instance of + /// + /// Name of the product + /// Version of the product + /// Enumerable of plugins of the product + public ProductDescription(string name, Version version, IEnumerable plugins) { + this.Name = name; + this.Version = version; + this.Plugins = plugins.ToArray(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/ServiceClients.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/ServiceClients.cs new file mode 100644 index 0000000000..eeba4da2d3 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/ServiceClients.cs @@ -0,0 +1,322 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService +{ + using System.Runtime.Serialization; + + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="PluginDescription", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Deployment", IsReference=true)] + public partial class PluginDescription : object, System.Runtime.Serialization.IExtensibleDataObject + { + + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private string ContactEmailField; + + private string ContactNameField; + + private HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] DependenciesField; + + private string LicenseTextField; + + private string NameField; + + private System.Version VersionField; + + public System.Runtime.Serialization.ExtensionDataObject ExtensionData + { + get + { + return this.extensionDataField; + } + set + { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string ContactEmail + { + get + { + return this.ContactEmailField; + } + set + { + this.ContactEmailField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string ContactName + { + get + { + return this.ContactNameField; + } + set + { + this.ContactNameField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] Dependencies + { + get + { + return this.DependenciesField; + } + set + { + this.DependenciesField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string LicenseText + { + get + { + return this.LicenseTextField; + } + set + { + this.LicenseTextField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Name + { + get + { + return this.NameField; + } + set + { + this.NameField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Version Version + { + get + { + return this.VersionField; + } + set + { + this.VersionField = value; + } + } + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] + [System.Runtime.Serialization.DataContractAttribute(Name="ProductDescription", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.Deployment")] + public partial class ProductDescription : object, System.Runtime.Serialization.IExtensibleDataObject + { + + private System.Runtime.Serialization.ExtensionDataObject extensionDataField; + + private string NameField; + + private HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] PluginsField; + + private System.Version VersionField; + + public System.Runtime.Serialization.ExtensionDataObject ExtensionData + { + get + { + return this.extensionDataField; + } + set + { + this.extensionDataField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public string Name + { + get + { + return this.NameField; + } + set + { + this.NameField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] Plugins + { + get + { + return this.PluginsField; + } + set + { + this.PluginsField = value; + } + } + + [System.Runtime.Serialization.DataMemberAttribute()] + public System.Version Version + { + get + { + return this.VersionField; + } + set + { + this.VersionField = value; + } + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService")] + public interface IUpdateService + { + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetPlugin", ReplyAction="http://tempuri.org/IUpdateService/GetPluginResponse")] + byte[] GetPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription description); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetProducts", ReplyAction="http://tempuri.org/IUpdateService/GetProductsResponse")] + HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[] GetProducts(); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IUpdateService/GetPlugins", ReplyAction="http://tempuri.org/IUpdateService/GetPluginsResponse")] + HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] GetPlugins(); + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface IUpdateServiceChannel : HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService, System.ServiceModel.IClientChannel + { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class UpdateServiceClient : System.ServiceModel.ClientBase, HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IUpdateService + { + + public UpdateServiceClient() + { + } + + public UpdateServiceClient(string endpointConfigurationName) : + base(endpointConfigurationName) + { + } + + public UpdateServiceClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public UpdateServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public UpdateServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) + { + } + + public byte[] GetPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription description) + { + return base.Channel.GetPlugin(description); + } + + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[] GetProducts() + { + return base.Channel.GetProducts(); + } + + public HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription[] GetPlugins() + { + return base.Channel.GetPlugins(); + } + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService")] + public interface IAdminService + { + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeployProduct", ReplyAction="http://tempuri.org/IAdminService/DeployProductResponse")] + void DeployProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeleteProduct", ReplyAction="http://tempuri.org/IAdminService/DeleteProductResponse")] + void DeleteProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product); + + [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdminService/DeployPlugin", ReplyAction="http://tempuri.org/IAdminService/DeployPluginResponse")] + void DeployPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription plugin, byte[] zipFile); + } + + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public interface IAdminServiceChannel : HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService, System.ServiceModel.IClientChannel + { + } + + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")] + public partial class AdminServiceClient : System.ServiceModel.ClientBase, HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.IAdminService + { + + public AdminServiceClient() + { + } + + public AdminServiceClient(string endpointConfigurationName) : + base(endpointConfigurationName) + { + } + + public AdminServiceClient(string endpointConfigurationName, string remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public AdminServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : + base(endpointConfigurationName, remoteAddress) + { + } + + public AdminServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : + base(binding, remoteAddress) + { + } + + public void DeployProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product) + { + base.Channel.DeployProduct(product); + } + + public void DeleteProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription product) + { + base.Channel.DeleteProduct(product); + } + + public void DeployPlugin(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.PluginDescription plugin, byte[] zipFile) + { + base.Channel.DeployPlugin(plugin, zipFile); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs new file mode 100644 index 0000000000..4e0b951092 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/UpdateServiceClientFactory.cs @@ -0,0 +1,62 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Reflection; +using System.Security.Cryptography.X509Certificates; +using System.ServiceModel; + +namespace HeuristicLab.PluginInfrastructure.Advanced.DeploymentService { + /// + /// Factory class to generate update service client instances for the deployment service. + /// + public static class UpdateServiceClientFactory { + private static byte[] serverCrtData; + + /// + /// static constructor loads the embedded service certificate + /// + static UpdateServiceClientFactory() { + var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.services.heuristiclab.com.cer"); + serverCrtData = new byte[stream.Length]; + stream.Read(serverCrtData, 0, serverCrtData.Length); + } + + /// + /// Factory method to create new update service clients for the deployment service. + /// Sets the connection string and user credentials from values provided in settings. + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword + /// HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation + /// + /// + /// A new instance of an update service client + public static UpdateServiceClient CreateClient() { + var client = new UpdateServiceClient(); + client.ClientCredentials.UserName.UserName = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationUserName; + client.ClientCredentials.UserName.Password = HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocationPassword; + client.Endpoint.Address = new EndpointAddress(HeuristicLab.PluginInfrastructure.Properties.Settings.Default.UpdateLocation); + client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.Custom; + client.ClientCredentials.ServiceCertificate.Authentication.CustomCertificateValidator = + new DeploymentServerCertificateValidator(new X509Certificate2(serverCrtData)); + return client; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/services.heuristiclab.com.cer b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/services.heuristiclab.com.cer new file mode 100644 index 0000000000..56190f6ee0 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/DeploymentService/services.heuristiclab.com.cer differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/EditProductsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/EditProductsView.Designer.cs new file mode 100644 index 0000000000..75537eafef --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/EditProductsView.Designer.cs @@ -0,0 +1,367 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class EditProductsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.refreshButton = new System.Windows.Forms.Button(); + this.uploadButton = new System.Windows.Forms.Button(); + this.splitContainer = new System.Windows.Forms.SplitContainer(); + this.productsGroupBox = new System.Windows.Forms.GroupBox(); + this.deleteProductButton = new System.Windows.Forms.Button(); + this.newProductButton = new System.Windows.Forms.Button(); + this.productsListView = new System.Windows.Forms.ListView(); + this.productNameHeader = new System.Windows.Forms.ColumnHeader(); + this.productVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.productImageList = new System.Windows.Forms.ImageList(this.components); + this.detailsGroupBox = new System.Windows.Forms.GroupBox(); + this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); + this.pluginListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginImageList = new System.Windows.Forms.ImageList(this.components); + this.versionTextBox = new System.Windows.Forms.TextBox(); + this.nameLabel = new System.Windows.Forms.Label(); + this.nameTextBox = new System.Windows.Forms.TextBox(); + this.versionLabel = new System.Windows.Forms.Label(); + this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.splitContainer.Panel1.SuspendLayout(); + this.splitContainer.Panel2.SuspendLayout(); + this.splitContainer.SuspendLayout(); + this.productsGroupBox.SuspendLayout(); + this.detailsGroupBox.SuspendLayout(); + this.pluginsGroupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); + this.SuspendLayout(); + // + // refreshButton + // + this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.refreshButton.Location = new System.Drawing.Point(6, 394); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(73, 26); + this.refreshButton.TabIndex = 1; + this.refreshButton.Text = "Refresh"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Refresh list of plugins and products from server"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); + // + // uploadButton + // + this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.uploadButton.Enabled = false; + this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.PublishToWeb; + this.uploadButton.Location = new System.Drawing.Point(85, 394); + this.uploadButton.Name = "uploadButton"; + this.uploadButton.Size = new System.Drawing.Size(120, 26); + this.uploadButton.TabIndex = 2; + this.uploadButton.Text = "Upload Products"; + this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.uploadButton, "Upload changed products to server"); + this.uploadButton.UseVisualStyleBackColor = true; + this.uploadButton.Click += new System.EventHandler(this.saveButton_Click); + // + // splitContainer + // + this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer.Location = new System.Drawing.Point(0, 0); + this.splitContainer.Name = "splitContainer"; + // + // splitContainer.Panel1 + // + this.splitContainer.Panel1.Controls.Add(this.productsGroupBox); + // + // splitContainer.Panel2 + // + this.splitContainer.Panel2.Controls.Add(this.detailsGroupBox); + this.splitContainer.Size = new System.Drawing.Size(665, 426); + this.splitContainer.SplitterDistance = 321; + this.splitContainer.TabIndex = 4; + // + // productsGroupBox + // + this.productsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsGroupBox.Controls.Add(this.deleteProductButton); + this.productsGroupBox.Controls.Add(this.uploadButton); + this.productsGroupBox.Controls.Add(this.newProductButton); + this.productsGroupBox.Controls.Add(this.productsListView); + this.productsGroupBox.Controls.Add(this.refreshButton); + this.productsGroupBox.Location = new System.Drawing.Point(0, 0); + this.productsGroupBox.Name = "productsGroupBox"; + this.productsGroupBox.Size = new System.Drawing.Size(321, 426); + this.productsGroupBox.TabIndex = 5; + this.productsGroupBox.TabStop = false; + this.productsGroupBox.Text = "Products"; + // + // deleteProductButton + // + this.deleteProductButton.Enabled = false; + this.deleteProductButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Remove; + this.deleteProductButton.Location = new System.Drawing.Point(116, 19); + this.deleteProductButton.Name = "deleteProductButton"; + this.deleteProductButton.Size = new System.Drawing.Size(104, 26); + this.deleteProductButton.TabIndex = 5; + this.deleteProductButton.Text = "Delete Product"; + this.deleteProductButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.deleteProductButton, "Deletes the selected product"); + this.deleteProductButton.UseVisualStyleBackColor = true; + this.deleteProductButton.Click += new System.EventHandler(this.deleteProductButton_Click); + // + // newProductButton + // + this.newProductButton.Enabled = false; + this.newProductButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Add; + this.newProductButton.Location = new System.Drawing.Point(6, 19); + this.newProductButton.Name = "newProductButton"; + this.newProductButton.Size = new System.Drawing.Size(104, 26); + this.newProductButton.TabIndex = 3; + this.newProductButton.Text = "Create Product"; + this.newProductButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.newProductButton, "Create a new product"); + this.newProductButton.UseVisualStyleBackColor = true; + this.newProductButton.Click += new System.EventHandler(this.newProductButton_Click); + // + // productsListView + // + this.productsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.productNameHeader, + this.productVersionHeader}); + this.productsListView.Enabled = false; + this.productsListView.FullRowSelect = true; + this.productsListView.HideSelection = false; + this.productsListView.Location = new System.Drawing.Point(6, 51); + this.productsListView.MultiSelect = false; + this.productsListView.Name = "productsListView"; + this.productsListView.Size = new System.Drawing.Size(309, 337); + this.productsListView.SmallImageList = this.productImageList; + this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.productsListView.TabIndex = 4; + this.productsListView.UseCompatibleStateImageBehavior = false; + this.productsListView.View = System.Windows.Forms.View.Details; + this.productsListView.SelectedIndexChanged += new System.EventHandler(this.productsListBox_SelectedIndexChanged); + // + // productNameHeader + // + this.productNameHeader.Text = "Name"; + this.productNameHeader.Width = 40; + // + // productVersionHeader + // + this.productVersionHeader.Text = "Version"; + this.productVersionHeader.Width = 265; + // + // productImageList + // + this.productImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.productImageList.ImageSize = new System.Drawing.Size(16, 16); + this.productImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // detailsGroupBox + // + this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.detailsGroupBox.Controls.Add(this.pluginsGroupBox); + this.detailsGroupBox.Controls.Add(this.versionTextBox); + this.detailsGroupBox.Controls.Add(this.nameLabel); + this.detailsGroupBox.Controls.Add(this.nameTextBox); + this.detailsGroupBox.Controls.Add(this.versionLabel); + this.detailsGroupBox.Enabled = false; + this.detailsGroupBox.Location = new System.Drawing.Point(0, 0); + this.detailsGroupBox.Name = "detailsGroupBox"; + this.detailsGroupBox.Size = new System.Drawing.Size(340, 426); + this.detailsGroupBox.TabIndex = 8; + this.detailsGroupBox.TabStop = false; + this.detailsGroupBox.Text = "Details"; + // + // pluginsGroupBox + // + this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsGroupBox.Controls.Add(this.pluginListView); + this.pluginsGroupBox.Location = new System.Drawing.Point(6, 71); + this.pluginsGroupBox.Name = "pluginsGroupBox"; + this.pluginsGroupBox.Size = new System.Drawing.Size(328, 349); + this.pluginsGroupBox.TabIndex = 6; + this.pluginsGroupBox.TabStop = false; + this.pluginsGroupBox.Text = "Plugins"; + // + // pluginListView + // + this.pluginListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginListView.CheckBoxes = true; + this.pluginListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameHeader, + this.pluginVersionHeader, + this.pluginDescriptionHeader}); + this.pluginListView.Location = new System.Drawing.Point(3, 16); + this.pluginListView.Name = "pluginListView"; + this.pluginListView.Size = new System.Drawing.Size(322, 330); + this.pluginListView.SmallImageList = this.pluginImageList; + this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.pluginListView.SuppressItemCheckedEvents = false; + this.pluginListView.TabIndex = 7; + this.pluginListView.UseCompatibleStateImageBehavior = false; + this.pluginListView.View = System.Windows.Forms.View.Details; + this.pluginListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listView_ItemChecked); + // + // pluginNameHeader + // + this.pluginNameHeader.Text = "Name"; + // + // pluginVersionHeader + // + this.pluginVersionHeader.Text = "Version"; + // + // pluginDescriptionHeader + // + this.pluginDescriptionHeader.Text = "Description"; + // + // pluginImageList + // + this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // versionTextBox + // + this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.versionTextBox.Location = new System.Drawing.Point(57, 45); + this.versionTextBox.Name = "versionTextBox"; + this.versionTextBox.Size = new System.Drawing.Size(243, 20); + this.versionTextBox.TabIndex = 5; + this.versionTextBox.TextChanged += new System.EventHandler(this.versionTextBox_TextChanged); + // + // nameLabel + // + this.nameLabel.AutoSize = true; + this.nameLabel.Location = new System.Drawing.Point(13, 22); + this.nameLabel.Name = "nameLabel"; + this.nameLabel.Size = new System.Drawing.Size(38, 13); + this.nameLabel.TabIndex = 2; + this.nameLabel.Text = "Name:"; + // + // nameTextBox + // + this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nameTextBox.Location = new System.Drawing.Point(57, 19); + this.nameTextBox.Name = "nameTextBox"; + this.nameTextBox.Size = new System.Drawing.Size(243, 20); + this.nameTextBox.TabIndex = 3; + this.nameTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged); + // + // versionLabel + // + this.versionLabel.AutoSize = true; + this.versionLabel.Location = new System.Drawing.Point(6, 48); + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size(45, 13); + this.versionLabel.TabIndex = 4; + this.versionLabel.Text = "Version:"; + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // ProductEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.splitContainer); + this.Name = "ProductEditor"; + this.Size = new System.Drawing.Size(665, 426); + this.splitContainer.Panel1.ResumeLayout(false); + this.splitContainer.Panel2.ResumeLayout(false); + this.splitContainer.ResumeLayout(false); + this.productsGroupBox.ResumeLayout(false); + this.detailsGroupBox.ResumeLayout(false); + this.detailsGroupBox.PerformLayout(); + this.pluginsGroupBox.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button refreshButton; + private System.Windows.Forms.Button uploadButton; + private System.Windows.Forms.Button newProductButton; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.TextBox versionTextBox; + private System.Windows.Forms.Label versionLabel; + private System.Windows.Forms.TextBox nameTextBox; + private System.Windows.Forms.Label nameLabel; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.ListView productsListView; + private System.Windows.Forms.ColumnHeader productNameHeader; + private System.Windows.Forms.ColumnHeader productVersionHeader; + private System.Windows.Forms.ImageList productImageList; + private System.Windows.Forms.ImageList pluginImageList; + private MultiSelectListView pluginListView; + private System.Windows.Forms.GroupBox productsGroupBox; + private System.Windows.Forms.GroupBox detailsGroupBox; + private System.Windows.Forms.GroupBox pluginsGroupBox; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.Button deleteProductButton; + private System.Windows.Forms.ColumnHeader pluginNameHeader; + private System.Windows.Forms.ColumnHeader pluginVersionHeader; + private System.Windows.Forms.ColumnHeader pluginDescriptionHeader; + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/EditProductsView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/EditProductsView.cs new file mode 100644 index 0000000000..4c45183450 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/EditProductsView.cs @@ -0,0 +1,455 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.ServiceModel; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class EditProductsView : InstallationManagerControl { + private const string RefreshMessage = "Downloading product and plugin information..."; + private const string UploadMessage = "Uploading product and plugin information..."; + private const string DeleteProductMessage = "Deleting product..."; + + private BackgroundWorker refreshProductsWorker; + private BackgroundWorker uploadChangedProductsWorker; + private BackgroundWorker deleteProductWorker; + + private List products; + private List plugins; + private HashSet dirtyProducts; + + public EditProductsView() { + InitializeComponent(); + + productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Setup_Install); + productImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.ArrowUp); + pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + + dirtyProducts = new HashSet(); + refreshProductsWorker = new BackgroundWorker(); + refreshProductsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshProductsWorker_RunWorkerCompleted); + refreshProductsWorker.DoWork += new DoWorkEventHandler(refreshProductsWorker_DoWork); + + uploadChangedProductsWorker = new BackgroundWorker(); + uploadChangedProductsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(uploadChangedProductsWorker_RunWorkerCompleted); + uploadChangedProductsWorker.DoWork += new DoWorkEventHandler(uploadChangedProductsWorker_DoWork); + + deleteProductWorker = new BackgroundWorker(); + deleteProductWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(deleteProductWorker_RunWorkerCompleted); + deleteProductWorker.DoWork += new DoWorkEventHandler(deleteProductWorker_DoWork); + } + + #region event handlers for delete product background worker + void deleteProductWorker_DoWork(object sender, DoWorkEventArgs e) { + var products = (IEnumerable)e.Argument; + var adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); + // upload + try { + foreach (var product in products) { + adminClient.DeleteProduct(product); + } + adminClient.Close(); + } + catch (TimeoutException) { + adminClient.Abort(); + throw; + } + catch (FaultException) { + adminClient.Abort(); + throw; + } + catch (CommunicationException) { + adminClient.Abort(); + throw; + } + // refresh + var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; + updateClient.Close(); + } + catch (TimeoutException) { + updateClient.Abort(); + throw; + } + catch (FaultException) { + updateClient.Abort(); + throw; + } + catch (CommunicationException) { + updateClient.Abort(); + throw; + } + } + + void deleteProductWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + this.products.Clear(); + this.plugins.Clear(); + } else { + this.products = new List( + (DeploymentService.ProductDescription[])((object[])e.Result)[0]); + this.plugins = new List( + (DeploymentService.PluginDescription[])((object[])e.Result)[1]); + + EnableControls(); + } + UpdateProductsList(); + dirtyProducts.Clear(); + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(DeleteProductMessage); + StatusView.UnlockUI(); + } + #endregion + + #region event handlers for upload products background worker + private void uploadChangedProductsWorker_DoWork(object sender, DoWorkEventArgs e) { + var products = (IEnumerable)e.Argument; + var adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); + // upload + try { + foreach (var product in products) { + adminClient.DeployProduct(product); + } + adminClient.Close(); + } + catch (TimeoutException) { + adminClient.Abort(); + throw; + } + catch (FaultException) { + adminClient.Abort(); + throw; + } + catch (CommunicationException) { + adminClient.Abort(); + throw; + } + // refresh + var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; + updateClient.Close(); + } + catch (TimeoutException) { + updateClient.Abort(); + throw; + } + catch (FaultException) { + updateClient.Abort(); + throw; + } + catch (CommunicationException) { + updateClient.Abort(); + throw; + } + } + + private void uploadChangedProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + this.products.Clear(); + this.plugins.Clear(); + } else { + this.products = new List( + (DeploymentService.ProductDescription[])((object[])e.Result)[0]); + this.plugins = new List( + (DeploymentService.PluginDescription[])((object[])e.Result)[1]); + + } + UpdateProductsList(); + dirtyProducts.Clear(); + EnableControls(); + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(UploadMessage); + StatusView.UnlockUI(); + } + #endregion + + #region event handlers for refresh products background worker + private void refreshProductsWorker_DoWork(object sender, DoWorkEventArgs e) { + var updateClient = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() }; + updateClient.Close(); + } + catch (TimeoutException) { + updateClient.Abort(); + throw; + } + catch (FaultException) { + updateClient.Abort(); + throw; + } + catch (CommunicationException) { + updateClient.Abort(); + throw; + } + } + + private void refreshProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + this.products.Clear(); + this.plugins.Clear(); + + } else { + this.products = new List( + (DeploymentService.ProductDescription[])((object[])e.Result)[0]); + this.plugins = new List( + (DeploymentService.PluginDescription[])((object[])e.Result)[1]); + } + UpdateProductsList(); + dirtyProducts.Clear(); + EnableControls(); + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(RefreshMessage); + StatusView.UnlockUI(); + } + #endregion + + private void UpdateProductsList() { + productsListView.SelectedItems.Clear(); + productsListView.Items.Clear(); + foreach (var prodDesc in products) { + productsListView.Items.Add(CreateListViewItem(prodDesc)); + } + Util.ResizeColumns(productsListView.Columns.OfType()); + } + + private void productsListBox_SelectedIndexChanged(object sender, EventArgs e) { + bool productSelected = productsListView.SelectedItems.Count > 0; + detailsGroupBox.Enabled = productSelected; + UpdateProductButtons(); + if (productSelected) { + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)((ListViewItem)productsListView.SelectedItems[0]).Tag; + nameTextBox.Text = activeProduct.Name; + versionTextBox.Text = activeProduct.Version.ToString(); + + // populate plugins list view + pluginListView.SuppressItemCheckedEvents = true; + foreach (var plugin in plugins.OfType()) { + pluginListView.Items.Add(CreateListViewItem(plugin)); + } + pluginListView.SuppressItemCheckedEvents = false; + foreach (var plugin in activeProduct.Plugins) { + pluginListView.CheckItems(FindItemsForPlugin(plugin)); + } + } else { + nameTextBox.Text = string.Empty; + versionTextBox.Text = string.Empty; + pluginListView.Items.Clear(); + } + Util.ResizeColumns(pluginListView.Columns.OfType()); + } + + private void UpdateProductButtons() { + uploadButton.Enabled = dirtyProducts.Count > 0; + if (productsListView.SelectedItems.Count > 0) { + var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag; + deleteProductButton.Enabled = !dirtyProducts.Contains(selectedProduct); + } else { + deleteProductButton.Enabled = false; + } + } + + + #region button event handlers + private void newProductButton_Click(object sender, EventArgs e) { + var newProduct = new DeploymentService.ProductDescription("New product", new Version("0.0.0.0")); + products.Add(newProduct); + UpdateProductsList(); + MarkProductDirty(newProduct); + } + + private void saveButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(UploadMessage); + uploadChangedProductsWorker.RunWorkerAsync(dirtyProducts); + } + private void refreshButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(RefreshMessage); + refreshProductsWorker.RunWorkerAsync(); + } + private void deleteProductButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(DeleteProductMessage); + var selectedProducts = from item in productsListView.SelectedItems.OfType() + select (DeploymentService.ProductDescription)item.Tag; + deleteProductWorker.RunWorkerAsync(selectedProducts.ToList()); + } + + #endregion + + #region textbox changed event handlers + private void nameTextBox_TextChanged(object sender, EventArgs e) { + if (productsListView.SelectedItems.Count > 0) { + ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; + if (string.IsNullOrEmpty(nameTextBox.Name)) { + errorProvider.SetError(nameTextBox, "Invalid value"); + } else { + if (activeProduct.Name != nameTextBox.Text) { + activeProduct.Name = nameTextBox.Text; + activeItem.SubItems[0].Text = activeProduct.Name; + errorProvider.SetError(nameTextBox, string.Empty); + MarkProductDirty(activeProduct); + } + } + } + } + + + private void versionTextBox_TextChanged(object sender, EventArgs e) { + if (productsListView.SelectedItems.Count > 0) { + ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; + try { + var newVersion = new Version(versionTextBox.Text); + if (activeProduct.Version != newVersion) { + activeProduct.Version = newVersion; + activeItem.SubItems[1].Text = versionTextBox.Text; + errorProvider.SetError(versionTextBox, string.Empty); + MarkProductDirty(activeProduct); + } + } + catch (OverflowException) { + errorProvider.SetError(versionTextBox, "Invalid value"); + } + + catch (ArgumentException) { + errorProvider.SetError(versionTextBox, "Invalid value"); + } + catch (FormatException) { + errorProvider.SetError(versionTextBox, "Invalid value"); + } + } + } + #endregion + + + #region plugin list view + private void OnItemChecked(ItemCheckedEventArgs e) { + ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0]; + DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag; + activeProduct.Plugins = (from item in pluginListView.CheckedItems.OfType() + select (DeploymentService.PluginDescription)item.Tag).ToArray(); + MarkProductDirty(activeProduct); + } + + private void listView_ItemChecked(object sender, ItemCheckedEventArgs e) { + List modifiedPlugins = new List(); + if (e.Item.Checked) { + foreach (ListViewItem item in pluginListView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also check all dependencies + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependencies(plugin)) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + } + pluginListView.CheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single())); + OnItemChecked(e); + } else { + foreach (ListViewItem item in pluginListView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also uncheck all dependent plugins + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependents(plugin, plugins.Cast())) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + + } + pluginListView.UncheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single())); + OnItemChecked(e); + } + } + + + #endregion + + #region helper + private void MarkProductDirty(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription activeProduct) { + if (!dirtyProducts.Contains(activeProduct)) { + dirtyProducts.Add(activeProduct); + var item = FindItemForProduct(activeProduct); + item.ImageIndex = 1; + UpdateProductButtons(); + } + } + private ListViewItem CreateListViewItem(DeploymentService.ProductDescription productDescription) { + ListViewItem item = new ListViewItem(new string[] { productDescription.Name, productDescription.Version.ToString() }); + item.Tag = productDescription; + item.ImageIndex = 0; + return item; + } + + private ListViewItem CreateListViewItem(IPluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), + string.Empty, plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + item.Checked = false; + return item; + } + + private ListViewItem FindItemForProduct(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription activeProduct) { + return (from item in productsListView.Items.OfType() + let product = item.Tag as DeploymentService.ProductDescription + where product != null + where product == activeProduct + select item).Single(); + } + private IEnumerable FindItemsForPlugin(IPluginDescription plugin) { + return from item in pluginListView.Items.OfType() + let p = item.Tag as IPluginDescription + where p.Name == plugin.Name + where p.Version == plugin.Version + select item; + } + + private void EnableControls() { + newProductButton.Enabled = true; + productsListView.Enabled = true; + } + #endregion + + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/IStatusDisplay.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/IStatusDisplay.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/IStatusDisplay.cs rename to HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/IStatusDisplay.cs index b5f22384df..1e9d69e604 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/IStatusDisplay.cs +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/IStatusDisplay.cs @@ -1,34 +1,34 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal interface IStatusView { - void ShowProgressIndicator(double percentProgress); - void ShowProgressIndicator(); - void HideProgressIndicator(); - void ShowMessage(string message); - void RemoveMessage(string message); - void LockUI(); - void UnlockUI(); - void ShowError(string shortMessage, string description); - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal interface IStatusView { + void ShowProgressIndicator(double percentProgress); + void ShowProgressIndicator(); + void HideProgressIndicator(); + void ShowMessage(string message); + void RemoveMessage(string message); + void LockUI(); + void UnlockUI(); + void ShowError(string shortMessage, string description); + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManager.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs rename to HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManager.cs index 67c7fac5de..cb808945fd 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Advanced/InstallationManager.cs +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManager.cs @@ -1,244 +1,244 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.IO; -using System.IO.Compression; -using System.Linq; -using System.ServiceModel; -using HeuristicLab.PluginInfrastructure.Manager; - -namespace HeuristicLab.PluginInfrastructure.Advanced { - internal class InstallationManager { - - internal event EventHandler PreUpdatePlugin; - internal event EventHandler PreRemovePlugin; - internal event EventHandler PreInstallPlugin; - - internal event EventHandler PluginUpdated; - internal event EventHandler PluginRemoved; - internal event EventHandler PluginInstalled; - - private string pluginDir; - public InstallationManager(string pluginDir) { - this.pluginDir = pluginDir; - } - - /// - /// Retrieves a list of plugins available at the remote server - /// - /// - public IEnumerable GetRemotePluginList() { - var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - List plugins = new List(client.GetPlugins()); - client.Close(); - return plugins; - } - catch (TimeoutException e) { - client.Abort(); - throw new InstallationManagerException("Time out while connecting to server.", e); - } - catch (FaultException e) { - client.Abort(); - throw new InstallationManagerException("Fault in connection to server.", e); - } - catch (CommunicationException e) { - client.Abort(); - throw new InstallationManagerException("General communication exception in connection to server.", e); - } - } - - /// - /// Retrieves the list of products available at the remote server - /// - /// - public IEnumerable GetRemoteProductList() { - var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - List products = new List(client.GetProducts()); - client.Close(); - return products; - } - catch (TimeoutException e) { - client.Abort(); - throw new InstallationManagerException("Time out while connecting to server.", e); - } - catch (FaultException e) { - client.Abort(); - throw new InstallationManagerException("Fault in connection to server.", e); - } - catch (CommunicationException e) { - client.Abort(); - throw new InstallationManagerException("General communication exception in connection to server.", e); - } - } - - /// - /// Installs plugins from remote server - /// - /// - public void Install(IEnumerable plugins, out bool cancelled) { - var args = new PluginInfrastructureCancelEventArgs(plugins); - OnPreInstall(args); - if (!args.Cancel) { - cancelled = false; - var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - foreach (DeploymentService.PluginDescription plugin in plugins) { - byte[] zippedPackage = client.GetPlugin(plugin); - Unpack(zippedPackage); - OnInstalled(new PluginInfrastructureEventArgs(plugin)); - } - client.Close(); - } - catch (TimeoutException e) { - client.Abort(); - throw new InstallationManagerException("Time out while connecting to server.", e); - } - catch (FaultException e) { - client.Abort(); - throw new InstallationManagerException("Fault in connection to server.", e); - } - catch (CommunicationException e) { - client.Abort(); - throw new InstallationManagerException("General communication exception in connection to server.", e); - } - } else { - cancelled = true; - } - } - - /// - /// Updates plugins from remote server - /// - /// - public void Update(IEnumerable plugins, out bool cancelled) { - PluginInfrastructureCancelEventArgs args = new PluginInfrastructureCancelEventArgs(plugins); - OnPreUpdate(args); - if (!args.Cancel) { - cancelled = false; - var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); - try { - foreach (DeploymentService.PluginDescription plugin in plugins) { - byte[] zippedPackage = client.GetPlugin(plugin); - Unpack(zippedPackage); - OnUpdated(new PluginInfrastructureEventArgs(plugin)); - } - client.Close(); - } - catch (TimeoutException e) { - client.Abort(); - throw new InstallationManagerException("Time out while connecting to server.", e); - } - catch (FaultException e) { - client.Abort(); - throw new InstallationManagerException("Fault in connection to server.", e); - } - catch (CommunicationException e) { - client.Abort(); - throw new InstallationManagerException("General communication exception in connection to server.", e); - } - } else { - cancelled = true; - } - } - - /// - /// Deletes all plugin files from local installation - /// - /// - public void Remove(IEnumerable plugins) { - var fileNames = from pluginToDelete in plugins - from file in pluginToDelete.Files - select Path.Combine(pluginDir, file.Name); - var args = new PluginInfrastructureCancelEventArgs(plugins); - OnPreDelete(args); - if (!args.Cancel) { - foreach (string fileName in fileNames) { - File.Delete(fileName); - OnDeleted(new PluginInfrastructureEventArgs(fileName)); - } - } - } - - private void Unpack(byte[] zippedPackage) { - using (MemoryStream memStream = new MemoryStream(zippedPackage)) { - using (ZipArchive zip = new ZipArchive(memStream, ZipArchiveMode.Read)) { - foreach (var theEntry in zip.Entries) { - string directoryName = pluginDir; - string fileName = Path.GetFileName(theEntry.Name); - // create directory - if (!string.IsNullOrEmpty(directoryName)) { - Directory.CreateDirectory(directoryName); - } - if (!string.IsNullOrEmpty(fileName)) { - string fullPath = Path.Combine(directoryName, fileName); - string fullDirPath = Path.GetDirectoryName(fullPath); - if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath); - using (FileStream streamWriter = File.Create(fullPath)) { - int size = 2048; - byte[] data = new byte[2048]; - - using (BinaryReader reader = new BinaryReader(theEntry.Open())) { - while (true) { - size = reader.Read(data, 0, data.Length); - if (size > 0) { - streamWriter.Write(data, 0, size); - } else { - break; - } - } - } - streamWriter.Close(); - } - } - } - } - } - } - - private void OnPreUpdate(PluginInfrastructureCancelEventArgs args) { - if (PreUpdatePlugin != null) PreUpdatePlugin(this, args); - } - - private void OnUpdated(PluginInfrastructureEventArgs args) { - if (PluginUpdated != null) PluginUpdated(this, args); - } - - private void OnPreDelete(PluginInfrastructureCancelEventArgs args) { - if (PreRemovePlugin != null) PreRemovePlugin(this, args); - } - - private void OnDeleted(PluginInfrastructureEventArgs args) { - if (PluginRemoved != null) PluginRemoved(this, args); - } - - private void OnPreInstall(PluginInfrastructureCancelEventArgs args) { - if (PreInstallPlugin != null) PreInstallPlugin(this, args); - } - - private void OnInstalled(PluginInfrastructureEventArgs args) { - if (PluginInstalled != null) PluginInstalled(this, args); - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.ServiceModel; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal class InstallationManager { + + internal event EventHandler PreUpdatePlugin; + internal event EventHandler PreRemovePlugin; + internal event EventHandler PreInstallPlugin; + + internal event EventHandler PluginUpdated; + internal event EventHandler PluginRemoved; + internal event EventHandler PluginInstalled; + + private string pluginDir; + public InstallationManager(string pluginDir) { + this.pluginDir = pluginDir; + } + + /// + /// Retrieves a list of plugins available at the remote server + /// + /// + public IEnumerable GetRemotePluginList() { + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + List plugins = new List(client.GetPlugins()); + client.Close(); + return plugins; + } + catch (TimeoutException e) { + client.Abort(); + throw new InstallationManagerException("Time out while connecting to server.", e); + } + catch (FaultException e) { + client.Abort(); + throw new InstallationManagerException("Fault in connection to server.", e); + } + catch (CommunicationException e) { + client.Abort(); + throw new InstallationManagerException("General communication exception in connection to server.", e); + } + } + + /// + /// Retrieves the list of products available at the remote server + /// + /// + public IEnumerable GetRemoteProductList() { + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + List products = new List(client.GetProducts()); + client.Close(); + return products; + } + catch (TimeoutException e) { + client.Abort(); + throw new InstallationManagerException("Time out while connecting to server.", e); + } + catch (FaultException e) { + client.Abort(); + throw new InstallationManagerException("Fault in connection to server.", e); + } + catch (CommunicationException e) { + client.Abort(); + throw new InstallationManagerException("General communication exception in connection to server.", e); + } + } + + /// + /// Installs plugins from remote server + /// + /// + public void Install(IEnumerable plugins, out bool cancelled) { + var args = new PluginInfrastructureCancelEventArgs(plugins); + OnPreInstall(args); + if (!args.Cancel) { + cancelled = false; + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + foreach (DeploymentService.PluginDescription plugin in plugins) { + byte[] zippedPackage = client.GetPlugin(plugin); + Unpack(zippedPackage); + OnInstalled(new PluginInfrastructureEventArgs(plugin)); + } + client.Close(); + } + catch (TimeoutException e) { + client.Abort(); + throw new InstallationManagerException("Time out while connecting to server.", e); + } + catch (FaultException e) { + client.Abort(); + throw new InstallationManagerException("Fault in connection to server.", e); + } + catch (CommunicationException e) { + client.Abort(); + throw new InstallationManagerException("General communication exception in connection to server.", e); + } + } else { + cancelled = true; + } + } + + /// + /// Updates plugins from remote server + /// + /// + public void Update(IEnumerable plugins, out bool cancelled) { + PluginInfrastructureCancelEventArgs args = new PluginInfrastructureCancelEventArgs(plugins); + OnPreUpdate(args); + if (!args.Cancel) { + cancelled = false; + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + foreach (DeploymentService.PluginDescription plugin in plugins) { + byte[] zippedPackage = client.GetPlugin(plugin); + Unpack(zippedPackage); + OnUpdated(new PluginInfrastructureEventArgs(plugin)); + } + client.Close(); + } + catch (TimeoutException e) { + client.Abort(); + throw new InstallationManagerException("Time out while connecting to server.", e); + } + catch (FaultException e) { + client.Abort(); + throw new InstallationManagerException("Fault in connection to server.", e); + } + catch (CommunicationException e) { + client.Abort(); + throw new InstallationManagerException("General communication exception in connection to server.", e); + } + } else { + cancelled = true; + } + } + + /// + /// Deletes all plugin files from local installation + /// + /// + public void Remove(IEnumerable plugins) { + var fileNames = from pluginToDelete in plugins + from file in pluginToDelete.Files + select Path.Combine(pluginDir, file.Name); + var args = new PluginInfrastructureCancelEventArgs(plugins); + OnPreDelete(args); + if (!args.Cancel) { + foreach (string fileName in fileNames) { + File.Delete(fileName); + OnDeleted(new PluginInfrastructureEventArgs(fileName)); + } + } + } + + private void Unpack(byte[] zippedPackage) { + using (MemoryStream memStream = new MemoryStream(zippedPackage)) { + using (ZipArchive zip = new ZipArchive(memStream, ZipArchiveMode.Read)) { + foreach (var theEntry in zip.Entries) { + string directoryName = pluginDir; + string fileName = Path.GetFileName(theEntry.Name); + // create directory + if (!string.IsNullOrEmpty(directoryName)) { + Directory.CreateDirectory(directoryName); + } + if (!string.IsNullOrEmpty(fileName)) { + string fullPath = Path.Combine(directoryName, fileName); + string fullDirPath = Path.GetDirectoryName(fullPath); + if (!Directory.Exists(fullDirPath)) Directory.CreateDirectory(fullDirPath); + using (FileStream streamWriter = File.Create(fullPath)) { + int size = 2048; + byte[] data = new byte[2048]; + + using (BinaryReader reader = new BinaryReader(theEntry.Open())) { + while (true) { + size = reader.Read(data, 0, data.Length); + if (size > 0) { + streamWriter.Write(data, 0, size); + } else { + break; + } + } + } + streamWriter.Close(); + } + } + } + } + } + } + + private void OnPreUpdate(PluginInfrastructureCancelEventArgs args) { + if (PreUpdatePlugin != null) PreUpdatePlugin(this, args); + } + + private void OnUpdated(PluginInfrastructureEventArgs args) { + if (PluginUpdated != null) PluginUpdated(this, args); + } + + private void OnPreDelete(PluginInfrastructureCancelEventArgs args) { + if (PreRemovePlugin != null) PreRemovePlugin(this, args); + } + + private void OnDeleted(PluginInfrastructureEventArgs args) { + if (PluginRemoved != null) PluginRemoved(this, args); + } + + private void OnPreInstall(PluginInfrastructureCancelEventArgs args) { + if (PreInstallPlugin != null) PreInstallPlugin(this, args); + } + + private void OnInstalled(PluginInfrastructureEventArgs args) { + if (PluginInstalled != null) PluginInstalled(this, args); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerControl.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerControl.Designer.cs new file mode 100644 index 0000000000..ab9dffbaa0 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerControl.Designer.cs @@ -0,0 +1,52 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class InstallationManagerControl { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + } + + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerControl.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerControl.cs new file mode 100644 index 0000000000..68e0af9ec5 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerControl.cs @@ -0,0 +1,36 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class InstallationManagerControl : UserControl { + private IStatusView statusView; + public IStatusView StatusView { + get { return statusView; } + set { statusView = value; } + } + + public InstallationManagerControl() + : base() { + InitializeComponent(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerException.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerException.cs new file mode 100644 index 0000000000..c1c163d199 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerException.cs @@ -0,0 +1,33 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Runtime.Serialization; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + [Serializable] + public class InstallationManagerException : Exception { + public InstallationManagerException() : base() { } + public InstallationManagerException(string msg) : base(msg) { } + public InstallationManagerException(string msg, Exception e) : base(msg, e) { } + protected InstallationManagerException(SerializationInfo info, StreamingContext context) : base(info, context) { } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerForm.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerForm.Designer.cs new file mode 100644 index 0000000000..9b659f44cd --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerForm.Designer.cs @@ -0,0 +1,311 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class InstallationManagerForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.statusStrip = new System.Windows.Forms.StatusStrip(); + this.toolStripProgressBar = new System.Windows.Forms.ToolStripProgressBar(); + this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); + this.tabControl = new System.Windows.Forms.TabControl(); + this.localPluginsTabPage = new System.Windows.Forms.TabPage(); + this.localPluginsView = new HeuristicLab.PluginInfrastructure.Advanced.InstalledPluginsView(); + this.availablePluginsTabPage = new System.Windows.Forms.TabPage(); + this.remotePluginInstaller = new HeuristicLab.PluginInfrastructure.Advanced.AvailablePluginsView(); + this.uploadPluginsTabPage = new System.Windows.Forms.TabPage(); + this.pluginEditor = new HeuristicLab.PluginInfrastructure.Advanced.UploadPluginsView(); + this.manageProductsTabPage = new System.Windows.Forms.TabPage(); + this.productEditor = new HeuristicLab.PluginInfrastructure.Advanced.EditProductsView(); + this.logTabPage = new System.Windows.Forms.TabPage(); + this.logTextBox = new System.Windows.Forms.TextBox(); + this.menuStrip = new System.Windows.Forms.MenuStrip(); + this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.connectionSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.statusStrip.SuspendLayout(); + this.tabControl.SuspendLayout(); + this.localPluginsTabPage.SuspendLayout(); + this.availablePluginsTabPage.SuspendLayout(); + this.uploadPluginsTabPage.SuspendLayout(); + this.manageProductsTabPage.SuspendLayout(); + this.logTabPage.SuspendLayout(); + this.menuStrip.SuspendLayout(); + this.SuspendLayout(); + // + // statusStrip + // + this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripProgressBar, + this.toolStripStatusLabel}); + this.statusStrip.Location = new System.Drawing.Point(0, 422); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size(622, 22); + this.statusStrip.TabIndex = 0; + // + // toolStripProgressBar + // + this.toolStripProgressBar.MarqueeAnimationSpeed = 30; + this.toolStripProgressBar.Name = "toolStripProgressBar"; + this.toolStripProgressBar.Size = new System.Drawing.Size(100, 16); + this.toolStripProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.toolStripProgressBar.Visible = false; + // + // toolStripStatusLabel + // + this.toolStripStatusLabel.Name = "toolStripStatusLabel"; + this.toolStripStatusLabel.Size = new System.Drawing.Size(0, 17); + // + // tabControl + // + this.tabControl.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl.Controls.Add(this.localPluginsTabPage); + this.tabControl.Controls.Add(this.availablePluginsTabPage); + this.tabControl.Controls.Add(this.uploadPluginsTabPage); + this.tabControl.Controls.Add(this.manageProductsTabPage); + this.tabControl.Controls.Add(this.logTabPage); + this.tabControl.Location = new System.Drawing.Point(12, 27); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size(598, 392); + this.tabControl.TabIndex = 16; + this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged); + // + // localPluginsTabPage + // + this.localPluginsTabPage.Controls.Add(this.localPluginsView); + this.localPluginsTabPage.Location = new System.Drawing.Point(4, 22); + this.localPluginsTabPage.Name = "localPluginsTabPage"; + this.localPluginsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.localPluginsTabPage.Size = new System.Drawing.Size(590, 366); + this.localPluginsTabPage.TabIndex = 0; + this.localPluginsTabPage.Text = "Installed Plugins"; + this.toolTip.SetToolTip(this.localPluginsTabPage, "Delete or update installed plugins"); + this.localPluginsTabPage.UseVisualStyleBackColor = true; + // + // localPluginsView + // + this.localPluginsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.localPluginsView.InstallationManager = null; + this.localPluginsView.Location = new System.Drawing.Point(6, 6); + this.localPluginsView.Name = "localPluginsView"; + this.localPluginsView.PluginManager = null; + this.localPluginsView.Size = new System.Drawing.Size(578, 354); + this.localPluginsView.StatusView = null; + this.localPluginsView.TabIndex = 0; + // + // availablePluginsTabPage + // + this.availablePluginsTabPage.Controls.Add(this.remotePluginInstaller); + this.availablePluginsTabPage.Location = new System.Drawing.Point(4, 22); + this.availablePluginsTabPage.Name = "availablePluginsTabPage"; + this.availablePluginsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.availablePluginsTabPage.Size = new System.Drawing.Size(590, 366); + this.availablePluginsTabPage.TabIndex = 1; + this.availablePluginsTabPage.Text = "Available Plugins"; + this.toolTip.SetToolTip(this.availablePluginsTabPage, "Download and install new plugins"); + this.availablePluginsTabPage.UseVisualStyleBackColor = true; + // + // remotePluginInstaller + // + this.remotePluginInstaller.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.remotePluginInstaller.InstallationManager = null; + this.remotePluginInstaller.Location = new System.Drawing.Point(6, 6); + this.remotePluginInstaller.Name = "remotePluginInstaller"; + this.remotePluginInstaller.PluginManager = null; + this.remotePluginInstaller.Size = new System.Drawing.Size(578, 354); + this.remotePluginInstaller.StatusView = null; + this.remotePluginInstaller.TabIndex = 14; + // + // uploadPluginsTabPage + // + this.uploadPluginsTabPage.Controls.Add(this.pluginEditor); + this.uploadPluginsTabPage.Location = new System.Drawing.Point(4, 22); + this.uploadPluginsTabPage.Name = "uploadPluginsTabPage"; + this.uploadPluginsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.uploadPluginsTabPage.Size = new System.Drawing.Size(590, 366); + this.uploadPluginsTabPage.TabIndex = 3; + this.uploadPluginsTabPage.Text = "Upload Plugins"; + this.toolTip.SetToolTip(this.uploadPluginsTabPage, "Upload plugins"); + this.uploadPluginsTabPage.UseVisualStyleBackColor = true; + // + // pluginEditor + // + this.pluginEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginEditor.Location = new System.Drawing.Point(6, 6); + this.pluginEditor.Name = "pluginEditor"; + this.pluginEditor.PluginManager = null; + this.pluginEditor.Size = new System.Drawing.Size(578, 354); + this.pluginEditor.StatusView = null; + this.pluginEditor.TabIndex = 0; + // + // manageProductsTabPage + // + this.manageProductsTabPage.Controls.Add(this.productEditor); + this.manageProductsTabPage.Location = new System.Drawing.Point(4, 22); + this.manageProductsTabPage.Name = "manageProductsTabPage"; + this.manageProductsTabPage.Padding = new System.Windows.Forms.Padding(3); + this.manageProductsTabPage.Size = new System.Drawing.Size(590, 366); + this.manageProductsTabPage.TabIndex = 4; + this.manageProductsTabPage.Text = "Manage Products"; + this.toolTip.SetToolTip(this.manageProductsTabPage, "Create and manage products"); + this.manageProductsTabPage.UseVisualStyleBackColor = true; + // + // productEditor + // + this.productEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.productEditor.Location = new System.Drawing.Point(6, 6); + this.productEditor.Name = "productEditor"; + this.productEditor.Size = new System.Drawing.Size(578, 354); + this.productEditor.StatusView = null; + this.productEditor.TabIndex = 0; + // + // logTabPage + // + this.logTabPage.Controls.Add(this.logTextBox); + this.logTabPage.Location = new System.Drawing.Point(4, 22); + this.logTabPage.Name = "logTabPage"; + this.logTabPage.Size = new System.Drawing.Size(590, 366); + this.logTabPage.TabIndex = 2; + this.logTabPage.Text = "Log"; + this.toolTip.SetToolTip(this.logTabPage, "Show Log Messages"); + this.logTabPage.UseVisualStyleBackColor = true; + // + // logTextBox + // + this.logTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.logTextBox.Location = new System.Drawing.Point(3, 3); + this.logTextBox.Multiline = true; + this.logTextBox.Name = "logTextBox"; + this.logTextBox.ReadOnly = true; + this.logTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.logTextBox.Size = new System.Drawing.Size(584, 360); + this.logTextBox.TabIndex = 0; + // + // menuStrip + // + this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.optionsToolStripMenuItem}); + this.menuStrip.Location = new System.Drawing.Point(0, 0); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size(622, 24); + this.menuStrip.TabIndex = 17; + this.menuStrip.Text = "menuStrip1"; + // + // optionsToolStripMenuItem + // + this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.connectionSettingsToolStripMenuItem}); + this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; + this.optionsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); + this.optionsToolStripMenuItem.Text = "Options"; + // + // connectionSettingsToolStripMenuItem + // + this.connectionSettingsToolStripMenuItem.Image = global::HeuristicLab.PluginInfrastructure.Resources.NetworkConnections; + this.connectionSettingsToolStripMenuItem.Name = "connectionSettingsToolStripMenuItem"; + this.connectionSettingsToolStripMenuItem.Size = new System.Drawing.Size(190, 22); + this.connectionSettingsToolStripMenuItem.Text = "Connection Settings..."; + this.connectionSettingsToolStripMenuItem.Click += new System.EventHandler(this.connectionSettingsToolStripMenuItem_Click); + // + // InstallationManagerForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(622, 444); + this.Controls.Add(this.tabControl); + this.Controls.Add(this.statusStrip); + this.Controls.Add(this.menuStrip); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MainMenuStrip = this.menuStrip; + this.Name = "InstallationManagerForm"; + this.Text = "Plugin Manager"; + this.statusStrip.ResumeLayout(false); + this.statusStrip.PerformLayout(); + this.tabControl.ResumeLayout(false); + this.localPluginsTabPage.ResumeLayout(false); + this.availablePluginsTabPage.ResumeLayout(false); + this.uploadPluginsTabPage.ResumeLayout(false); + this.manageProductsTabPage.ResumeLayout(false); + this.logTabPage.ResumeLayout(false); + this.logTabPage.PerformLayout(); + this.menuStrip.ResumeLayout(false); + this.menuStrip.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel; + private AvailablePluginsView remotePluginInstaller; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage localPluginsTabPage; + private System.Windows.Forms.TabPage availablePluginsTabPage; + private System.Windows.Forms.TabPage logTabPage; + private System.Windows.Forms.TextBox logTextBox; + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem connectionSettingsToolStripMenuItem; + private System.Windows.Forms.TabPage uploadPluginsTabPage; + private System.Windows.Forms.TabPage manageProductsTabPage; + private UploadPluginsView pluginEditor; + private EditProductsView productEditor; + private InstalledPluginsView localPluginsView; + private System.Windows.Forms.ToolTip toolTip; + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerForm.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerForm.cs new file mode 100644 index 0000000000..820c850777 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstallationManagerForm.cs @@ -0,0 +1,252 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class InstallationManagerForm : Form, IStatusView { + private InstallationManager installationManager; + private string pluginDir; + + public InstallationManagerForm(PluginManager pluginManager) + : base() { + InitializeComponent(); + Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + + pluginManager.PluginLoaded += pluginManager_PluginLoaded; + pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; + pluginManager.Initializing += pluginManager_Initializing; + pluginManager.Initialized += pluginManager_Initialized; + + pluginDir = Application.StartupPath; + + installationManager = new InstallationManager(pluginDir); + installationManager.PluginInstalled += new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved += new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated += new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin += new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin += new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin += new EventHandler(installationManager_PreUpdatePlugin); + + // show or hide controls for uploading plugins based on setting + if (!HeuristicLab.PluginInfrastructure.Properties.Settings.Default.ShowPluginUploadControls) { + tabControl.Controls.Remove(uploadPluginsTabPage); + tabControl.Controls.Remove(manageProductsTabPage); + } else { + pluginEditor.PluginManager = pluginManager; + } + + localPluginsView.StatusView = this; + localPluginsView.PluginManager = pluginManager; + localPluginsView.InstallationManager = installationManager; + + remotePluginInstaller.StatusView = this; + remotePluginInstaller.InstallationManager = installationManager; + remotePluginInstaller.PluginManager = pluginManager; + + pluginEditor.StatusView = this; + pluginEditor.PluginManager = pluginManager; + + productEditor.StatusView = this; + } + + + #region plugin manager event handlers + private void pluginManager_Initialized(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initialized PluginInfrastructure"); + } + + private void pluginManager_Initializing(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initializing PluginInfrastructure"); + } + + private void pluginManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Unloaded " + e.Entity); + } + + private void pluginManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Loaded " + e.Entity); + } + #endregion + + #region installation manager event handlers + private void installationManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmUpdateAction, e.Plugins) == false; + } + } + + private void installationManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmRemoveAction, e.Plugins) == false; + } + } + + private void installationManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) + if ((bool)Invoke((Func, bool>)ConfirmInstallAction, e.Plugins) == true) { + SetStatusStrip("Installing " + e.Plugins.Aggregate("", (a, b) => a.ToString() + "; " + b.ToString())); + e.Cancel = false; + } else { + e.Cancel = true; + SetStatusStrip("Install canceled"); + } + } + + private void installationManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Updated " + e.Entity); + } + + private void installationManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Removed " + e.Entity); + } + + private void installationManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Installed " + e.Entity); + } + #endregion + + #region button events + private void connectionSettingsToolStripMenuItem_Click(object sender, EventArgs e) { + using (var conSetupView = new ConnectionSetupView()) { + conSetupView.ShowDialog(this); + } + } + private void tabControl_SelectedIndexChanged(object sender, EventArgs e) { + toolStripStatusLabel.Text = string.Empty; + } + #endregion + + #region confirmation dialogs + private bool ConfirmRemoveAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + foreach (var file in plugin.Files) { + strBuilder.AppendLine(Path.GetFileName(file.Name)); + } + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmUpdateAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + strBuilder.AppendLine(plugin.ToString()); + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmInstallAction(IEnumerable plugins) { + foreach (var plugin in plugins) { + if (!string.IsNullOrEmpty(plugin.LicenseText)) { + using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) { + if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK) + return false; + } + } + } + return true; + } + + + #endregion + + #region helper methods + private void SetStatusStrip(string msg) { + if (InvokeRequired) Invoke((Action)SetStatusStrip, msg); + else { + toolStripStatusLabel.Text = msg; + logTextBox.Text += DateTime.Now + ": " + msg + Environment.NewLine; + } + } + + #endregion + + + protected override void OnClosing(CancelEventArgs e) { + installationManager.PluginInstalled -= new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved -= new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated -= new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin -= new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin -= new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin -= new EventHandler(installationManager_PreUpdatePlugin); + base.OnClosing(e); + } + + #region IStatusView Members + + public void ShowProgressIndicator(double percentProgress) { + if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress"); + toolStripProgressBar.Visible = true; + toolStripProgressBar.Style = ProgressBarStyle.Continuous; + int range = toolStripProgressBar.Maximum - toolStripProgressBar.Minimum; + toolStripProgressBar.Value = (int)(percentProgress * range + toolStripProgressBar.Minimum); + } + + public void ShowProgressIndicator() { + toolStripProgressBar.Visible = true; + toolStripProgressBar.Style = ProgressBarStyle.Marquee; + } + + public void HideProgressIndicator() { + toolStripProgressBar.Visible = false; + } + + public void ShowMessage(string message) { + if (string.IsNullOrEmpty(toolStripStatusLabel.Text)) + toolStripStatusLabel.Text = message; + else + toolStripStatusLabel.Text += "; " + message; + } + + public void RemoveMessage(string message) { + if (toolStripStatusLabel.Text.IndexOf("; " + message) > 0) { + toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace("; " + message, ""); + } + toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace(message, ""); + toolStripStatusLabel.Text = toolStripStatusLabel.Text.TrimStart(' ', ';'); + } + public void LockUI() { + Cursor = Cursors.AppStarting; + tabControl.Enabled = false; + } + public void UnlockUI() { + tabControl.Enabled = true; + Cursor = Cursors.Default; + } + public void ShowError(string shortMessage, string description) { + logTextBox.Text += DateTime.Now + ": " + shortMessage + Environment.NewLine + description + Environment.NewLine; + MessageBox.Show(description, shortMessage); + } + #endregion + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstalledPluginsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstalledPluginsView.Designer.cs new file mode 100644 index 0000000000..3ec0ff40aa --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstalledPluginsView.Designer.cs @@ -0,0 +1,182 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class InstalledPluginsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewGroup listViewGroup3 = new System.Windows.Forms.ListViewGroup("Active Plugins", System.Windows.Forms.HorizontalAlignment.Left); + System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("Disabled Plugins", System.Windows.Forms.HorizontalAlignment.Left); + this.localPluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.nameHeader = new System.Windows.Forms.ColumnHeader(); + this.versionHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginImageList = new System.Windows.Forms.ImageList(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.refreshButton = new System.Windows.Forms.Button(); + this.removeButton = new System.Windows.Forms.Button(); + this.updateSelectedButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // localPluginsListView + // + this.localPluginsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.localPluginsListView.CheckBoxes = true; + this.localPluginsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.nameHeader, + this.versionHeader, + this.descriptionHeader}); + listViewGroup3.Header = "Active Plugins"; + listViewGroup3.Name = "activePluginsGroup"; + listViewGroup4.Header = "Disabled Plugins"; + listViewGroup4.Name = "disabledPluginsGroup"; + this.localPluginsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] { + listViewGroup3, + listViewGroup4}); + this.localPluginsListView.Location = new System.Drawing.Point(0, 0); + this.localPluginsListView.Name = "localPluginsListView"; + this.localPluginsListView.Size = new System.Drawing.Size(539, 477); + this.localPluginsListView.SmallImageList = this.pluginImageList; + this.localPluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.localPluginsListView.SuppressItemCheckedEvents = false; + this.localPluginsListView.TabIndex = 13; + this.localPluginsListView.UseCompatibleStateImageBehavior = false; + this.localPluginsListView.View = System.Windows.Forms.View.Details; + this.localPluginsListView.ItemActivate += new System.EventHandler(this.localPluginsListView_ItemActivate); + this.localPluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginsListView_ItemChecked); + // + // nameHeader + // + this.nameHeader.Text = "Name"; + this.nameHeader.Width = 199; + // + // versionHeader + // + this.versionHeader.Text = "Version"; + this.versionHeader.Width = 84; + // + // descriptionHeader + // + this.descriptionHeader.Text = "Description"; + this.descriptionHeader.Width = 245; + // + // pluginImageList + // + this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // refreshButton + // + this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Repeat; + this.refreshButton.Location = new System.Drawing.Point(0, 483); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(96, 25); + this.refreshButton.TabIndex = 14; + this.refreshButton.Text = "Refresh List"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Refresh List of Installed Plugins"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); + // + // removeButton + // + this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.removeButton.Enabled = false; + this.removeButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Remove; + this.removeButton.Location = new System.Drawing.Point(222, 483); + this.removeButton.Name = "removeButton"; + this.removeButton.Size = new System.Drawing.Size(110, 25); + this.removeButton.TabIndex = 12; + this.removeButton.Text = "Delete Selected"; + this.removeButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.removeButton, "Delete all selected plugins from disk"); + this.removeButton.UseVisualStyleBackColor = true; + this.removeButton.Click += new System.EventHandler(this.removeButton_Click); + // + // updateSelectedButton + // + this.updateSelectedButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.updateSelectedButton.Enabled = false; + this.updateSelectedButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.updateSelectedButton.Location = new System.Drawing.Point(102, 483); + this.updateSelectedButton.Name = "updateSelectedButton"; + this.updateSelectedButton.Size = new System.Drawing.Size(114, 25); + this.updateSelectedButton.TabIndex = 6; + this.updateSelectedButton.Text = "Update Selected"; + this.updateSelectedButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.updateSelectedButton, "Update all selected plugins"); + this.updateSelectedButton.UseVisualStyleBackColor = true; + this.updateSelectedButton.Click += new System.EventHandler(this.updateSelectedButton_Click); + // + // LocalPluginsView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.refreshButton); + this.Controls.Add(this.localPluginsListView); + this.Controls.Add(this.removeButton); + this.Controls.Add(this.updateSelectedButton); + this.Name = "LocalPluginsView"; + this.Size = new System.Drawing.Size(539, 508); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button updateSelectedButton; + private System.Windows.Forms.Button removeButton; + private MultiSelectListView localPluginsListView; + private System.Windows.Forms.ColumnHeader nameHeader; + private System.Windows.Forms.ColumnHeader versionHeader; + private System.Windows.Forms.ColumnHeader descriptionHeader; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ImageList pluginImageList; + private System.Windows.Forms.Button refreshButton; + // private LocalPluginManagerView localPluginManagerView; + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstalledPluginsView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstalledPluginsView.cs new file mode 100644 index 0000000000..2f4eb743af --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/InstalledPluginsView.cs @@ -0,0 +1,243 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class InstalledPluginsView : InstallationManagerControl { + private const string CheckingPluginsMessage = "Checking for updated plugins..."; + private const string NoUpdatesAvailableMessage = "No updates available."; + private BackgroundWorker removePluginsBackgroundWorker; + private BackgroundWorker updatePluginsBackgroundWorker; + + private ListViewGroup enabledPluginsGroup; + private ListViewGroup disabledPluginsGroup; + + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { + pluginManager = value; + UpdateControl(); + } + } + + private InstallationManager installationManager; + public InstallationManager InstallationManager { + get { return installationManager; } + set { installationManager = value; } + } + + public InstalledPluginsView() + : base() { + InitializeComponent(); + enabledPluginsGroup = localPluginsListView.Groups["activePluginsGroup"]; + disabledPluginsGroup = localPluginsListView.Groups["disabledPluginsGroup"]; + pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + removePluginsBackgroundWorker = new BackgroundWorker(); + removePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(removePluginsBackgroundWorker_DoWork); + removePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(removePluginsBackgroundWorker_RunWorkerCompleted); + updatePluginsBackgroundWorker = new BackgroundWorker(); + updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); + updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); + + UpdateControl(); + } + + + + #region event handlers for plugin removal background worker + void removePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("File Deletion Error", "There was problem while deleting files." + Environment.NewLine + e.Error.Message); + } + UpdateControl(); + StatusView.HideProgressIndicator(); + StatusView.UnlockUI(); + } + + void removePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable pluginsToRemove = (IEnumerable)e.Argument; + if (pluginsToRemove.Count() > 0) { + installationManager.Remove(pluginsToRemove); + pluginManager.DiscoverAndCheckPlugins(); + } + } + #endregion + + #region event handlers for update plugins backgroundworker + void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } + StatusView.RemoveMessage(CheckingPluginsMessage); + StatusView.HideProgressIndicator(); + UpdateControl(); + StatusView.UnlockUI(); + } + + void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable selectedPlugins = (IEnumerable)e.Argument; + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in selectedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + if (pluginsToUpdate.Count() > 0) { + bool cancelled; + installationManager.Update(pluginsToUpdate, out cancelled); + if (!cancelled) pluginManager.DiscoverAndCheckPlugins(); + } + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + private static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + #endregion + + private void UpdateControl() { + ClearPluginList(); + if (pluginManager != null) { + localPluginsListView.SuppressItemCheckedEvents = true; + foreach (var plugin in pluginManager.Plugins) { + var item = CreateListViewItem(plugin); + if (plugin.PluginState == PluginState.Enabled) { + item.Group = enabledPluginsGroup; + } else if (plugin.PluginState == PluginState.Disabled) { + item.Group = disabledPluginsGroup; + } + localPluginsListView.Items.Add(item); + } + localPluginsListView.SuppressItemCheckedEvents = false; + } + removeButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + updateSelectedButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + Util.ResizeColumns(localPluginsListView.Columns.OfType()); + } + + private void ClearPluginList() { + List itemsToRemove = new List(localPluginsListView.Items.OfType()); + itemsToRemove.ForEach(item => localPluginsListView.Items.Remove(item)); + } + + private static ListViewItem CreateListViewItem(PluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + return item; + } + + private void pluginsListView_ItemChecked(object sender, ItemCheckedEventArgs e) { + // checked items are marked for removal + if (e.Item.Checked) { + List modifiedItems = new List(); + foreach (ListViewItem item in localPluginsListView.SelectedItems) { + modifiedItems.Add(item); + int oldItemsCount = 0; + while (oldItemsCount < modifiedItems.Count) { + oldItemsCount = modifiedItems.Count; + var oldModifiedItems = new List(modifiedItems); + foreach (var modifiedItem in oldModifiedItems) { + var plugin = (IPluginDescription)modifiedItem.Tag; + // also check all dependent plugins + foreach (ListViewItem dependentItem in localPluginsListView.Items) { + var dependent = (IPluginDescription)dependentItem.Tag; + if (!modifiedItems.Contains(dependentItem) && + !dependentItem.Checked && (from dep in dependent.Dependencies + where dep.Name == plugin.Name + where dep.Version == plugin.Version + select dep).Any()) { + modifiedItems.Add(dependentItem); + } + } + } + } + } + localPluginsListView.CheckItems(modifiedItems); + } else { + List modifiedItems = new List(); + foreach (ListViewItem item in localPluginsListView.SelectedItems) { + modifiedItems.Add(item); + } + localPluginsListView.UncheckItems(modifiedItems); + } + OnItemsCheckedChanged(EventArgs.Empty); + } + + private void localPluginsListView_ItemActivate(object sender, EventArgs e) { + if (localPluginsListView.SelectedItems.Count > 0) { + var plugin = (PluginDescription)localPluginsListView.SelectedItems[0].Tag; + PluginView pluginView = new PluginView(plugin); + pluginView.Show(this); + } + } + + private void OnItemsCheckedChanged(EventArgs eventArgs) { + removeButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + updateSelectedButton.Enabled = localPluginsListView.CheckedItems.Count > 0; + } + + private void updateSelectedButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.RemoveMessage(NoUpdatesAvailableMessage); + StatusView.ShowMessage(CheckingPluginsMessage); + var checkedPlugins = localPluginsListView.CheckedItems.OfType() + .Select(item => item.Tag) + .OfType() + .ToList(); + updatePluginsBackgroundWorker.RunWorkerAsync(checkedPlugins); + } + + private void removeButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + var checkedPlugins = localPluginsListView.CheckedItems.OfType() + .Select(item => item.Tag) + .OfType() + .ToList(); + removePluginsBackgroundWorker.RunWorkerAsync(checkedPlugins); + } + + private void refreshButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + // refresh = update empty list of plugins (plugins are reloaded) + updatePluginsBackgroundWorker.RunWorkerAsync(new IPluginDescription[0]); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseConfirmationDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseConfirmationDialog.Designer.cs new file mode 100644 index 0000000000..43534aa114 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseConfirmationDialog.Designer.cs @@ -0,0 +1,205 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class LicenseConfirmationDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.richTextBox = new System.Windows.Forms.RichTextBox(); + this.acceptButton = new System.Windows.Forms.Button(); + this.rejectButton = new System.Windows.Forms.Button(); + this.licenseLabel = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.radioButtonGroupBox = new System.Windows.Forms.GroupBox(); + this.rejectRadioButton = new System.Windows.Forms.RadioButton(); + this.acceptRadioButton = new System.Windows.Forms.RadioButton(); + this.panel1 = new System.Windows.Forms.Panel(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.radioButtonGroupBox.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // richTextBox + // + this.richTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.richTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.richTextBox.Location = new System.Drawing.Point(12, 48); + this.richTextBox.Name = "richTextBox"; + this.richTextBox.ReadOnly = true; + this.richTextBox.Size = new System.Drawing.Size(494, 287); + this.richTextBox.TabIndex = 0; + this.richTextBox.Text = ""; + // + // acceptButton + // + this.acceptButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.acceptButton.Enabled = false; + this.acceptButton.Location = new System.Drawing.Point(347, 53); + this.acceptButton.Name = "acceptButton"; + this.acceptButton.Size = new System.Drawing.Size(75, 23); + this.acceptButton.TabIndex = 1; + this.acceptButton.Text = "Next >"; + this.toolTip.SetToolTip(this.acceptButton, "Accept license agreement and continue installation"); + this.acceptButton.UseVisualStyleBackColor = true; + this.acceptButton.Click += new System.EventHandler(this.acceptButton_Click); + // + // rejectButton + // + this.rejectButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.rejectButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.rejectButton.Location = new System.Drawing.Point(428, 53); + this.rejectButton.Name = "rejectButton"; + this.rejectButton.Size = new System.Drawing.Size(79, 23); + this.rejectButton.TabIndex = 2; + this.rejectButton.Text = "Cancel"; + this.toolTip.SetToolTip(this.rejectButton, "Cancel installation"); + this.rejectButton.UseVisualStyleBackColor = true; + this.rejectButton.Click += new System.EventHandler(this.rejectButton_Click); + // + // licenseLabel + // + this.licenseLabel.AutoSize = true; + this.licenseLabel.Location = new System.Drawing.Point(12, 32); + this.licenseLabel.Name = "licenseLabel"; + this.licenseLabel.Size = new System.Drawing.Size(241, 13); + this.licenseLabel.TabIndex = 3; + this.licenseLabel.Text = "Please read following license agreement carefully."; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(115, 13); + this.label1.TabIndex = 4; + this.label1.Text = "License Agreement"; + // + // radioButtonGroupBox + // + this.radioButtonGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.radioButtonGroupBox.Controls.Add(this.rejectRadioButton); + this.radioButtonGroupBox.Controls.Add(this.acceptRadioButton); + this.radioButtonGroupBox.Location = new System.Drawing.Point(13, 5); + this.radioButtonGroupBox.Name = "radioButtonGroupBox"; + this.radioButtonGroupBox.Size = new System.Drawing.Size(281, 71); + this.radioButtonGroupBox.TabIndex = 5; + this.radioButtonGroupBox.TabStop = false; + // + // rejectRadioButton + // + this.rejectRadioButton.AutoSize = true; + this.rejectRadioButton.Location = new System.Drawing.Point(6, 42); + this.rejectRadioButton.Name = "rejectRadioButton"; + this.rejectRadioButton.Size = new System.Drawing.Size(264, 17); + this.rejectRadioButton.TabIndex = 1; + this.rejectRadioButton.TabStop = true; + this.rejectRadioButton.Text = "I do not accept the terms in the license agreement."; + this.rejectRadioButton.UseVisualStyleBackColor = true; + this.rejectRadioButton.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); + // + // acceptRadioButton + // + this.acceptRadioButton.AutoSize = true; + this.acceptRadioButton.Location = new System.Drawing.Point(6, 19); + this.acceptRadioButton.Name = "acceptRadioButton"; + this.acceptRadioButton.Size = new System.Drawing.Size(231, 17); + this.acceptRadioButton.TabIndex = 0; + this.acceptRadioButton.TabStop = true; + this.acceptRadioButton.Text = "I accept the terms in the license agreement."; + this.acceptRadioButton.UseVisualStyleBackColor = true; + this.acceptRadioButton.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged); + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.Control; + this.panel1.Controls.Add(this.acceptButton); + this.panel1.Controls.Add(this.radioButtonGroupBox); + this.panel1.Controls.Add(this.rejectButton); + this.panel1.Location = new System.Drawing.Point(-1, 341); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(520, 88); + this.panel1.TabIndex = 6; + // + // LicenseConfirmationDialog + // + this.AcceptButton = this.acceptButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.SystemColors.HighlightText; + this.CancelButton = this.rejectButton; + this.ClientSize = new System.Drawing.Size(518, 429); + this.Controls.Add(this.panel1); + this.Controls.Add(this.label1); + this.Controls.Add(this.licenseLabel); + this.Controls.Add(this.richTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "LicenseConfirmationDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.radioButtonGroupBox.ResumeLayout(false); + this.radioButtonGroupBox.PerformLayout(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox; + private System.Windows.Forms.Button acceptButton; + private System.Windows.Forms.Button rejectButton; + private System.Windows.Forms.Label licenseLabel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox radioButtonGroupBox; + private System.Windows.Forms.RadioButton rejectRadioButton; + private System.Windows.Forms.RadioButton acceptRadioButton; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolTip toolTip; + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseConfirmationDialog.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseConfirmationDialog.cs new file mode 100644 index 0000000000..8e1ac3dd4a --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseConfirmationDialog.cs @@ -0,0 +1,53 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class LicenseConfirmationDialog : Form { + public LicenseConfirmationDialog() + : base() { + InitializeComponent(); + } + + public LicenseConfirmationDialog(IPluginDescription plugin) + : base() { + InitializeComponent(); + richTextBox.Text = plugin.LicenseText; + this.Text = plugin.ToString(); + this.DialogResult = DialogResult.Cancel; + } + + private void acceptButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.OK; + this.Close(); + } + + private void rejectButton_Click(object sender, EventArgs e) { + DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void radioButton1_CheckedChanged(object sender, EventArgs e) { + acceptButton.Enabled = acceptRadioButton.Checked; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseView.Designer.cs new file mode 100644 index 0000000000..2e2ab2e2bc --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseView.Designer.cs @@ -0,0 +1,81 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class LicenseView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LicenseView)); + this.richTextBox = new System.Windows.Forms.RichTextBox(); + this.SuspendLayout(); + // + // richTextBox + // + this.richTextBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox.Location = new System.Drawing.Point(0, 0); + this.richTextBox.Name = "richTextBox"; + this.richTextBox.ReadOnly = true; + this.richTextBox.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical; + this.richTextBox.Size = new System.Drawing.Size(410, 445); + this.richTextBox.TabIndex = 1; + this.richTextBox.Text = ""; + // + // LicenseView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(410, 445); + this.Controls.Add(this.richTextBox); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.Name = "LicenseView"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "License Agreement"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox; + + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseView.cs new file mode 100644 index 0000000000..5b71202dde --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/LicenseView.cs @@ -0,0 +1,39 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class LicenseView : Form { + + public LicenseView() + : base() { + InitializeComponent(); + Name = "License"; + } + + public LicenseView(IPluginDescription plugin) + : base() { + InitializeComponent(); + Name = "License of: " + plugin; + richTextBox.Text = plugin.LicenseText; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/MultiSelectListView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/MultiSelectListView.Designer.cs new file mode 100644 index 0000000000..22b5cba4d7 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/MultiSelectListView.Designer.cs @@ -0,0 +1,51 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class MultiSelectListView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/MultiSelectListView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/MultiSelectListView.cs new file mode 100644 index 0000000000..e05cfeaac6 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/MultiSelectListView.cs @@ -0,0 +1,95 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class MultiSelectListView : ListView { + public MultiSelectListView() { + InitializeComponent(); + } + + private bool inhibitAutoCheck; + protected override void OnMouseDown(MouseEventArgs e) { + inhibitAutoCheck = true; + base.OnMouseDown(e); + } + + protected override void OnMouseUp(MouseEventArgs e) { + base.OnMouseUp(e); + inhibitAutoCheck = false; + } + + // item check is raised for each selected item that was not directly clicked (those should be ignored) + // and then one the item whose checkbox was clicked + protected override void OnItemCheck(ItemCheckEventArgs ice) { + if (ice == null) throw new ArgumentNullException("ice"); + // don't change the checked state of items that were not clicked directly + if (inhibitAutoCheck) { + ice.NewValue = ice.CurrentValue; + } + // if this item was directly clicked then check if it is selected as well + var item = Items[ice.Index]; + if (!item.Selected) { + // when the item was not selected previously + // clear any selection + List selectedItems = new List(SelectedItems.OfType()); + selectedItems.ForEach(x => x.Selected = false); + // select only the clicked item + item.Selected = true; + } + base.OnItemCheck(ice); + } + + private bool suppressItemCheckedEvents; + public bool SuppressItemCheckedEvents { + get { + return suppressItemCheckedEvents; + } + set { + suppressItemCheckedEvents = value; + } + } + protected override void OnItemChecked(ItemCheckedEventArgs e) { + if (!suppressItemCheckedEvents) + base.OnItemChecked(e); + } + + public void CheckItems(IEnumerable items) { + suppressItemCheckedEvents = true; + + foreach (var item in items) + item.Checked = true; + suppressItemCheckedEvents = false; + } + + public void UncheckItems(IEnumerable items) { + suppressItemCheckedEvents = true; + + foreach (var item in items) + item.Checked = false; + suppressItemCheckedEvents = false; + } + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginUpdaterForm.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginUpdaterForm.Designer.cs new file mode 100644 index 0000000000..9a44a4643e --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginUpdaterForm.Designer.cs @@ -0,0 +1,122 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class PluginUpdaterForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.progressBar = new System.Windows.Forms.ProgressBar(); + this.statusLabel = new System.Windows.Forms.Label(); + this.okButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // progressBar + // + this.progressBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar.Location = new System.Drawing.Point(12, 73); + this.progressBar.Name = "progressBar"; + this.progressBar.Size = new System.Drawing.Size(350, 23); + this.progressBar.TabIndex = 1; + this.progressBar.UseWaitCursor = true; + // + // statusLabel + // + this.statusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.statusLabel.AutoSize = true; + this.statusLabel.Location = new System.Drawing.Point(13, 13); + this.statusLabel.Name = "statusLabel"; + this.statusLabel.Size = new System.Drawing.Size(61, 13); + this.statusLabel.TabIndex = 2; + this.statusLabel.Text = "statusLabel"; + this.statusLabel.UseWaitCursor = true; + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.Location = new System.Drawing.Point(12, 73); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(78, 23); + this.okButton.TabIndex = 3; + this.okButton.Text = "Ok"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.UseWaitCursor = true; + this.okButton.Visible = false; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // PluginUpdaterForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(374, 108); + this.Controls.Add(this.okButton); + this.Controls.Add(this.statusLabel); + this.Controls.Add(this.progressBar); + this.Cursor = System.Windows.Forms.Cursors.WaitCursor; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "PluginUpdaterForm"; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Plugin Updater"; + this.UseWaitCursor = true; + this.Load += new System.EventHandler(this.PluginUpdaterForm_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ProgressBar progressBar; + private System.Windows.Forms.Label statusLabel; + private System.Windows.Forms.Button okButton; + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginUpdaterForm.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginUpdaterForm.cs new file mode 100644 index 0000000000..9108b003f5 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginUpdaterForm.cs @@ -0,0 +1,261 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class PluginUpdaterForm : Form, IStatusView { + private InstallationManager installationManager; + private PluginManager pluginManager; + private string pluginDir; + private BackgroundWorker updatePluginsBackgroundWorker; + + public PluginUpdaterForm(PluginManager pluginManager) + : base() { + InitializeComponent(); + Text = "HeuristicLab Plugin Manager " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + pluginManager.PluginLoaded += pluginManager_PluginLoaded; + pluginManager.PluginUnloaded += pluginManager_PluginUnloaded; + pluginManager.Initializing += pluginManager_Initializing; + pluginManager.Initialized += pluginManager_Initialized; + + pluginDir = Application.StartupPath; + + installationManager = new InstallationManager(pluginDir); + installationManager.PluginInstalled += new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved += new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated += new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin += new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin += new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin += new EventHandler(installationManager_PreUpdatePlugin); + + this.pluginManager = pluginManager; + + updatePluginsBackgroundWorker = new BackgroundWorker(); + updatePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updatePluginsBackgroundWorker_DoWork); + updatePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updatePluginsBackgroundWorker_RunWorkerCompleted); + } + + + private void PluginUpdaterForm_Load(object sender, EventArgs e) { + updatePluginsBackgroundWorker.RunWorkerAsync(); + ShowProgressIndicator(); + ShowMessage("Downloading and installing plugins..."); + } + + #region event handlers for update plugins backgroundworker + void updatePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + ShowError("Installation Error", "There was a problem while downloading and installing updates." + Environment.NewLine + "Please check your connection settings."); + } else { + Close(); + } + } + + void updatePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { + IEnumerable installedPlugins = pluginManager.Plugins.OfType().ToList(); + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in installedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where Util.IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + if (pluginsToUpdate.Count() > 0) { + bool canceled; + installationManager.Update(pluginsToUpdate, out canceled); + if (!canceled) + pluginManager.DiscoverAndCheckPlugins(); + e.Cancel = false; + } + } + #endregion + + #region plugin manager event handlers + private void pluginManager_Initialized(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initialized PluginInfrastructure"); + } + + private void pluginManager_Initializing(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Initializing PluginInfrastructure"); + } + + private void pluginManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Unloaded " + e.Entity); + } + + private void pluginManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Loaded " + e.Entity); + } + #endregion + + #region installation manager event handlers + private void installationManager_PreUpdatePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmUpdateAction, e.Plugins) == false; + } + } + + private void installationManager_PreRemovePlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) { + e.Cancel = (bool)Invoke((Func, bool>)ConfirmRemoveAction, e.Plugins) == false; + } + } + + private void installationManager_PreInstallPlugin(object sender, PluginInfrastructureCancelEventArgs e) { + if (e.Plugins.Count() > 0) + if ((bool)Invoke((Func, bool>)ConfirmInstallAction, e.Plugins) == true) { + SetStatusStrip("Installing " + e.Plugins.Aggregate("", (a, b) => a.ToString() + "; " + b.ToString())); + e.Cancel = false; + } else { + e.Cancel = true; + SetStatusStrip("Install canceled"); + } + } + + private void installationManager_PluginUpdated(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Updated " + e.Entity); + } + + private void installationManager_PluginRemoved(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Removed " + e.Entity); + } + + private void installationManager_PluginInstalled(object sender, PluginInfrastructureEventArgs e) { + SetStatusStrip("Installed " + e.Entity); + } + #endregion + + #region confirmation dialogs + private bool ConfirmRemoveAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + foreach (var file in plugin.Files) { + strBuilder.AppendLine(Path.GetFileName(file.Name)); + } + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Delete", "Do you want to delete following files?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmUpdateAction(IEnumerable plugins) { + StringBuilder strBuilder = new StringBuilder(); + foreach (var plugin in plugins) { + strBuilder.AppendLine(plugin.ToString()); + } + using (var confirmationDialog = new ConfirmationDialog("Confirm Update", "Do you want to update following plugins?", strBuilder.ToString())) { + return (confirmationDialog.ShowDialog(this)) == DialogResult.OK; + } + } + + private bool ConfirmInstallAction(IEnumerable plugins) { + foreach (var plugin in plugins) { + if (!string.IsNullOrEmpty(plugin.LicenseText)) { + using (var licenseConfirmationBox = new LicenseConfirmationDialog(plugin)) { + if (licenseConfirmationBox.ShowDialog(this) != DialogResult.OK) + return false; + } + } + } + return true; + } + + + #endregion + + #region helper methods + private void SetStatusStrip(string msg) { + if (InvokeRequired) Invoke((Action)SetStatusStrip, msg); + else { + statusLabel.Text = msg; + } + } + + #endregion + + + protected override void OnClosing(CancelEventArgs e) { + installationManager.PluginInstalled -= new EventHandler(installationManager_PluginInstalled); + installationManager.PluginRemoved -= new EventHandler(installationManager_PluginRemoved); + installationManager.PluginUpdated -= new EventHandler(installationManager_PluginUpdated); + installationManager.PreInstallPlugin -= new EventHandler(installationManager_PreInstallPlugin); + installationManager.PreRemovePlugin -= new EventHandler(installationManager_PreRemovePlugin); + installationManager.PreUpdatePlugin -= new EventHandler(installationManager_PreUpdatePlugin); + base.OnClosing(e); + } + + #region IStatusView Members + + public void ShowProgressIndicator(double percentProgress) { + if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException("percentProgress"); + progressBar.Visible = true; + progressBar.Style = ProgressBarStyle.Continuous; + int range = progressBar.Maximum - progressBar.Minimum; + progressBar.Value = (int)(percentProgress * range + progressBar.Minimum); + } + + public void ShowProgressIndicator() { + progressBar.Visible = true; + progressBar.Style = ProgressBarStyle.Marquee; + } + + public void HideProgressIndicator() { + progressBar.Visible = false; + } + + public void ShowMessage(string message) { + statusLabel.Text = message; + } + + public void RemoveMessage(string message) { + statusLabel.Text = string.Empty; + } + + public void LockUI() { + Cursor = Cursors.AppStarting; + } + public void UnlockUI() { + Cursor = Cursors.Default; + } + public void ShowError(string shortMessage, string description) { + progressBar.Visible = false; + okButton.Visible = true; + statusLabel.Text = shortMessage + Environment.NewLine + description; + this.Cursor = Cursors.Default; + } + #endregion + + private void okButton_Click(object sender, EventArgs e) { + Close(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginView.Designer.cs new file mode 100644 index 0000000000..6dd20652ee --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginView.Designer.cs @@ -0,0 +1,356 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class PluginView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.nameLabel = new System.Windows.Forms.Label(); + this.nameTextBox = new System.Windows.Forms.TextBox(); + this.versionTextBox = new System.Windows.Forms.TextBox(); + this.versionLabel = new System.Windows.Forms.Label(); + this.contactTextBox = new System.Windows.Forms.TextBox(); + this.contactInfoLabel = new System.Windows.Forms.Label(); + this.dependenciesGroupBox = new System.Windows.Forms.GroupBox(); + this.dependenciesListView = new System.Windows.Forms.ListView(); + this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginsImageList = new System.Windows.Forms.ImageList(this.components); + this.filesListView = new System.Windows.Forms.ListView(); + this.fileNameHeader = new System.Windows.Forms.ColumnHeader(); + this.fileTypeHeader = new System.Windows.Forms.ColumnHeader(); + this.filesImageList = new System.Windows.Forms.ImageList(this.components); + this.filesGroupBox = new System.Windows.Forms.GroupBox(); + this.stateTextBox = new System.Windows.Forms.TextBox(); + this.stateLabel = new System.Windows.Forms.Label(); + this.errorLabel = new System.Windows.Forms.Label(); + this.descriptionLabel = new System.Windows.Forms.Label(); + this.descriptionTextBox = new System.Windows.Forms.TextBox(); + this.errorTextBox = new System.Windows.Forms.TextBox(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.showLicenseButton = new System.Windows.Forms.Button(); + this.dependenciesGroupBox.SuspendLayout(); + this.filesGroupBox.SuspendLayout(); + this.SuspendLayout(); + // + // nameLabel + // + this.nameLabel.AutoSize = true; + this.nameLabel.Location = new System.Drawing.Point(9, 15); + this.nameLabel.Name = "nameLabel"; + this.nameLabel.Size = new System.Drawing.Size(38, 13); + this.nameLabel.TabIndex = 0; + this.nameLabel.Text = "Name:"; + // + // nameTextBox + // + this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.nameTextBox.Location = new System.Drawing.Point(78, 12); + this.nameTextBox.Name = "nameTextBox"; + this.nameTextBox.ReadOnly = true; + this.nameTextBox.Size = new System.Drawing.Size(594, 20); + this.nameTextBox.TabIndex = 1; + // + // versionTextBox + // + this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.versionTextBox.Location = new System.Drawing.Point(78, 38); + this.versionTextBox.Name = "versionTextBox"; + this.versionTextBox.ReadOnly = true; + this.versionTextBox.Size = new System.Drawing.Size(594, 20); + this.versionTextBox.TabIndex = 3; + // + // versionLabel + // + this.versionLabel.AutoSize = true; + this.versionLabel.Location = new System.Drawing.Point(9, 41); + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size(45, 13); + this.versionLabel.TabIndex = 2; + this.versionLabel.Text = "Version:"; + // + // contactTextBox + // + this.contactTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.contactTextBox.Location = new System.Drawing.Point(78, 64); + this.contactTextBox.Name = "contactTextBox"; + this.contactTextBox.ReadOnly = true; + this.contactTextBox.Size = new System.Drawing.Size(594, 20); + this.contactTextBox.TabIndex = 5; + // + // contactInfoLabel + // + this.contactInfoLabel.AutoSize = true; + this.contactInfoLabel.Location = new System.Drawing.Point(9, 67); + this.contactInfoLabel.Name = "contactInfoLabel"; + this.contactInfoLabel.Size = new System.Drawing.Size(47, 13); + this.contactInfoLabel.TabIndex = 4; + this.contactInfoLabel.Text = "Contact:"; + // + // dependenciesGroupBox + // + this.dependenciesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dependenciesGroupBox.Controls.Add(this.dependenciesListView); + this.dependenciesGroupBox.Location = new System.Drawing.Point(12, 324); + this.dependenciesGroupBox.Name = "dependenciesGroupBox"; + this.dependenciesGroupBox.Size = new System.Drawing.Size(663, 198); + this.dependenciesGroupBox.TabIndex = 1; + this.dependenciesGroupBox.TabStop = false; + this.dependenciesGroupBox.Text = "Dependencies"; + // + // dependenciesListView + // + this.dependenciesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameHeader, + this.pluginVersionHeader, + this.pluginDescriptionHeader}); + this.dependenciesListView.Dock = System.Windows.Forms.DockStyle.Fill; + this.dependenciesListView.Location = new System.Drawing.Point(3, 16); + this.dependenciesListView.Name = "dependenciesListView"; + this.dependenciesListView.Size = new System.Drawing.Size(657, 179); + this.dependenciesListView.SmallImageList = this.pluginsImageList; + this.dependenciesListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.dependenciesListView.TabIndex = 0; + this.dependenciesListView.UseCompatibleStateImageBehavior = false; + this.dependenciesListView.View = System.Windows.Forms.View.Details; + this.dependenciesListView.ItemActivate += new System.EventHandler(this.dependenciesListView_ItemActivate); + // + // pluginNameHeader + // + this.pluginNameHeader.Text = "Name"; + this.pluginNameHeader.Width = 200; + // + // pluginVersionHeader + // + this.pluginVersionHeader.Text = "Version"; + this.pluginVersionHeader.Width = 120; + // + // pluginDescriptionHeader + // + this.pluginDescriptionHeader.Text = "Description"; + this.pluginDescriptionHeader.Width = 325; + // + // pluginsImageList + // + this.pluginsImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginsImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginsImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // filesListView + // + this.filesListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.fileNameHeader, + this.fileTypeHeader}); + this.filesListView.Dock = System.Windows.Forms.DockStyle.Fill; + this.filesListView.Location = new System.Drawing.Point(3, 16); + this.filesListView.Name = "filesListView"; + this.filesListView.Size = new System.Drawing.Size(657, 131); + this.filesListView.SmallImageList = this.filesImageList; + this.filesListView.TabIndex = 0; + this.filesListView.UseCompatibleStateImageBehavior = false; + this.filesListView.View = System.Windows.Forms.View.Details; + // + // fileNameHeader + // + this.fileNameHeader.Text = "Name"; + this.fileNameHeader.Width = 200; + // + // fileTypeHeader + // + this.fileTypeHeader.Text = "Type"; + this.fileTypeHeader.Width = 120; + // + // filesImageList + // + this.filesImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.filesImageList.ImageSize = new System.Drawing.Size(16, 16); + this.filesImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // filesGroupBox + // + this.filesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.filesGroupBox.Controls.Add(this.filesListView); + this.filesGroupBox.Location = new System.Drawing.Point(12, 168); + this.filesGroupBox.Name = "filesGroupBox"; + this.filesGroupBox.Size = new System.Drawing.Size(663, 150); + this.filesGroupBox.TabIndex = 11; + this.filesGroupBox.TabStop = false; + this.filesGroupBox.Text = "Files"; + // + // stateTextBox + // + this.stateTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.stateTextBox.Location = new System.Drawing.Point(78, 116); + this.stateTextBox.Name = "stateTextBox"; + this.stateTextBox.ReadOnly = true; + this.stateTextBox.Size = new System.Drawing.Size(594, 20); + this.stateTextBox.TabIndex = 13; + // + // stateLabel + // + this.stateLabel.AutoSize = true; + this.stateLabel.Location = new System.Drawing.Point(9, 119); + this.stateLabel.Name = "stateLabel"; + this.stateLabel.Size = new System.Drawing.Size(35, 13); + this.stateLabel.TabIndex = 12; + this.stateLabel.Text = "State:"; + // + // errorLabel + // + this.errorLabel.AutoSize = true; + this.errorLabel.Location = new System.Drawing.Point(9, 145); + this.errorLabel.Name = "errorLabel"; + this.errorLabel.Size = new System.Drawing.Size(32, 13); + this.errorLabel.TabIndex = 15; + this.errorLabel.Text = "Error:"; + // + // descriptionLabel + // + this.descriptionLabel.AutoSize = true; + this.descriptionLabel.Location = new System.Drawing.Point(9, 93); + this.descriptionLabel.Name = "descriptionLabel"; + this.descriptionLabel.Size = new System.Drawing.Size(63, 13); + this.descriptionLabel.TabIndex = 17; + this.descriptionLabel.Text = "Description:"; + // + // descriptionTextBox + // + this.descriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.descriptionTextBox.Location = new System.Drawing.Point(78, 90); + this.descriptionTextBox.Multiline = true; + this.descriptionTextBox.Name = "descriptionTextBox"; + this.descriptionTextBox.ReadOnly = true; + this.descriptionTextBox.Size = new System.Drawing.Size(594, 20); + this.descriptionTextBox.TabIndex = 20; + // + // errorTextBox + // + this.errorTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.errorTextBox.Location = new System.Drawing.Point(78, 142); + this.errorTextBox.Multiline = true; + this.errorTextBox.Name = "errorTextBox"; + this.errorTextBox.ReadOnly = true; + this.errorTextBox.Size = new System.Drawing.Size(594, 20); + this.errorTextBox.TabIndex = 21; + // + // showLicenseButton + // + this.showLicenseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.showLicenseButton.Location = new System.Drawing.Point(12, 528); + this.showLicenseButton.Name = "showLicenseButton"; + this.showLicenseButton.Size = new System.Drawing.Size(87, 23); + this.showLicenseButton.TabIndex = 22; + this.showLicenseButton.Text = "Show License"; + this.toolTip.SetToolTip(this.showLicenseButton, "Show Plugin License"); + this.showLicenseButton.UseVisualStyleBackColor = true; + this.showLicenseButton.Click += new System.EventHandler(this.showLicenseButton_Click); + // + // PluginView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(687, 565); + this.Controls.Add(this.showLicenseButton); + this.Controls.Add(this.errorTextBox); + this.Controls.Add(this.descriptionTextBox); + this.Controls.Add(this.errorLabel); + this.Controls.Add(this.descriptionLabel); + this.Controls.Add(this.stateTextBox); + this.Controls.Add(this.stateLabel); + this.Controls.Add(this.dependenciesGroupBox); + this.Controls.Add(this.filesGroupBox); + this.Controls.Add(this.contactTextBox); + this.Controls.Add(this.contactInfoLabel); + this.Controls.Add(this.versionTextBox); + this.Controls.Add(this.versionLabel); + this.Controls.Add(this.nameTextBox); + this.Controls.Add(this.nameLabel); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.Name = "PluginView"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.dependenciesGroupBox.ResumeLayout(false); + this.filesGroupBox.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + protected System.Windows.Forms.Label nameLabel; + protected System.Windows.Forms.TextBox nameTextBox; + protected System.Windows.Forms.TextBox versionTextBox; + protected System.Windows.Forms.Label versionLabel; + protected System.Windows.Forms.TextBox contactTextBox; + protected System.Windows.Forms.Label contactInfoLabel; + protected System.Windows.Forms.GroupBox dependenciesGroupBox; + private System.Windows.Forms.ColumnHeader pluginNameHeader; + private System.Windows.Forms.ColumnHeader pluginVersionHeader; + protected System.Windows.Forms.ListView dependenciesListView; + private System.Windows.Forms.ListView filesListView; + private System.Windows.Forms.GroupBox filesGroupBox; + private System.Windows.Forms.ImageList pluginsImageList; + private System.Windows.Forms.ColumnHeader fileNameHeader; + private System.Windows.Forms.ColumnHeader fileTypeHeader; + protected System.Windows.Forms.TextBox stateTextBox; + protected System.Windows.Forms.Label stateLabel; + protected System.Windows.Forms.Label errorLabel; + protected System.Windows.Forms.Label descriptionLabel; + protected System.Windows.Forms.TextBox descriptionTextBox; + protected System.Windows.Forms.TextBox errorTextBox; + private System.Windows.Forms.ImageList filesImageList; + private System.Windows.Forms.ColumnHeader pluginDescriptionHeader; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.Button showLicenseButton; + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginView.cs new file mode 100644 index 0000000000..88417f8856 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/PluginView.cs @@ -0,0 +1,122 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class PluginView : Form { + private const string IMAGE_KEY_PLUGIN = "Plugin"; + private const string IMAGE_KEY_ASSEMBLY = "Assembly"; + private const string IMAGE_KEY_FILE = "File"; + private const string IMAGE_KEY_DOCUMENT = "Document"; + + private IPluginDescription plugin; + + public PluginView() + : base() { + InitializeComponent(); + PopulateImageList(); + } + + public PluginView(IPluginDescription plugin) + : base() { + InitializeComponent(); + PopulateImageList(); + + this.plugin = plugin; + this.Text = "Plugin Details: " + plugin.ToString(); + UpdateControls(); + } + + private void PopulateImageList() { + pluginsImageList.Images.Add(IMAGE_KEY_PLUGIN, HeuristicLab.PluginInfrastructure.Resources.Plugin); + filesImageList.Images.Add(IMAGE_KEY_ASSEMBLY, HeuristicLab.PluginInfrastructure.Resources.Assembly); + filesImageList.Images.Add(IMAGE_KEY_FILE, HeuristicLab.PluginInfrastructure.Resources.File); + filesImageList.Images.Add(IMAGE_KEY_DOCUMENT, HeuristicLab.PluginInfrastructure.Resources.Document); + } + + public void UpdateControls() { + string appDir = Path.GetDirectoryName(Application.ExecutablePath); + nameTextBox.Text = plugin.Name; + versionTextBox.Text = plugin.Version.ToString(); + contactTextBox.Text = CombineStrings(plugin.ContactName, plugin.ContactEmail); + toolTip.SetToolTip(contactTextBox, contactTextBox.Text); + descriptionTextBox.Text = plugin.Description; + toolTip.SetToolTip(descriptionTextBox, plugin.Description); + var localPlugin = plugin as PluginDescription; + if (localPlugin != null) { + stateTextBox.Text = localPlugin.PluginState.ToString(); + if (!string.IsNullOrEmpty(localPlugin.LoadingErrorInformation)) + errorTextBox.Text = localPlugin.LoadingErrorInformation.Replace(Environment.NewLine, " "); + toolTip.SetToolTip(stateTextBox, stateTextBox.Text + Environment.NewLine + errorTextBox.Text); + toolTip.SetToolTip(errorTextBox, errorTextBox.Text); + } + foreach (PluginDescription dependency in plugin.Dependencies) { + var depItem = new ListViewItem(new string[] { dependency.Name, dependency.Version.ToString(), dependency.Description }); + depItem.Tag = dependency; + depItem.ImageKey = IMAGE_KEY_PLUGIN; + dependenciesListView.Items.Add(depItem); + } + foreach (var file in plugin.Files) { + string displayedFileName = file.Name.Replace(appDir, string.Empty); + displayedFileName = displayedFileName.TrimStart(Path.DirectorySeparatorChar); + var fileItem = new ListViewItem(new string[] { displayedFileName, file.Type.ToString() }); + if (file.Type == PluginFileType.Assembly) { + fileItem.ImageKey = IMAGE_KEY_ASSEMBLY; + } else if (file.Type == PluginFileType.License) { + fileItem.ImageKey = IMAGE_KEY_DOCUMENT; + } else fileItem.ImageKey = IMAGE_KEY_FILE; + filesListView.Items.Add(fileItem); + } + Util.ResizeColumns(dependenciesListView.Columns.OfType()); + Util.ResizeColumns(filesListView.Columns.OfType()); + + showLicenseButton.Enabled = !string.IsNullOrEmpty(plugin.LicenseText); + } + + private string CombineStrings(string a, string b) { + if (string.IsNullOrEmpty(a)) + // a is empty + if (!string.IsNullOrEmpty(b)) return CombineStrings(b, string.Empty); + else return string.Empty; + // a is not empty + else if (string.IsNullOrEmpty(b)) return a; + // and b are not empty + else return a + ", " + b; + } + + private void dependenciesListView_ItemActivate(object sender, EventArgs e) { + if (dependenciesListView.SelectedItems.Count > 0) { + var dep = (PluginDescription)dependenciesListView.SelectedItems[0].Tag; + PluginView view = new PluginView(dep); + view.Show(this); + } + } + + private void showLicenseButton_Click(object sender, EventArgs e) { + LicenseView view = new LicenseView(plugin); + view.Show(this); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/UploadPluginsView.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/UploadPluginsView.Designer.cs new file mode 100644 index 0000000000..1e394d5027 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/UploadPluginsView.Designer.cs @@ -0,0 +1,161 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Advanced { + partial class UploadPluginsView { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.uploadButton = new System.Windows.Forms.Button(); + this.refreshButton = new System.Windows.Forms.Button(); + this.listView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView(); + this.pluginNameHeader = new System.Windows.Forms.ColumnHeader(); + this.localVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.serverVersionHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginImageList = new System.Windows.Forms.ImageList(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.SuspendLayout(); + // + // uploadButton + // + this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.uploadButton.Enabled = false; + this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.PublishToWeb; + this.uploadButton.Location = new System.Drawing.Point(78, 482); + this.uploadButton.Name = "uploadButton"; + this.uploadButton.Size = new System.Drawing.Size(114, 26); + this.uploadButton.TabIndex = 7; + this.uploadButton.Text = "Upload Selected"; + this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.uploadButton, "Upload selected plugins to the server"); + this.uploadButton.UseVisualStyleBackColor = true; + this.uploadButton.Click += new System.EventHandler(this.uploadButton_Click); + // + // refreshButton + // + this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.Internet; + this.refreshButton.Location = new System.Drawing.Point(0, 482); + this.refreshButton.Name = "refreshButton"; + this.refreshButton.Size = new System.Drawing.Size(72, 26); + this.refreshButton.TabIndex = 6; + this.refreshButton.Text = "Refresh"; + this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; + this.toolTip.SetToolTip(this.refreshButton, "Update list of plugins from the server"); + this.refreshButton.UseVisualStyleBackColor = true; + this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click); + // + // listView + // + this.listView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listView.CheckBoxes = true; + this.listView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameHeader, + this.localVersionHeader, + this.serverVersionHeader, + this.descriptionHeader}); + this.listView.Location = new System.Drawing.Point(0, 0); + this.listView.Name = "listView"; + this.listView.Size = new System.Drawing.Size(539, 476); + this.listView.SmallImageList = this.pluginImageList; + this.listView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.listView.SuppressItemCheckedEvents = false; + this.listView.TabIndex = 8; + this.listView.UseCompatibleStateImageBehavior = false; + this.listView.View = System.Windows.Forms.View.Details; + this.listView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listView_ItemChecked); + // + // pluginNameHeader + // + this.pluginNameHeader.Text = "Name"; + this.pluginNameHeader.Width = 40; + // + // localVersionHeader + // + this.localVersionHeader.Text = "Local Version"; + this.localVersionHeader.Width = 76; + // + // serverVersionHeader + // + this.serverVersionHeader.Text = "Server Version"; + this.serverVersionHeader.Width = 81; + // + // descriptionHeader + // + this.descriptionHeader.Text = "Description"; + this.descriptionHeader.Width = 335; + // + // pluginImageList + // + this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16); + this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // PluginEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.Controls.Add(this.listView); + this.Controls.Add(this.uploadButton); + this.Controls.Add(this.refreshButton); + this.Name = "PluginEditor"; + this.Size = new System.Drawing.Size(539, 508); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button refreshButton; + private System.Windows.Forms.Button uploadButton; + private MultiSelectListView listView; + private System.Windows.Forms.ColumnHeader pluginNameHeader; + private System.Windows.Forms.ColumnHeader localVersionHeader; + private System.Windows.Forms.ColumnHeader serverVersionHeader; + private System.Windows.Forms.ColumnHeader descriptionHeader; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ImageList pluginImageList; + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/UploadPluginsView.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/UploadPluginsView.cs new file mode 100644 index 0000000000..21eb7c9f38 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/UploadPluginsView.cs @@ -0,0 +1,308 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.ServiceModel; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal partial class UploadPluginsView : InstallationManagerControl { + private const string UploadMessage = "Uploading plugins..."; + private const string RefreshMessage = "Downloading plugin information from deployment service..."; + + private Dictionary localAndServerPlugins; + private BackgroundWorker pluginUploadWorker; + private BackgroundWorker refreshPluginsWorker; + + private PluginManager pluginManager; + public PluginManager PluginManager { + get { return pluginManager; } + set { pluginManager = value; } + } + + public UploadPluginsView() { + InitializeComponent(); + pluginImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + localAndServerPlugins = new Dictionary(); + + #region initialize backgroundworkers + pluginUploadWorker = new BackgroundWorker(); + pluginUploadWorker.DoWork += new DoWorkEventHandler(pluginUploadWorker_DoWork); + pluginUploadWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(pluginUploadWorker_RunWorkerCompleted); + + refreshPluginsWorker = new BackgroundWorker(); + refreshPluginsWorker.DoWork += new DoWorkEventHandler(refreshPluginsWorker_DoWork); + refreshPluginsWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshPluginsWorker_RunWorkerCompleted); + #endregion + } + + #region refresh plugins from server backgroundworker + void refreshPluginsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + UpdatePluginListView((IEnumerable)e.Result); + } + StatusView.HideProgressIndicator(); + StatusView.RemoveMessage(RefreshMessage); + StatusView.UnlockUI(); + } + + void refreshPluginsWorker_DoWork(object sender, DoWorkEventArgs e) { + // refresh available plugins + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = client.GetPlugins(); + client.Close(); + } + catch (TimeoutException) { + client.Abort(); + throw; + } + catch (FaultException) { + client.Abort(); + throw; + } + catch (CommunicationException) { + client.Abort(); + throw; + } + } + #endregion + + #region upload plugins to server backgroundworker + void pluginUploadWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { + if (e.Error != null) { + StatusView.ShowError("Connection Error", + "There was an error while connecting to the server." + Environment.NewLine + + "Please check your connection settings and user credentials."); + } else { + UpdatePluginListView((IEnumerable)e.Result); + } + StatusView.RemoveMessage(UploadMessage); + StatusView.HideProgressIndicator(); + StatusView.UnlockUI(); + } + + void pluginUploadWorker_DoWork(object sender, DoWorkEventArgs e) { + // upload plugins + var selectedPlugins = (IEnumerable)e.Argument; + DeploymentService.AdminServiceClient adminClient = DeploymentService.AdminServiceClientFactory.CreateClient(); + Dictionary cachedPluginDescriptions = + new Dictionary(); + try { + foreach (var plugin in IteratePlugins(selectedPlugins)) { + adminClient.DeployPlugin(MakePluginDescription(plugin, cachedPluginDescriptions), CreateZipPackage(plugin)); + } + adminClient.Close(); + } + catch (TimeoutException) { + adminClient.Abort(); + throw; + } + catch (FaultException) { + adminClient.Abort(); + throw; + } + catch (CommunicationException) { + adminClient.Abort(); + throw; + } + // refresh available plugins + var client = DeploymentService.UpdateServiceClientFactory.CreateClient(); + try { + e.Result = client.GetPlugins(); + client.Close(); + } + catch (TimeoutException) { + client.Abort(); + throw; + } + catch (FaultException) { + client.Abort(); + throw; + } + catch (CommunicationException) { + client.Abort(); + throw; + } + } + #endregion + + + #region button events + private void uploadButton_Click(object sender, EventArgs e) { + var selectedPlugins = from item in listView.Items.Cast() + where item.Checked + where item.Tag is IPluginDescription + select item.Tag as IPluginDescription; + if (selectedPlugins.Count() > 0) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(UploadMessage); + pluginUploadWorker.RunWorkerAsync(selectedPlugins.ToList()); + } + } + + private void refreshButton_Click(object sender, EventArgs e) { + StatusView.LockUI(); + StatusView.ShowProgressIndicator(); + StatusView.ShowMessage(RefreshMessage); + refreshPluginsWorker.RunWorkerAsync(); + } + + #endregion + + #region item list events + private bool ignoreItemCheckedEvents = false; + private void listView_ItemChecked(object sender, ItemCheckedEventArgs e) { + if (ignoreItemCheckedEvents) return; + List modifiedPlugins = new List(); + if (e.Item.Checked) { + foreach (ListViewItem item in listView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also check all dependencies + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependencies(plugin)) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + } + listView.CheckItems(modifiedPlugins.Select(x => FindItemForPlugin(x))); + } else { + foreach (ListViewItem item in listView.SelectedItems) { + var plugin = (IPluginDescription)item.Tag; + // also uncheck all dependent plugins + if (!modifiedPlugins.Contains(plugin)) + modifiedPlugins.Add(plugin); + foreach (var dep in Util.GetAllDependents(plugin, localAndServerPlugins.Keys)) { + if (!modifiedPlugins.Contains(dep)) + modifiedPlugins.Add(dep); + } + } + listView.UncheckItems(modifiedPlugins.Select(x => FindItemForPlugin(x))); + } + uploadButton.Enabled = (from i in listView.Items.OfType() + where i.Checked + select i).Any(); + } + #endregion + + #region helper methods + private void UpdatePluginListView(IEnumerable remotePlugins) { + // refresh local plugins + localAndServerPlugins.Clear(); + foreach (var plugin in pluginManager.Plugins) { + localAndServerPlugins.Add(plugin, null); + } + foreach (var plugin in remotePlugins) { + var matchingLocalPlugin = (from localPlugin in localAndServerPlugins.Keys + where localPlugin.Name == plugin.Name + where localPlugin.Version == plugin.Version + select localPlugin).SingleOrDefault(); + if (matchingLocalPlugin != null) { + localAndServerPlugins[matchingLocalPlugin] = plugin; + } + } + // refresh the list view with plugins + listView.Items.Clear(); + ignoreItemCheckedEvents = true; + foreach (var pair in localAndServerPlugins) { + var item = MakeListViewItem(pair.Key); + listView.Items.Add(item); + } + Util.ResizeColumns(listView.Columns.OfType()); + ignoreItemCheckedEvents = false; + } + + private IEnumerable IteratePlugins(IEnumerable plugins) { + HashSet yieldedItems = new HashSet(); + foreach (var plugin in plugins) { + foreach (var dependency in IteratePlugins(plugin.Dependencies)) { + if (!yieldedItems.Contains(dependency)) { + yieldedItems.Add(dependency); + yield return dependency; + } + } + if (!yieldedItems.Contains(plugin)) { + yieldedItems.Add(plugin); + yield return plugin; + } + } + } + + private static byte[] CreateZipPackage(IPluginDescription plugin) { + using (MemoryStream stream = new MemoryStream()) { + ZipArchive zipFile = new ZipArchive(stream, ZipArchiveMode.Create); + foreach (var file in plugin.Files) { + zipFile.CreateEntry(file.Name); + } + stream.Seek(0, SeekOrigin.Begin); + return stream.GetBuffer(); + } + } + + private ListViewItem MakeListViewItem(IPluginDescription plugin) { + ListViewItem item; + if (localAndServerPlugins[plugin] != null) { + item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), + localAndServerPlugins[plugin].Version.ToString(), localAndServerPlugins[plugin].Description }); + if (plugin.Version <= localAndServerPlugins[plugin].Version) + item.ForeColor = Color.Gray; + } else { + item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), + string.Empty, plugin.Description }); + } + item.Tag = plugin; + item.ImageIndex = 0; + item.Checked = false; + return item; + } + + private ListViewItem FindItemForPlugin(IPluginDescription dep) { + return (from i in listView.Items.Cast() + where i.Tag == dep + select i).Single(); + } + + private DeploymentService.PluginDescription MakePluginDescription(IPluginDescription plugin, Dictionary cachedPluginDescriptions) { + if (!cachedPluginDescriptions.ContainsKey(plugin)) { + var dependencies = (from dep in plugin.Dependencies + select MakePluginDescription(dep, cachedPluginDescriptions)) + .ToList(); + cachedPluginDescriptions.Add(plugin, + new DeploymentService.PluginDescription(plugin.Name, plugin.Version, dependencies, plugin.ContactName, plugin.ContactEmail, plugin.LicenseText)); + } + return cachedPluginDescriptions[plugin]; + } + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/Util.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/Util.cs new file mode 100644 index 0000000000..08ad17e335 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Advanced/Util.cs @@ -0,0 +1,75 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure.Advanced { + internal static class Util { + internal static void ResizeColumn(ColumnHeader columnHeader) { + columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); + int headerSize = columnHeader.Width; + columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); + int contentSize = columnHeader.Width; + columnHeader.Width = Math.Max(headerSize, contentSize); + } + + internal static void ResizeColumns(IEnumerable columnHeaders) { + foreach (var columnHeader in columnHeaders) + ResizeColumn(columnHeader); + } + + internal static IEnumerable GetAllDependents(IPluginDescription plugin, IEnumerable availablePlugins) { + return from p in availablePlugins + let matchingEntries = from dep in GetAllDependencies(p) + where dep.Name == plugin.Name + where dep.Version == plugin.Version + select dep + where matchingEntries.Any() + select p as IPluginDescription; + } + + internal static IEnumerable GetAllDependencies(IPluginDescription plugin) { + HashSet yieldedPlugins = new HashSet(); + foreach (var dep in plugin.Dependencies) { + foreach (var recDep in GetAllDependencies(dep)) { + if (!yieldedPlugins.Contains(recDep)) { + yieldedPlugins.Add(recDep); + yield return recDep; + } + } + if (!yieldedPlugins.Contains(dep)) { + yieldedPlugins.Add(dep); + yield return dep; + } + } + } + + // compares for two plugins with same major and minor version if plugin1 is newer than plugin2 + internal static bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) { + // newer: build version is higher, or if build version is the same revision is higher + return plugin1.Version.Build > plugin2.Version.Build || + (plugin1.Version.Build == plugin2.Version.Build && plugin1.Version.Revision > plugin2.Version.Revision); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/ApplicationManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/ApplicationManager.cs new file mode 100644 index 0000000000..4b269925c0 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/ApplicationManager.cs @@ -0,0 +1,55 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + + /// + /// The ApplicationManager has a reference to the application manager singleton. + /// + public static class ApplicationManager { + // the singleton instance is initialized to LightweightApplicationManager as long as no other application manager is registered + private static IApplicationManager appManager; + + /// + /// Gets the application manager singleton. + /// + public static IApplicationManager Manager { + get { + if (appManager == null) + appManager = new LightweightApplicationManager(); + return appManager; + } + } + + /// + /// Registers a new application manager. + /// + /// + internal static void RegisterApplicationManager(IApplicationManager manager) { + if (appManager != null && !(appManager is LightweightApplicationManager)) throw new InvalidOperationException("The application manager has already been set."); + else { + appManager = manager; + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/AssemblyHelpers.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/AssemblyHelpers.cs new file mode 100644 index 0000000000..af48f276ac --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/AssemblyHelpers.cs @@ -0,0 +1,55 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Reflection; + +namespace HeuristicLab.PluginInfrastructure { + public static class AssemblyHelpers { + //Based on the code from http://stackoverflow.com/a/7156425 + public static string GetCustomAttributeValue(Assembly assembly, string propertyName) + where T : Attribute { + if (assembly == null || string.IsNullOrEmpty(propertyName)) { + throw new ArgumentException("Arguments are not allowed to be null."); + } + + object[] attributes = assembly.GetCustomAttributes(typeof(T), false); + if (attributes.Length == 0) { + throw new InvalidOperationException(string.Format("No attributes of type {0} found in assembly {1}", typeof(T).Name, + assembly.FullName)); + } + + var attribute = (T)attributes[0]; + var propertyInfo = attribute.GetType().GetProperty(propertyName); + if (propertyInfo == null) { + throw new InvalidOperationException(string.Format("No property {0} found in attribute {1}, assembly: {2}", + propertyName, typeof(T).Name, assembly.FullName)); + } + + var value = propertyInfo.GetValue(attribute, null); + return value.ToString(); + } + + public static string GetFileVersion(Assembly assembly) { + return GetCustomAttributeValue(assembly, "Version"); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/ApplicationAttribute.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/ApplicationAttribute.cs new file mode 100644 index 0000000000..53552522e2 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/ApplicationAttribute.cs @@ -0,0 +1,86 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// This attribute can be used to specify meta data for applications. + /// For example to specify name and description of applications. + /// + [AttributeUsage(AttributeTargets.Class)] + public sealed class ApplicationAttribute : System.Attribute { + private string name; + /// + /// Gets the name of the application. + /// + public string Name { + get { return name; } + } + + private string description; + /// + /// Gets the description of the application. + /// + public string Description { + get { return description; } + } + + private bool restartOnErrors; + /// + /// Gets whether the plugin should be automatically restarted when it is closed because of an exception (for services). + /// + public bool RestartOnErrors { + get { return restartOnErrors; } + } + + /// + /// Initializes a new instance of . + /// Name of the application + /// + public ApplicationAttribute(string name) + : this(name, String.Empty) { + } + + /// + /// Initializes a new instance of . + /// Name of the application + /// Description of the application + /// + public ApplicationAttribute(string name, string description) + : this(name, description, false) { + } + + /// + /// Initializes a new instance of . + /// Name of the application + /// Description of the application + /// Flag that indicates if the application should be restarted on exceptions (for services) + /// + public ApplicationAttribute(string name, string description, bool restartOnErrors) { + if (name == null) throw new ArgumentNullException("name", "Application name is null."); + if (description == null) throw new ArgumentNullException("description", "Application description is null."); + this.name = name; + this.description = description; + this.restartOnErrors = restartOnErrors; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/ContactInformationAttribute.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/ContactInformationAttribute.cs new file mode 100644 index 0000000000..df5f2efae3 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/ContactInformationAttribute.cs @@ -0,0 +1,58 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// ContactInformationAttribute can be used to declare contact information (name, e-mail) for a plugin. + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] + public sealed class ContactInformationAttribute : System.Attribute { + private string name; + + /// + /// Gets the name of the contact person. + /// + public string Name { + get { return name; } + } + + private string email; + /// + /// Gets the e-mail address of the contact person. + /// + public string EMail { + get { return email; } + } + + /// + /// Initializes a new instance of . + /// Name of the contact person + /// E-mail address of the person + /// + public ContactInformationAttribute(string name, string email) { + if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(email)) throw new ArgumentException("Empty name or e-mail address."); + this.name = name; + this.email = email; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/NonDiscoverableTypeAttribute.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/NonDiscoverableTypeAttribute.cs new file mode 100644 index 0000000000..3c6c439d22 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/NonDiscoverableTypeAttribute.cs @@ -0,0 +1,37 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// This attribute can be used to specify that a class is excluded from type discovery + /// + [AttributeUsage(AttributeTargets.Class)] + public sealed class NonDiscoverableTypeAttribute : System.Attribute { + /// + /// Initializes a new instance of . + /// + public NonDiscoverableTypeAttribute() + : base() { + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginAttribute.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginAttribute.cs new file mode 100644 index 0000000000..1dd4c263ad --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginAttribute.cs @@ -0,0 +1,79 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// This attribute can be used to specify meta data for plugins. + /// For example to specify name and description of plugins. + /// + [AttributeUsage(AttributeTargets.Class)] + public sealed class PluginAttribute : System.Attribute { + private string name; + /// + /// Gets the name of the plugin. + /// + public string Name { + get { return name; } + } + + private string description; + /// + /// Gets the description of the plugin. + /// + public string Description { + get { return description; } + } + + private Version version; + /// + /// Gets the version of the plugin. + /// + public Version Version { + get { return version; } + } + + /// + /// Initializes a new instance of . + /// Name of the plugin + /// Version of the plugin + /// + public PluginAttribute(string name, string version) + : this(name, string.Empty, version) { + } + + /// + /// Initializes a new instance of . + /// + /// Name of the plugin + /// Description of the plugin + /// Version of the plugin + public PluginAttribute(string name, string description, string version) { + if (string.IsNullOrEmpty(name)) throw new ArgumentException("Plugin name is null or empty."); + if (description == null) throw new ArgumentNullException("description"); + if (string.IsNullOrEmpty(version)) throw new ArgumentException("Version string is null or empty."); + this.name = name; + this.description = description; + this.version = new Version(version); // throws format exception if the version string can't be parsed + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginDependencyAttribute.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginDependencyAttribute.cs new file mode 100644 index 0000000000..52035373e7 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginDependencyAttribute.cs @@ -0,0 +1,59 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// This attribute can be used to declare that a plugin depends on a another plugin. + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class PluginDependencyAttribute : System.Attribute { + private string dependency; + + /// + /// Gets the name of the plugin that is needed to load a plugin. + /// + public string Dependency { + get { return dependency; } + } + + private Version version; + /// + /// Gets the version of the plugin dependency. + /// + public Version Version { + get { return version; } + } + + /// + /// Initializes a new instance of . + /// + /// Name of the plugin dependency. + /// Version of the plugin dependency. + public PluginDependencyAttribute(string dependency, string version) { + if (string.IsNullOrEmpty(dependency)) throw new ArgumentException("Dependency name is null or empty.", "dependency"); + if (string.IsNullOrEmpty(version)) throw new ArgumentException("Dependency version is null or empty.", "version"); + this.dependency = dependency; + this.version = new Version(version); // throws format exception if the version string can't be parsed + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginFileAttribute.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginFileAttribute.cs new file mode 100644 index 0000000000..9a448a7e75 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Attributes/PluginFileAttribute.cs @@ -0,0 +1,83 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Enumerator of available file types for a plugin. + /// + public enum PluginFileType { + /// + /// CLR assembly files are loaded by the plugin infrastructure. + /// + Assembly, + /// + /// Native DLL files are ignored by the plugin infrastructure. + /// + NativeDll, + /// + /// Data files are any kind of support file for your plugin. + /// + Data, + /// + /// License files contain the license text of the plugin (ASCII encoding). + /// + License + }; + + /// + /// PluginFileAttribute can be used to declare which files make up an plugin. + /// Multiple files can be associated to an plugin. Each file should be associated to only one plugin. + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public sealed class PluginFileAttribute : System.Attribute { + private string fileName; + + /// + /// Gets the file name of the plugin. + /// + public string FileName { + get { return fileName; } + } + + private PluginFileType fileType = PluginFileType.Data; + + /// + /// Gets the file type of the plugin file. + /// + public PluginFileType FileType { + get { return fileType; } + } + + /// + /// Initializes a new instance of . + /// Name of the file + /// Type of the file (Assembly, NativeDll, Data, License) + /// + public PluginFileAttribute(string fileName, PluginFileType fileType) { + if (string.IsNullOrEmpty(fileName)) throw new ArgumentException("File name is empty.", "fileName"); + // NB: doesn't check if the file actually exists + this.fileName = fileName; + this.fileType = fileType; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/BaseClasses/ApplicationBase.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/BaseClasses/ApplicationBase.cs new file mode 100644 index 0000000000..b29ec5f723 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/BaseClasses/ApplicationBase.cs @@ -0,0 +1,73 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Abstract base implementation for the IApplication interface. + /// + public abstract class ApplicationBase : IApplication { + /// + /// Initializes a new instance of . + /// + protected ApplicationBase() { } + + private ApplicationAttribute ApplicationAttribute { + get { + object[] appAttributes = this.GetType().GetCustomAttributes(typeof(ApplicationAttribute), false); + + // exactly one attribute of the type ClassInfoAttribute must be given + if (appAttributes.Length == 0) { + throw new InvalidPluginException("ApplicationAttribute on type " + this.GetType() + " is missing."); + } else if (appAttributes.Length > 1) { + throw new InvalidPluginException("Found multiple ApplicationAttributes on type " + this.GetType()); + } + + return (ApplicationAttribute)appAttributes[0]; + } + } + + #region IApplication Members + + /// + /// Gets the name of the application. + /// + public string Name { + get { return ApplicationAttribute.Name; } + } + + /// + /// Gets the description of the application. + /// + public string Description { + get { + return ApplicationAttribute.Description; + } + } + + /// + /// Runs the application. + /// + public abstract void Run(ICommandLineArgument[] args); + + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/BaseClasses/PluginBase.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/BaseClasses/PluginBase.cs new file mode 100644 index 0000000000..419e7cc8f4 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/BaseClasses/PluginBase.cs @@ -0,0 +1,61 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Abstract base implementation of the IPlugin interface. + /// + public abstract class PluginBase : IPlugin { + /// + /// Initializes a new instance of . + /// + protected PluginBase() { } + + private PluginAttribute PluginAttribute { + get { + object[] pluginAttributes = this.GetType().GetCustomAttributes(typeof(PluginAttribute), false); + // exactly one attribute of the type PluginDescriptionAttribute must be given + if (pluginAttributes.Length == 0) { + throw new InvalidPluginException("PluginAttribute on type " + this.GetType() + " is missing."); + } else if (pluginAttributes.Length > 1) { + throw new InvalidPluginException("Found multiple PluginAttributes on type " + this.GetType()); + } + return (PluginAttribute)pluginAttributes[0]; + } + } + + #region IPlugin Members + /// + public string Name { + get { + return PluginAttribute.Name; + } + } + + /// + public virtual void OnLoad() { } + /// + public virtual void OnUnload() { } + #endregion + + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/HideStarterArgument.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/HideStarterArgument.cs new file mode 100644 index 0000000000..39bb92f539 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/HideStarterArgument.cs @@ -0,0 +1,37 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + [Serializable] + public class HideStarterArgument : CommandLineArgument { + public const string TOKEN = "hideStarter"; + + public HideStarterArgument(string value) + : base(string.IsNullOrEmpty(value)) { + } + + protected override bool CheckValidity() { + return Value; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/OpenArgument.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/OpenArgument.cs new file mode 100644 index 0000000000..4d741d81b0 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/OpenArgument.cs @@ -0,0 +1,36 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.IO; + +namespace HeuristicLab.PluginInfrastructure { + [Serializable] + public class OpenArgument : CommandLineArgument { + public OpenArgument(string value) + : base(value) { + } + + protected override bool CheckValidity() { + return File.Exists(Value); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/StartArgument.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/StartArgument.cs new file mode 100644 index 0000000000..401e4f9267 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/Arguments/StartArgument.cs @@ -0,0 +1,37 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + [Serializable] + public class StartArgument : CommandLineArgument { + public const string TOKEN = "start"; + + public StartArgument(string value) + : base(value) { + } + + protected override bool CheckValidity() { + return !string.IsNullOrEmpty(Value) && !string.IsNullOrWhiteSpace(Value); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/CommandLineArgument.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/CommandLineArgument.cs new file mode 100644 index 0000000000..932f731659 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/CommandLineArgument.cs @@ -0,0 +1,47 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + [Serializable] + public abstract class CommandLineArgument : ICommandLineArgument { + object ICommandLineArgument.Value { get { return Value; } } + public T Value { get; private set; } + public bool Valid { get { return CheckValidity(); } } + + protected CommandLineArgument(T value) { + Value = value; + } + + public override bool Equals(object obj) { + if (obj == null || this.GetType() != obj.GetType()) return false; + var other = (ICommandLineArgument)obj; + return this.Value.Equals(other.Value); + } + + public override int GetHashCode() { + return GetType().GetHashCode() ^ Value.GetHashCode(); + } + + protected abstract bool CheckValidity(); + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/CommandLineArgumentHandling.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/CommandLineArgumentHandling.cs new file mode 100644 index 0000000000..fa7e1adb6c --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/CommandLineArgumentHandling.cs @@ -0,0 +1,61 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; + +namespace HeuristicLab.PluginInfrastructure { + public static class CommandLineArgumentHandling { + public static ICommandLineArgument[] GetArguments(string[] args) { + var arguments = new HashSet(); + var exceptions = new List(); + + foreach (var entry in args) { + var argument = ParseArgument(entry); + if (argument != null && argument.Valid) arguments.Add(argument); + else exceptions.Add(new ArgumentException(string.Format("The argument \"{0}\" is invalid.", entry))); + } + + if (exceptions.Any()) throw new AggregateException("One or more arguments are invalid.", exceptions); + return arguments.ToArray(); + } + + private static ICommandLineArgument ParseArgument(string entry) { + var regex = new Regex(@"^/[A-Za-z]+(:\w[\w\s]*)?$"); + bool isFile = File.Exists(entry); + if (!regex.IsMatch(entry) && !isFile) return null; + if (!isFile) { + entry = entry.Remove(0, 1); + var parts = entry.Split(':'); + string key = parts[0].Trim(); + string value = parts.Length == 2 ? parts[1].Trim() : string.Empty; + switch (key) { + case StartArgument.TOKEN: return new StartArgument(value); + case HideStarterArgument.TOKEN: return new HideStarterArgument(value); + default: return null; + } + } else return new OpenArgument(entry); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/ICommandLineArgument.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/ICommandLineArgument.cs new file mode 100644 index 0000000000..f04f95a5b9 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/CommandLineArgumentHandling/ICommandLineArgument.cs @@ -0,0 +1,31 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure { + public interface ICommandLineArgument { + object Value { get; } + bool Valid { get; } + } + + public interface ICommandLineArgument : ICommandLineArgument { + new T Value { get; } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/ControlManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/ControlManager.cs new file mode 100644 index 0000000000..904b77ba86 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/ControlManager.cs @@ -0,0 +1,48 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Singleton class for the ControlManager (needed by HeuristicLab 3.2) + /// + public static class ControlManager { + // singleton: only one control manager allowed in each application (i.e. AppDomain) + private static IControlManager controlManager; + /// + /// Gets the control manager (is a singleton). + /// + public static IControlManager Manager { + get { return controlManager; } + } + + /// + /// Set the current control manager. + /// + /// The control manager + /// Throws exception when a control manager has previously been set. + public static void RegisterManager(IControlManager manager) { + if (controlManager != null) throw new InvalidOperationException("An control manager has already been set."); + controlManager = manager; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/DefaultApplicationManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/DefaultApplicationManager.cs new file mode 100644 index 0000000000..97dcf973b0 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/DefaultApplicationManager.cs @@ -0,0 +1,51 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + + /// + /// The DefaultApplicationManager is registered as ApplicationManager.Manager singleton for each HL application + /// started via the plugin infrastructure. + /// + internal sealed class DefaultApplicationManager : SandboxApplicationManager { + + internal DefaultApplicationManager() + : base() { + AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { + if (loadedAssemblies.ContainsKey(args.Name)) { + return loadedAssemblies[args.Name]; + } + return null; + }; + } + + /// infinite lease time + /// + /// Initializes the life time service with infinite lease time. + /// + /// null. + public override object InitializeLifetimeService() { + return null; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorDialog.Designer.cs new file mode 100644 index 0000000000..394eb6c3b6 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorDialog.Designer.cs @@ -0,0 +1,182 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure { + partial class ErrorDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.okButton = new System.Windows.Forms.Button(); + this.iconLabel = new System.Windows.Forms.Label(); + this.messageTextBox = new System.Windows.Forms.TextBox(); + this.detailsGroupBox = new System.Windows.Forms.GroupBox(); + this.detailsTextBox = new System.Windows.Forms.TextBox(); + this.supportLabel = new System.Windows.Forms.Label(); + this.supportLinkLabel = new System.Windows.Forms.LinkLabel(); + this.detailsGroupBox.SuspendLayout(); + this.SuspendLayout(); + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.Location = new System.Drawing.Point(497, 327); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 0; + this.okButton.Text = "&OK"; + this.okButton.UseVisualStyleBackColor = true; + // + // iconLabel + // + this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error; + this.iconLabel.Location = new System.Drawing.Point(12, 9); + this.iconLabel.Name = "iconLabel"; + this.iconLabel.Size = new System.Drawing.Size(50, 60); + this.iconLabel.TabIndex = 1; + // + // messageTextBox + // + this.messageTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.messageTextBox.BackColor = System.Drawing.SystemColors.Control; + this.messageTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.messageTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.messageTextBox.Location = new System.Drawing.Point(68, 12); + this.messageTextBox.Multiline = true; + this.messageTextBox.Name = "messageTextBox"; + this.messageTextBox.ReadOnly = true; + this.messageTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.messageTextBox.Size = new System.Drawing.Size(504, 57); + this.messageTextBox.TabIndex = 2; + this.messageTextBox.Text = "Error Message"; + // + // detailsGroupBox + // + this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.detailsGroupBox.Controls.Add(this.detailsTextBox); + this.detailsGroupBox.Location = new System.Drawing.Point(12, 75); + this.detailsGroupBox.Name = "detailsGroupBox"; + this.detailsGroupBox.Size = new System.Drawing.Size(560, 246); + this.detailsGroupBox.TabIndex = 3; + this.detailsGroupBox.TabStop = false; + this.detailsGroupBox.Text = "Details"; + // + // detailsTextBox + // + this.detailsTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.detailsTextBox.BackColor = System.Drawing.SystemColors.Control; + this.detailsTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.detailsTextBox.Location = new System.Drawing.Point(6, 19); + this.detailsTextBox.Multiline = true; + this.detailsTextBox.Name = "detailsTextBox"; + this.detailsTextBox.ReadOnly = true; + this.detailsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.detailsTextBox.Size = new System.Drawing.Size(548, 221); + this.detailsTextBox.TabIndex = 0; + this.detailsTextBox.Text = "Stack Trace"; + this.detailsTextBox.WordWrap = false; + // + // supportLabel + // + this.supportLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.supportLabel.AutoSize = true; + this.supportLabel.Location = new System.Drawing.Point(12, 332); + this.supportLabel.Name = "supportLabel"; + this.supportLabel.Size = new System.Drawing.Size(264, 13); + this.supportLabel.TabIndex = 4; + this.supportLabel.Text = "If you have any problems or questions, please contact:"; + // + // supportLinkLabel + // + this.supportLinkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.supportLinkLabel.AutoSize = true; + this.supportLinkLabel.Location = new System.Drawing.Point(298, 332); + this.supportLinkLabel.Name = "supportLinkLabel"; + this.supportLinkLabel.Size = new System.Drawing.Size(129, 13); + this.supportLinkLabel.TabIndex = 5; + this.supportLinkLabel.TabStop = true; + this.supportLinkLabel.Text = "support@heuristiclab.com"; + this.supportLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.supportLinkLabel_LinkClicked); + // + // ErrorDialog + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.CancelButton = this.okButton; + this.ClientSize = new System.Drawing.Size(584, 362); + this.Controls.Add(this.supportLinkLabel); + this.Controls.Add(this.supportLabel); + this.Controls.Add(this.detailsGroupBox); + this.Controls.Add(this.messageTextBox); + this.Controls.Add(this.iconLabel); + this.Controls.Add(this.okButton); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.ErrorIcon; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ErrorDialog"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Error"; + this.TopMost = true; + this.detailsGroupBox.ResumeLayout(false); + this.detailsGroupBox.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Label iconLabel; + private System.Windows.Forms.TextBox messageTextBox; + private System.Windows.Forms.GroupBox detailsGroupBox; + private System.Windows.Forms.TextBox detailsTextBox; + private System.Windows.Forms.Label supportLabel; + private System.Windows.Forms.LinkLabel supportLinkLabel; + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorDialog.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorDialog.cs new file mode 100644 index 0000000000..a2bf5872f4 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorDialog.cs @@ -0,0 +1,64 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure { + public partial class ErrorDialog : Form { + public ErrorDialog() { + InitializeComponent(); + Initialize(null, null); + } + public ErrorDialog(Exception exception) + : this() { + Initialize(null, exception); + } + public ErrorDialog(string message, Exception exception) + : this() { + Initialize(message, exception); + } + + private void Initialize(string message, Exception exception) { + Text = "Error"; + if (exception != null) Text += " - " + exception.GetType().Name; + + if (!string.IsNullOrEmpty(message)) + messageTextBox.Text = message; + else if (exception != null) + messageTextBox.Text = exception.Message; + else + messageTextBox.Text = "Sorry, but something went wrong."; + messageTextBox.Enabled = !string.IsNullOrEmpty(messageTextBox.Text); + + detailsTextBox.Text = ErrorHandling.BuildErrorMessage(exception); + detailsGroupBox.Enabled = !string.IsNullOrEmpty(detailsTextBox.Text); + } + + private void supportLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + try { + System.Diagnostics.Process.Start("mailto:" + supportLinkLabel.Text); + supportLinkLabel.LinkVisited = true; + } + catch (Exception) { } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorHandling.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorHandling.cs new file mode 100644 index 0000000000..a6f4b188ae --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/ErrorHandling.cs @@ -0,0 +1,70 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure { + public static class ErrorHandling { + public static string BuildErrorMessage(Exception exception) { + if (exception == null) { + return string.Empty; + } else { + string message = + "HeuristicLab version: " + AssemblyHelpers.GetFileVersion(typeof(ErrorHandling).Assembly) + Environment.NewLine + + exception.GetType().Name + ": " + exception.Message + Environment.NewLine + + exception.StackTrace; + + while (exception.InnerException != null) { + exception = exception.InnerException; + message += Environment.NewLine + + "-----" + Environment.NewLine + + exception.GetType().Name + ": " + exception.Message + Environment.NewLine + + exception.StackTrace; + } + return message; + } + } + + public static void ShowErrorDialog(Exception exception) { + ShowErrorDialog(string.Empty, exception); + } + public static void ShowErrorDialog(Control owner, Exception exception) { + ShowErrorDialog(owner, string.Empty, exception); + } + public static void ShowErrorDialog(string message, Exception exception) { + using (ErrorDialog dialog = new ErrorDialog(message, exception)) { + dialog.StartPosition = FormStartPosition.CenterScreen; + dialog.ShowDialog(); + } + } + public static void ShowErrorDialog(Control owner, string message, Exception exception) { + if (owner == null) throw new ArgumentNullException("owner"); + if (owner.InvokeRequired) { + owner.Invoke(new Action(ShowErrorDialog), owner, message, exception); + } else { + using (ErrorDialog dialog = new ErrorDialog(message, exception)) { + dialog.ShowDialog(owner); + } + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs new file mode 100644 index 0000000000..f027d8adb3 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/FrameworkVersionErrorDialog.Designer.cs @@ -0,0 +1,145 @@ +#region License Information +/* HeuristicLab +* Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) +* +* This file is part of HeuristicLab. +* +* HeuristicLab is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure { + partial class FrameworkVersionErrorDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.iconLabel = new System.Windows.Forms.Label(); + this.closeButton = new System.Windows.Forms.Button(); + this.linkLabel = new System.Windows.Forms.LinkLabel(); + this.label = new System.Windows.Forms.Label(); + this.linkLabelMono = new System.Windows.Forms.LinkLabel(); + this.SuspendLayout(); + // + // iconLabel + // + this.iconLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.iconLabel.Image = global::HeuristicLab.PluginInfrastructure.Resources.Error; + this.iconLabel.ImageAlign = System.Drawing.ContentAlignment.TopLeft; + this.iconLabel.Location = new System.Drawing.Point(12, 9); + this.iconLabel.Name = "iconLabel"; + this.iconLabel.Size = new System.Drawing.Size(50, 121); + this.iconLabel.TabIndex = 0; + // + // closeButton + // + this.closeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.closeButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.closeButton.Location = new System.Drawing.Point(294, 104); + this.closeButton.Name = "closeButton"; + this.closeButton.Size = new System.Drawing.Size(75, 23); + this.closeButton.TabIndex = 3; + this.closeButton.Text = "&Close"; + this.closeButton.UseVisualStyleBackColor = true; + this.closeButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // linkLabel + // + this.linkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.linkLabel.Location = new System.Drawing.Point(68, 52); + this.linkLabel.Name = "linkLabel"; + this.linkLabel.Size = new System.Drawing.Size(301, 49); + this.linkLabel.TabIndex = 2; + this.linkLabel.TabStop = true; + this.linkLabel.Text = "Download Microsoft .NET Framework 4.5"; + this.linkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel_LinkClicked); + // + // label + // + this.label.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label.Location = new System.Drawing.Point(68, 9); + this.label.Name = "label"; + this.label.Size = new System.Drawing.Size(301, 43); + this.label.TabIndex = 1; + this.label.Text = "To run HeuristicLab you need at least the Microsoft .NET Framework 4.5 or Mono ve" + + "rsion 3.6.0 or higher. Please download and install it."; + // + // linkLabelMono + // + this.linkLabelMono.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.linkLabelMono.Location = new System.Drawing.Point(68, 72); + this.linkLabelMono.Name = "linkLabelMono"; + this.linkLabelMono.Size = new System.Drawing.Size(301, 16); + this.linkLabelMono.TabIndex = 4; + this.linkLabelMono.TabStop = true; + this.linkLabelMono.Text = "Download Mono"; + this.linkLabelMono.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabelMono_LinkClicked); + // + // FrameworkVersionErrorDialog + // + this.AcceptButton = this.closeButton; + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.CancelButton = this.closeButton; + this.ClientSize = new System.Drawing.Size(381, 139); + this.Controls.Add(this.linkLabelMono); + this.Controls.Add(this.label); + this.Controls.Add(this.linkLabel); + this.Controls.Add(this.closeButton); + this.Controls.Add(this.iconLabel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "FrameworkVersionErrorDialog"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Error"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label iconLabel; + private System.Windows.Forms.Button closeButton; + private System.Windows.Forms.LinkLabel linkLabel; + private System.Windows.Forms.Label label; + private System.Windows.Forms.LinkLabel linkLabelMono; + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs new file mode 100644 index 0000000000..90b087bb76 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/ErrorHandling/FrameworkVersionErrorDialog.cs @@ -0,0 +1,115 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Reflection; +using System.Windows.Forms; + +namespace HeuristicLab.PluginInfrastructure { + public partial class FrameworkVersionErrorDialog : Form { + private const string NETVersionPath = @"Software\Microsoft\NET Framework Setup\NDP\v4\Full"; + private const string NETVersion = "Version"; + + public static bool NET4_5Installed { + get { + try { + var registryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(NETVersionPath); + if (registryKey != null) { + var versionKey = registryKey.GetValue(NETVersion); + if (versionKey != null) { + Version version = new Version(versionKey.ToString()); + return version.Major >= 4 && version.Minor >= 5; + } + } + } + catch (System.Security.SecurityException) { + return false; + } + return false; + } + } + + public static bool MonoInstalled { + get { return Type.GetType("Mono.Runtime") != null; } + } + + public static bool MonoCorrectVersionInstalled { + get { + var monoVersion = MonoVersion; + var minRequiredVersion = new Version(3, 6, 0); + + //we need at least mono version 3.6.0 + if (monoVersion != null && monoVersion >= minRequiredVersion) { + return true; + } else { + return false; + } + } + } + + public static Version MonoVersion { + get { + Type type = Type.GetType("Mono.Runtime"); + if (type != null) { + MethodInfo dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); + if (dispalayName != null) { + string versionString = dispalayName.Invoke(null, null) as string; + if (versionString != null) { + // the version string looks something like: 2.11.4 (master/99d5e54 Thu Sep 6 15:55:44 CEST 2012) + var subVerStrings = versionString.Split(' '); + if (subVerStrings.Length > 0) { + try { + return Version.Parse(subVerStrings[0]); + } + catch { } + } + } + } + } + return null; + } + } + + public FrameworkVersionErrorDialog() { + InitializeComponent(); + } + + private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + try { + System.Diagnostics.Process.Start("http://www.microsoft.com/en-us/download/details.aspx?id=30653"); + linkLabel.LinkVisited = true; + } + catch (Exception) { } + } + + private void cancelButton_Click(object sender, EventArgs e) { + Application.Exit(); + } + + private void linkLabelMono_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + try { + System.Diagnostics.Process.Start("http://www.mono-project.org"); + linkLabelMono.LinkVisited = true; + } + catch (Exception) { } + } + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/HeuristicLab.PluginInfrastructure.Views-3.3.csproj b/HeuristicLab.PluginInfrastructure.Views/3.3/HeuristicLab.PluginInfrastructure.Views-3.3.csproj new file mode 100644 index 0000000000..dec51b8fb8 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/HeuristicLab.PluginInfrastructure.Views-3.3.csproj @@ -0,0 +1,379 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {94186A6A-5176-4402-AE83-886557B53CCA} + Library + Properties + HeuristicLab.PluginInfrastructure + HeuristicLab.PluginInfrastructure-3.3 + + + true + HeuristicLab.snk + + + 3.5 + + + v4.7.2 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + $(SolutionDir)\bin\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + $(SolutionDir)\bin\ + TRACE + prompt + 4 + false + + + false + + + true + $(SolutionDir)\bin\ + DEBUG;TRACE + full + x86 + prompt + false + + + $(SolutionDir)\bin\ + TRACE + + + true + pdbonly + x86 + prompt + false + + + true + $(SolutionDir)\bin\ + DEBUG;TRACE + full + x64 + prompt + false + + + $(SolutionDir)\bin\ + TRACE + + + true + pdbonly + x64 + prompt + false + + + + + + + + + + + + + + + + UserControl + + + AvailablePluginsView.cs + + + UserControl + + + BasicUpdateView.cs + + + Form + + + ConfirmationDialog.cs + + + Form + + + ConnectionSetupView.cs + + + Form + + + PluginUpdaterForm.cs + + + + + + + UserControl + + + EditProductsView.cs + + + UserControl + + + InstalledPluginsView.cs + + + Form + + + LicenseConfirmationDialog.cs + + + UserControl + + + UploadPluginsView.cs + + + + UserControl + + + InstallationManagerControl.cs + + + + + Form + + + InstallationManagerForm.cs + + + Code + + + Code + + + + Form + + + LicenseView.cs + + + Component + + + MultiSelectListView.cs + + + Form + + + PluginView.cs + + + + + + + + + + + + + + + + + + + + Form + + + ErrorDialog.cs + + + + + Form + + + FrameworkVersionErrorDialog.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + + + + + PublicSettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + True + True + Resources.resx + + + + Form + + + AboutDialog.cs + + + Form + + + SplashScreen.cs + + + Form + + + StarterForm.cs + + + + + + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) +set ProjectDir=$(ProjectDir) +set SolutionDir=$(SolutionDir) +set Outdir=$(Outdir) + +call PreBuildEvent.cmd + +export ProjectDir=$(ProjectDir) +export SolutionDir=$(SolutionDir) + +$SolutionDir/PreBuildEvent.sh + + + \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/HeuristicLab.snk b/HeuristicLab.PluginInfrastructure.Views/3.3/HeuristicLab.snk new file mode 100644 index 0000000000..41ce51218d Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/HeuristicLab.snk differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplication.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplication.cs new file mode 100644 index 0000000000..7b12fed876 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplication.cs @@ -0,0 +1,41 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Interface that must be implemented by HeuristicLab applications. + /// + public interface IApplication { + /// + /// Gets the name of the application. + /// + string Name { get; } + /// + /// Gets the description of the application. + /// + string Description { get; } + /// + /// Main entry point for the application. + /// + void Run(ICommandLineArgument[] args); + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplicationDescription.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplicationDescription.cs new file mode 100644 index 0000000000..f435a4f516 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplicationDescription.cs @@ -0,0 +1,37 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Represents meta-data of an application. + /// + public interface IApplicationDescription { + /// + /// Gets the name of the application. + /// + string Name { get; } + /// + /// Gets the description of the application. + /// + string Description { get; } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplicationManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplicationManager.cs new file mode 100644 index 0000000000..29ad965316 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IApplicationManager.cs @@ -0,0 +1,118 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Reflection; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Interface for application managers. + /// + public interface IApplicationManager { + /// + /// Gets all discovered plugins. + /// + IEnumerable Plugins { get; } + + /// + /// Gets all discovered applications. + /// + IEnumerable Applications { get; } + + /// + /// Discovers and creates instances of and all types implementing or inheriting (directly and indirectly). + /// + /// The type or super-type to discover. + /// An enumerable of instances of the discovered types. + IEnumerable GetInstances() where T : class; + + /// + /// Discovers and creates instances of and all types implementing or inheriting (directly and indirectly). + /// + /// The type or super-type to discover. + /// An enumerable of instances of the discovered types. + IEnumerable GetInstances(Type type); + + /// + /// Discovers all types implementing or inheriting (directly and indirectly). + /// + /// The type to discover. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// An enumerable of discovered types. + IEnumerable GetTypes(Type type, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false); + + /// + /// Discovers all types implementing or inheriting all or any type in (directly and indirectly). + /// + /// The types to discover. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// Specifies if discovered types must implement or inherit all given . + /// An enumerable of discovered types. + IEnumerable GetTypes(IEnumerable types, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true); + + /// + /// Discovers all types implementing or inheriting (directly and indirectly) that are declared in any assembly of . + /// + /// The type to discover. + /// The declaring plugin. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// An enumerable of discovered types. + IEnumerable GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false); + + /// + /// Discovers all types implementing or inheriting all or any type in (directly and indirectly) that are declared in any assembly of . + /// + /// The types to discover. + /// The declaring plugin. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// /// Specifies if discovered types must implement or inherit all given . + /// An enumerable of discovered types. + IEnumerable GetTypes(IEnumerable types, IPluginDescription plugin, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true); + + + /// + /// Discovers all types implementing or inheriting (directly and indirectly) that are declared in the. + /// + /// The type to discover. + /// The declaring assembly. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// An enumerable of discovered types. + IEnumerable GetTypes(Type type, Assembly assembly, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false); + + /// + /// Discovers all types implementing or inheriting all or any type in (directly and indirectly) that are declaed in any assembly of . + /// + /// The types to discover. + /// The declaring assembly. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// /// Specifies if discovered types must implement or inherit all given . + /// An enumerable of discovered types. + IEnumerable GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true); + + /// + /// Finds the plugin that declares the type. + /// + /// The type of interest. + /// The description of the plugin that declares the given type or null if the type has not been declared by a known plugin. + IPluginDescription GetDeclaringPlugin(Type type); + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IControlManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IControlManager.cs new file mode 100644 index 0000000000..6182e2295d --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IControlManager.cs @@ -0,0 +1,34 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Interface for control managers. + /// + public interface IControlManager { + /// + /// Shows the given . + /// + /// The control to display. + void ShowControl(object control); + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPlugin.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPlugin.cs new file mode 100644 index 0000000000..c2101918e4 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPlugin.cs @@ -0,0 +1,48 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Represents a plugin. + /// Plugin developers have to include exactly one class that implements this interface in one of the + /// assemblies of the plugin. + /// OnLoad() and OnUnLoad() are called by the framework when the plugin is loaded/unloaded. + /// + public interface IPlugin { + /// + /// Gets the name of the plugin. + /// + string Name { get; } + + /// + /// Called by the framework whenever the plugin is loaded. + /// Plugins are loaded when a new application is started from the starter. + /// + void OnLoad(); + + /// + /// Called by the framework whenever the plugin is unloaded. + /// Plugins are unloaded when an application exits. + /// + void OnUnload(); + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPluginDescription.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPluginDescription.cs new file mode 100644 index 0000000000..00ee3767a3 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPluginDescription.cs @@ -0,0 +1,63 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Represents meta-data of a plugin. + /// + public interface IPluginDescription { + /// + /// Gets the name of the plugin. + /// + string Name { get; } + /// + /// Gets the version of the plugin. + /// + Version Version { get; } + /// + /// Gets the description of the plugin. + /// + string Description { get; } + /// + /// Gets the dependencies of the plugin. + /// + IEnumerable Dependencies { get; } + /// + /// Gets the file names of files that are part of the plugin. + /// + IEnumerable Files { get; } + /// + /// Gets the name of the contact person of the plugin. + /// + string ContactName { get; } + /// + /// Gets the e-mail address of the contact person of the plugin. + /// + string ContactEmail { get; } + /// + /// Gets the license text of the plugin. + /// + string LicenseText { get; } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPluginFile.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPluginFile.cs new file mode 100644 index 0000000000..c6d558a862 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Interfaces/IPluginFile.cs @@ -0,0 +1,37 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Represents a file of a plugin (name and type). + /// + public interface IPluginFile { + /// + /// Gets the name of the file. + /// + string Name { get; } + /// + /// Gets the type of the file. + /// + PluginFileType Type { get; } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/InvalidPluginException.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/InvalidPluginException.cs new file mode 100644 index 0000000000..47d0d2ada9 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/InvalidPluginException.cs @@ -0,0 +1,53 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Runtime.Serialization; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Exception class for invalid plugins. + /// + [Serializable] + public sealed class InvalidPluginException : Exception { + /// + /// Initializes a new InvalidPluginException + /// + public InvalidPluginException() : base() { } + /// + /// Initializes a new InvalidPluginException with an error message. + /// + /// The exception message + public InvalidPluginException(string message) : base(message) { } + /// + /// Initializes a new InvalidPluginException with an error message and an inner exception. + /// + /// The exception message. + /// The original exception. + public InvalidPluginException(string message, Exception innerException) : base(message, innerException) { } + /// + /// Constructor for serialization. + /// + /// The serialization info. + /// The serialization context. + private InvalidPluginException(SerializationInfo info, StreamingContext contex) : base(info, contex) { } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/LightweightApplicationManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/LightweightApplicationManager.cs new file mode 100644 index 0000000000..602de362be --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/LightweightApplicationManager.cs @@ -0,0 +1,216 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace HeuristicLab.PluginInfrastructure { + + /// + /// Lightweight application manager is set as the application manager as long as the plugin infrastructure is uninitialized. + /// The list of plugins and applications is empty. The default application manager is necessary to provide the type discovery + /// functionality in unit tests. + /// + internal sealed class LightweightApplicationManager : IApplicationManager { + internal LightweightApplicationManager() { + AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); + } + + Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { + return null; + } + + + #region IApplicationManager Members + /// + /// Gets an empty list of plugins. (LightweightApplicationManager doesn't support plugin discovery) + /// + public IEnumerable Plugins { + get { return new IPluginDescription[0]; } + } + + /// + /// Gets an empty list of applications. (LightweightApplicationManager doesn't support application discovery) + /// + public IEnumerable Applications { + get { return new IApplicationDescription[0]; } + } + + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type + /// + /// Most general type. + /// Enumerable of the created instances. + public IEnumerable GetInstances() where T : class { + return GetInstances(typeof(T)).Cast(); + } + + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type + /// + /// Most general type. + /// Enumerable of the created instances. + public IEnumerable GetInstances(Type type) { + List instances = new List(); + foreach (Type t in GetTypes(type)) { + object instance = null; + try { instance = Activator.CreateInstance(t); } + catch { } + if (instance != null) instances.Add(instance); + } + return instances; + } + + /// + /// Finds all instantiable types that are subtypes or equal to the specified types. + /// + /// Most general types for which to find matching types. + /// Return only types that are instantiable + /// (interfaces, abstract classes... are not returned) + /// Specifies if generic type definitions shall be included + /// Enumerable of the discovered types. + public IEnumerable GetTypes(IEnumerable types, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true) { + IEnumerable result = GetTypes(types.First(), onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + /// + /// Finds all types that are subtypes or equal to the specified type. + /// + /// Most general type for which to find matching types. + /// Return only types that are instantiable + /// (interfaces, abstract classes... are not returned) + /// Specifies if generic type definitions shall be included + /// Enumerable of the discovered types. + public IEnumerable GetTypes(Type type, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false) { + return from asm in AppDomain.CurrentDomain.GetAssemblies() + from t in GetTypes(type, asm, onlyInstantiable, includeGenericTypeDefinitions) + select t; + } + + /// + /// Gets types that are assignable (same of subtype) to the specified type only from the given assembly. + /// + /// Most general type we want to find. + /// Assembly that should be searched for types. + /// Return only types that are instantiable + /// (interfaces, abstract classes... are not returned) + /// Enumerable of the discovered types. + public IEnumerable GetTypes(Type type, Assembly assembly, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false) { + try { + // necessary to make sure the exception is immediately thrown + // instead of later when the enumerable is iterated? + var assemblyTypes = assembly.GetTypes(); + + var matchingTypes = from assemblyType in assembly.GetTypes() + let t = assemblyType.BuildType(type) + where t != null + where t.IsSubTypeOf(type) + where !t.IsNonDiscoverableType() + where onlyInstantiable == false || (!t.IsAbstract && !t.IsInterface && !t.HasElementType) + where includeGenericTypeDefinitions || !t.IsGenericTypeDefinition + select t; + + return matchingTypes; + } + catch (TypeLoadException) { + return Enumerable.Empty(); + } + catch (ReflectionTypeLoadException) { + return Enumerable.Empty(); + } + } + + /// + /// Discovers all types implementing or inheriting all or any type in (directly and indirectly) that are declared in the assembly . + /// + /// The types to discover. + /// The declaring assembly. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// /// Specifies if discovered types must implement or inherit all given . + /// An enumerable of discovered types. + public IEnumerable GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true) { + IEnumerable result = GetTypes(types.First(), assembly, onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, assembly, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + /// + /// Not supported by the LightweightApplicationManager + /// + /// + /// + /// + /// NotSupportedException + public IEnumerable GetTypes(Type type, IPluginDescription plugin) { + throw new NotSupportedException("LightweightApplicationManager doesn't support type discovery for plugins."); + } + + /// + /// Not supported by the LightweightApplicationManager + /// + /// + /// + /// + /// + /// + /// NotSupportedException + public IEnumerable GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false) { + throw new NotSupportedException("LightweightApplicationManager doesn't support type discovery for plugins."); + } + + /// + /// Not supported by the LightweightApplicationManager + /// + /// + /// + /// + /// + /// + /// NotSupportedException + public IEnumerable GetTypes(IEnumerable types, IPluginDescription plugin, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true) { + throw new NotSupportedException("LightweightApplicationManager doesn't support type discovery for plugins."); + } + + /// + /// Not supported by the LightweightApplicationManager + /// + /// + /// + /// NotSupportedException + public IPluginDescription GetDeclaringPlugin(Type type) { + throw new NotSupportedException("LightweightApplicationManager doesn't support type discovery for plugins."); + } + + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Main.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Main.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Main.cs rename to HeuristicLab.PluginInfrastructure.Views/3.3/Main.cs index e75e381d08..f520b21d03 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Main.cs +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Main.cs @@ -1,53 +1,53 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Starter; - -namespace HeuristicLab.PluginInfrastructure { - /// - /// Static class that contains the main entry point of the plugin infrastructure. - /// - public static class Main { - /// - /// Main entry point of the plugin infrastructure. Loads the starter form. - /// - /// Command line arguments - public static void Run(string[] args) { - if ((!FrameworkVersionErrorDialog.NET4_5Installed && !FrameworkVersionErrorDialog.MonoInstalled) - || (FrameworkVersionErrorDialog.MonoInstalled && !FrameworkVersionErrorDialog.MonoCorrectVersionInstalled)) { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new FrameworkVersionErrorDialog()); - } else { - try { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new StarterForm(args)); - } - catch (Exception ex) { - ErrorHandling.ShowErrorDialog(ex); - } - } - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Starter; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Static class that contains the main entry point of the plugin infrastructure. + /// + public static class Main { + /// + /// Main entry point of the plugin infrastructure. Loads the starter form. + /// + /// Command line arguments + public static void Run(string[] args) { + if ((!FrameworkVersionErrorDialog.NET4_5Installed && !FrameworkVersionErrorDialog.MonoInstalled) + || (FrameworkVersionErrorDialog.MonoInstalled && !FrameworkVersionErrorDialog.MonoCorrectVersionInstalled)) { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new FrameworkVersionErrorDialog()); + } else { + try { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new StarterForm(args)); + } + catch (Exception ex) { + ErrorHandling.ShowErrorDialog(ex); + } + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/ApplicationDescription.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/ApplicationDescription.cs new file mode 100644 index 0000000000..a90fc870db --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/ApplicationDescription.cs @@ -0,0 +1,89 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure.Manager { + /// + /// Class that provides information about an application. + /// + [Serializable] + public sealed class ApplicationDescription : IApplicationDescription { + private string name; + + /// + /// Gets or sets the name of the application. + /// + public string Name { + get { return name; } + internal set { name = value; } + } + private Version version; + + /// + /// Gets or sets the version of the application. + /// + internal Version Version { + get { return version; } + set { version = value; } + } + private string description; + + /// + /// Gets or sets the description of the application. + /// + public string Description { + get { return description; } + internal set { description = value; } + } + + private bool autoRestart; + /// + /// Gets or sets the boolean flag if the application should be automatically restarted. + /// + internal bool AutoRestart { + get { return autoRestart; } + set { autoRestart = value; } + } + + private string declaringAssemblyName; + /// + /// Gets or sets the name of the assembly that contains the IApplication type. + /// + internal string DeclaringAssemblyName { + get { return declaringAssemblyName; } + set { declaringAssemblyName = value; } + } + + private string declaringTypeName; + /// + /// Gets or sets the name of the type that implements the interface IApplication. + /// + internal string DeclaringTypeName { + get { return declaringTypeName; } + set { declaringTypeName = value; } + } + + public override string ToString() { + return Name + " " + Version; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginDescription.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginDescription.cs new file mode 100644 index 0000000000..2baf8fdf9d --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginDescription.cs @@ -0,0 +1,213 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace HeuristicLab.PluginInfrastructure.Manager { + /// + /// Holds information of loaded plugins that is needed for plugin management. + /// Used to represent plugins in AppDomains without loading the plugin assemblies. + /// + [Serializable] + public sealed class PluginDescription : IPluginDescription { + private int nTimesLoaded; + + private string name; + /// + /// Gets the name of the plugin. + /// + public string Name { + get { return name; } + internal set { name = value; } + } + + private string description; + /// + /// Gets or sets the description of the plugin. + /// + public string Description { + get { return description; } + internal set { description = value; } + } + private Version version; + /// + /// Gets the version of the plugin. + /// + public Version Version { + get { return version; } + internal set { version = value; } + } + + private string contactName; + /// + /// Gets or sets the name of the contact person for this plugin. + /// + public string ContactName { + get { return contactName; } + internal set { contactName = value; } + } + + private string contactEmail; + /// + /// Gets or sets the e-mail address of the contact person for this plugin. + /// + public string ContactEmail { + get { return contactEmail; } + internal set { contactEmail = value; } + } + private string licenseText; + /// + /// Gets or sets the license text of the plugin. + /// + public string LicenseText { + get { return licenseText; } + internal set { licenseText = value; } + } + + private PluginState pluginState; + /// + /// Gets or sets the plugin state. + /// + public PluginState PluginState { + get { return pluginState; } + } + + private string loadingErrorInformation; + /// + /// Gets the error message why this plugin has been disabled. + /// + internal string LoadingErrorInformation { + get { + return loadingErrorInformation; + } + } + + private List files = new List(); + /// + /// Gets the names of all files that belong to this plugin. + /// These files are deleted when the plugin is removed or updated. + /// + public IEnumerable Files { + get { return files.Cast(); } + } + + internal void AddFiles(IEnumerable fileNames) { + files.AddRange(fileNames); + } + + private List dependencies = new List(); + internal IEnumerable Dependencies { + get { return dependencies; } + } + /// + /// Gets all dependencies of the plugin. + /// + IEnumerable IPluginDescription.Dependencies { + get { return dependencies.Cast(); } + } + + internal void AddDependency(PluginDescription dependency) { + dependencies.Add(dependency); + } + + + /// + /// Gets the locations (file names) of the assemblies that belong to this plugin. + /// + public IEnumerable AssemblyLocations { + get { return Files.Where(f => f.Type == PluginFileType.Assembly).Select(f => f.Name); } + } + + /// + /// Gets and sets the list of assembly names for this plugin. Assembly names are only available after the plugin has been loaded. + /// + private List assemblyNames; + public IEnumerable AssemblyNames { + get { return assemblyNames; } + set { this.assemblyNames = new List(value); } + } + + internal PluginDescription() { + pluginState = PluginState.Undefined; + } + + internal void Disable(string loadingErrorInformation) { + if (pluginState != PluginState.Undefined) + throw new InvalidOperationException("Cannot disable a plugin in state " + pluginState); + pluginState = PluginState.Disabled; + this.loadingErrorInformation = loadingErrorInformation; + } + + internal void Enable() { + if (pluginState != PluginState.Undefined) + throw new InvalidOperationException("Cannot enable a plugin in state " + pluginState); + pluginState = PluginState.Enabled; + } + + internal void Load() { + if (!(pluginState == PluginState.Enabled || pluginState == PluginState.Loaded)) + throw new InvalidOperationException("Cannot load a plugin in state " + pluginState); + pluginState = PluginState.Loaded; + nTimesLoaded++; + } + + internal void Unload() { + if (pluginState != PluginState.Loaded) + throw new InvalidOperationException("Cannot unload a plugin in state " + pluginState); + nTimesLoaded--; + if (nTimesLoaded == 0) pluginState = PluginState.Enabled; + } + + + /// + /// Gets the string representation of the plugin. + /// + /// The name of the plugin. + public override string ToString() { + return Name + " " + Version; + } + + // equals and hashcode have to be implemented because we want to compare PluginDescriptions from + // different AppDomains and serialization destroys reference equality + /// + /// Checks whether the given object is equal to the current plugin. + /// + /// The object to compare. + /// true if it is equal, false otherwise. + public override bool Equals(object obj) { + PluginDescription other = obj as PluginDescription; + if (other == null) return false; + + return other.Name == this.Name && other.Version == this.Version; + } + /// + /// Gets the hash code of the current plugin. + /// + /// The hash code of the plugin. + public override int GetHashCode() { + if (version != null) { + return name.GetHashCode() + version.GetHashCode(); + } else return name.GetHashCode(); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginFile.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginFile.cs new file mode 100644 index 0000000000..f270de5762 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginFile.cs @@ -0,0 +1,68 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure.Manager { + /// + /// Plugin files have a name and a type. + /// + [Serializable] + public sealed class PluginFile : IPluginFile { + #region IPluginFile Members + + private string name; + /// + /// Gets the name of the file. + /// + public string Name { + get { return name; } + } + + private PluginFileType type; + /// + /// Gets the type of the file. + /// + public PluginFileType Type { + get { return type; } + } + + #endregion + + /// + /// Inizialize a new instance of + /// + /// File name + /// File type + public PluginFile(string name, PluginFileType type) { + this.name = name; + this.type = type; + } + + /// + /// ToString override for + /// + /// Plugin file name + public override string ToString() { + return name; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginInfrastructureCancelEventArgs.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginInfrastructureCancelEventArgs.cs new file mode 100644 index 0000000000..db9bd4c1af --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginInfrastructureCancelEventArgs.cs @@ -0,0 +1,36 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.ComponentModel; + +namespace HeuristicLab.PluginInfrastructure.Manager { + // to be replaced by GenericEventArgs + [Serializable] + internal sealed class PluginInfrastructureCancelEventArgs : CancelEventArgs { + internal IEnumerable Plugins { get; private set; } + internal PluginInfrastructureCancelEventArgs(IEnumerable plugins) + : base() { + this.Plugins = plugins; + } + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginInfrastructureEventArgs.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginInfrastructureEventArgs.cs new file mode 100644 index 0000000000..37d0ec7ae1 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginInfrastructureEventArgs.cs @@ -0,0 +1,37 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure.Manager { + [Serializable] + public sealed class PluginInfrastructureEventArgs : EventArgs { + public object Entity { get; private set; } + public PluginInfrastructureEventArgs(object entity) { + this.Entity = entity; + } + + private static PluginInfrastructureEventArgs emptyArgs = new PluginInfrastructureEventArgs(string.Empty); + public new static PluginInfrastructureEventArgs Empty { + get { return emptyArgs; } + } + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginManager.cs new file mode 100644 index 0000000000..382a37b0e9 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginManager.cs @@ -0,0 +1,212 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Security.Permissions; + +namespace HeuristicLab.PluginInfrastructure.Manager { + + // must extend MarshalByRefObject because of event passing between Loader and PluginManager (each in it's own AppDomain) + /// + /// Class to manage different plugins. + /// + public sealed class PluginManager : MarshalByRefObject { + public event EventHandler PluginLoaded; + public event EventHandler PluginUnloaded; + public event EventHandler Initializing; + public event EventHandler Initialized; + public event EventHandler ApplicationStarting; + public event EventHandler ApplicationStarted; + + private string pluginDir; + + private List plugins; + /// + /// Gets all installed plugins. + /// + public IEnumerable Plugins { + get { return plugins; } + } + + private List applications; + /// + /// Gets all installed applications. + /// + public IEnumerable Applications { + get { return applications; } + } + + private object locker = new object(); + private bool initialized; + + public PluginManager(string pluginDir) { + this.pluginDir = pluginDir; + plugins = new List(); + applications = new List(); + initialized = false; + } + + /// + /// Determines installed plugins and checks if all plugins are loadable. + /// + public void DiscoverAndCheckPlugins() { + OnInitializing(PluginInfrastructureEventArgs.Empty); + AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; + setup.ApplicationBase = pluginDir; + AppDomain pluginDomain = null; + try { + pluginDomain = AppDomain.CreateDomain("plugin domain", null, setup); + Type pluginValidatorType = typeof(PluginValidator); + PluginValidator remoteValidator = (PluginValidator)pluginDomain.CreateInstanceAndUnwrap(pluginValidatorType.Assembly.FullName, pluginValidatorType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); + remoteValidator.PluginDir = pluginDir; + // forward all events from the remoteValidator to listeners + remoteValidator.PluginLoaded += + delegate(object sender, PluginInfrastructureEventArgs e) { + OnPluginLoaded(e); + }; + // get list of plugins and applications from the validator + plugins.Clear(); applications.Clear(); + plugins.AddRange(remoteValidator.Plugins); + applications.AddRange(remoteValidator.Applications); + } + finally { + // discard the AppDomain that was used for plugin discovery + AppDomain.Unload(pluginDomain); + // unload all plugins + foreach (var pluginDescription in plugins.Where(x => x.PluginState == PluginState.Loaded)) { + pluginDescription.Unload(); + OnPluginUnloaded(new PluginInfrastructureEventArgs(pluginDescription)); + } + initialized = true; + OnInitialized(PluginInfrastructureEventArgs.Empty); + } + } + + + /// + /// Starts an application in a separate AppDomain. + /// Loads all enabled plugins and starts the application via an ApplicationManager instance activated in the new AppDomain. + /// + /// application to run + public void Run(ApplicationDescription appInfo, ICommandLineArgument[] args) { + if (!initialized) throw new InvalidOperationException("PluginManager is not initialized. DiscoverAndCheckPlugins() must be called before Run()"); + // create a separate AppDomain for the application + // initialize the static ApplicationManager in the AppDomain + // and remotely tell it to start the application + + OnApplicationStarting(new PluginInfrastructureEventArgs(appInfo)); + AppDomain applicationDomain = null; + try { + AppDomainSetup setup = AppDomain.CurrentDomain.SetupInformation; + setup.PrivateBinPath = pluginDir; + applicationDomain = AppDomain.CreateDomain(AppDomain.CurrentDomain.FriendlyName, null, setup); + Type applicationManagerType = typeof(DefaultApplicationManager); + DefaultApplicationManager applicationManager = + (DefaultApplicationManager)applicationDomain.CreateInstanceAndUnwrap(applicationManagerType.Assembly.FullName, applicationManagerType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); + applicationManager.PluginLoaded += applicationManager_PluginLoaded; + applicationManager.PluginUnloaded += applicationManager_PluginUnloaded; + applicationManager.PrepareApplicationDomain(applications, plugins); + OnApplicationStarted(new PluginInfrastructureEventArgs(appInfo)); + applicationManager.Run(appInfo, args); + } + finally { + // make sure domain is unloaded in all cases + AppDomain.Unload(applicationDomain); + } + } + + private void applicationManager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + // unload the matching plugin description ( + PluginDescription desc = (PluginDescription)e.Entity; + + // access to plugin descriptions has to be synchronized because multiple applications + // can be started or stopped at the same time + lock (locker) { + // also unload the matching plugin description in this AppDomain + plugins.First(x => x.Equals(desc)).Unload(); + } + OnPluginUnloaded(e); + } + + private void applicationManager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + // load the matching plugin description ( + PluginDescription desc = (PluginDescription)e.Entity; + // access to plugin descriptions has to be synchronized because multiple applications + // can be started or stopped at the same time + lock (locker) { + // also load the matching plugin description in this AppDomain + plugins.First(x => x.Equals(desc)).Load(); + } + OnPluginLoaded(e); + } + + #region event raising methods + private void OnPluginLoaded(PluginInfrastructureEventArgs e) { + if (PluginLoaded != null) { + PluginLoaded(this, e); + } + } + + private void OnPluginUnloaded(PluginInfrastructureEventArgs e) { + if (PluginUnloaded != null) { + PluginUnloaded(this, e); + } + } + + private void OnInitializing(PluginInfrastructureEventArgs e) { + if (Initializing != null) { + Initializing(this, e); + } + } + + private void OnInitialized(PluginInfrastructureEventArgs e) { + if (Initialized != null) { + Initialized(this, e); + } + } + + private void OnApplicationStarting(PluginInfrastructureEventArgs e) { + if (ApplicationStarting != null) { + ApplicationStarting(this, e); + } + } + + private void OnApplicationStarted(PluginInfrastructureEventArgs e) { + if (ApplicationStarted != null) { + ApplicationStarted(this, e); + } + } + #endregion + + // infinite lease time + /// + /// Make sure that the plugin manager is never disposed (necessary for cross-app-domain events) + /// + /// null. + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.Infrastructure)] + public override object InitializeLifetimeService() { + return null; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginValidator.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginValidator.cs similarity index 98% rename from HeuristicLab.PluginInfrastructure/3.3/Manager/PluginValidator.cs rename to HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginValidator.cs index 59e2ac45ed..23ac1f7dc0 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Manager/PluginValidator.cs +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Manager/PluginValidator.cs @@ -1,634 +1,634 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Security; -using System.Text; - - -namespace HeuristicLab.PluginInfrastructure.Manager { - /// - /// Discovers all installed plugins in the plugin directory. Checks correctness of plugin meta-data and if - /// all plugin files are available and checks plugin dependencies. - /// - internal sealed class PluginValidator : MarshalByRefObject { - // private class to store plugin dependency declarations while reflecting over plugins - private class PluginDependency { - public string Name { get; private set; } - public Version Version { get; private set; } - - public PluginDependency(string name, Version version) { - this.Name = name; - this.Version = version; - } - } - - - internal event EventHandler PluginLoaded; - - private Dictionary> pluginDependencies; - - private List applications; - internal IEnumerable Applications { - get { - if (string.IsNullOrEmpty(PluginDir)) throw new InvalidOperationException("PluginDir is not set."); - if (applications == null) DiscoverAndCheckPlugins(); - return applications; - } - } - - private IEnumerable plugins; - internal IEnumerable Plugins { - get { - if (string.IsNullOrEmpty(PluginDir)) throw new InvalidOperationException("PluginDir is not set."); - if (plugins == null) DiscoverAndCheckPlugins(); - return plugins; - } - } - - internal string PluginDir { get; set; } - - internal PluginValidator() { - this.pluginDependencies = new Dictionary>(); - - // ReflectionOnlyAssemblyResolveEvent must be handled because we load assemblies from the plugin path - // (which is not listed in the default assembly lookup locations) - AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += ReflectionOnlyAssemblyResolveEventHandler; - } - - private Dictionary reflectionOnlyAssemblies = new Dictionary(); - private Assembly ReflectionOnlyAssemblyResolveEventHandler(object sender, ResolveEventArgs args) { - if (reflectionOnlyAssemblies.ContainsKey(args.Name)) - return reflectionOnlyAssemblies[args.Name]; - else - return Assembly.ReflectionOnlyLoad(args.Name); - } - - - /// - /// Init first clears all internal datastructures (including plugin lists) - /// 1. All assemblies in the plugins directory are loaded into the reflection only context. - /// 2. The validator checks if all necessary files for each plugin are available. - /// 3. The validator checks if all declared plugin assemblies can be loaded. - /// 4. The validator builds the tree of plugin descriptions (dependencies) - /// 5. The validator checks if there are any cycles in the plugin dependency graph and disables plugin with circular dependencies - /// 6. The validator checks for each plugin if any dependency is disabled. - /// 7. All plugins that are not disabled are loaded into the execution context. - /// 8. Each loaded plugin (all assemblies) is searched for a types that implement IPlugin - /// then one instance of each IPlugin type is activated and the OnLoad hook is called. - /// 9. All types implementing IApplication are discovered - /// - internal void DiscoverAndCheckPlugins() { - pluginDependencies.Clear(); - - IEnumerable reflectionOnlyAssemblies = ReflectionOnlyLoadDlls(PluginDir); - IEnumerable pluginDescriptions = GatherPluginDescriptions(reflectionOnlyAssemblies); - CheckPluginFiles(pluginDescriptions); - - // check if all plugin assemblies can be loaded - CheckPluginAssemblies(pluginDescriptions); - - // a full list of plugin descriptions is available now we can build the dependency tree - BuildDependencyTree(pluginDescriptions); - - // check for dependency cycles - CheckPluginDependencyCycles(pluginDescriptions); - - // 1st time recursively check if all necessary plugins are available and not disabled - // disable plugins with missing or disabled dependencies - // to prevent that plugins with missing dependencies are loaded into the execution context - // in the next step - CheckPluginDependencies(pluginDescriptions); - - // test full loading (in contrast to reflection only loading) of plugins - // disables plugins that are not loaded correctly - CheckExecutionContextLoad(pluginDescriptions); - - // 2nd time recursively check if all necessary plugins have been loaded successfully and not disabled - // disable plugins with for which dependencies could not be loaded successfully - CheckPluginDependencies(pluginDescriptions); - - // mark all plugins as enabled that were not disabled in CheckPluginFiles, CheckPluginAssemblies, - // CheckCircularDependencies, CheckPluginDependencies and CheckExecutionContextLoad - foreach (var desc in pluginDescriptions) - if (desc.PluginState != PluginState.Disabled) - desc.Enable(); - - // load the enabled plugins - LoadPlugins(pluginDescriptions); - - plugins = pluginDescriptions; - DiscoverApplications(pluginDescriptions); - } - - private void DiscoverApplications(IEnumerable pluginDescriptions) { - applications = new List(); - foreach (IApplication application in GetApplications(pluginDescriptions)) { - Type appType = application.GetType(); - ApplicationAttribute attr = (from x in appType.GetCustomAttributes(typeof(ApplicationAttribute), false) - select (ApplicationAttribute)x).Single(); - ApplicationDescription info = new ApplicationDescription(); - PluginDescription declaringPlugin = GetDeclaringPlugin(appType, pluginDescriptions); - info.Name = application.Name; - info.Version = declaringPlugin.Version; - info.Description = application.Description; - info.AutoRestart = attr.RestartOnErrors; - info.DeclaringAssemblyName = appType.Assembly.GetName().Name; - info.DeclaringTypeName = appType.Namespace + "." + application.GetType().Name; - - applications.Add(info); - } - } - - private static IEnumerable GetApplications(IEnumerable pluginDescriptions) { - return from asm in AppDomain.CurrentDomain.GetAssemblies() - from t in asm.GetTypes() - where typeof(IApplication).IsAssignableFrom(t) && - !t.IsAbstract && !t.IsInterface && !t.HasElementType - where GetDeclaringPlugin(t, pluginDescriptions).PluginState != PluginState.Disabled - select (IApplication)Activator.CreateInstance(t); - } - - private IEnumerable ReflectionOnlyLoadDlls(string baseDir) { - List assemblies = new List(); - // recursively load .dll files in subdirectories - foreach (string dirName in Directory.GetDirectories(baseDir)) { - assemblies.AddRange(ReflectionOnlyLoadDlls(dirName)); - } - // try to load each .dll file in the plugin directory into the reflection only context - foreach (string filename in Directory.GetFiles(baseDir, "*.dll").Union(Directory.GetFiles(baseDir, "*.exe"))) { - try { - Assembly asm = Assembly.ReflectionOnlyLoadFrom(filename); - RegisterLoadedAssembly(asm); - assemblies.Add(asm); - } - catch (BadImageFormatException) { } // just ignore the case that the .dll file is not a CLR assembly (e.g. a native dll) - catch (FileLoadException) { } - catch (SecurityException) { } - catch (ReflectionTypeLoadException) { } // referenced assemblies are missing - } - return assemblies; - } - - /// - /// Checks if all plugin assemblies can be loaded. If an assembly can't be loaded the plugin is disabled. - /// - /// - private void CheckPluginAssemblies(IEnumerable pluginDescriptions) { - foreach (var desc in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { - try { - var missingAssemblies = new List(); - foreach (var asmLocation in desc.AssemblyLocations) { - // the assembly must have been loaded in ReflectionOnlyDlls - // so we simply determine the name of the assembly and try to find it in the cache of loaded assemblies - var asmName = AssemblyName.GetAssemblyName(asmLocation); - if (!reflectionOnlyAssemblies.ContainsKey(asmName.FullName)) { - missingAssemblies.Add(asmName.FullName); - } - } - if (missingAssemblies.Count > 0) { - StringBuilder errorStrBuiler = new StringBuilder(); - errorStrBuiler.AppendLine("Missing assemblies:"); - foreach (string missingAsm in missingAssemblies) { - errorStrBuiler.AppendLine(missingAsm); - } - desc.Disable(errorStrBuiler.ToString()); - } - } - catch (BadImageFormatException ex) { - // disable the plugin - desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "BadImageFormatException: " + ex.Message); - } - catch (FileNotFoundException ex) { - // disable the plugin - desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "FileNotFoundException: " + ex.Message); - } - catch (FileLoadException ex) { - // disable the plugin - desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "FileLoadException: " + ex.Message); - } - catch (ArgumentException ex) { - // disable the plugin - desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "ArgumentException: " + ex.Message); - } - catch (SecurityException ex) { - // disable the plugin - desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "SecurityException: " + ex.Message); - } - } - } - - - // find all types implementing IPlugin in the reflectionOnlyAssemblies and create a list of plugin descriptions - // the dependencies in the plugin descriptions are not yet set correctly because we need to create - // the full list of all plugin descriptions first - private IEnumerable GatherPluginDescriptions(IEnumerable assemblies) { - List pluginDescriptions = new List(); - foreach (Assembly assembly in assemblies) { - // GetExportedTypes throws FileNotFoundException when a referenced assembly - // of the current assembly is missing. - try { - // if there is a type that implements IPlugin - // use AssemblyQualifiedName to compare the types because we can't directly - // compare ReflectionOnly types and execution types - var assemblyPluginDescriptions = from t in assembly.GetExportedTypes() - where !t.IsAbstract && t.GetInterfaces().Any(x => x.AssemblyQualifiedName == typeof(IPlugin).AssemblyQualifiedName) - select GetPluginDescription(t); - pluginDescriptions.AddRange(assemblyPluginDescriptions); - } - // ignore exceptions. Just don't yield a plugin description when an exception is thrown - catch (FileNotFoundException) { - } - catch (FileLoadException) { - } - catch (InvalidPluginException) { - } - catch (TypeLoadException) { - } - catch (MissingMemberException) { - } - } - return pluginDescriptions; - } - - /// - /// Extracts plugin information for this type. - /// Reads plugin name, list and type of files and dependencies of the plugin. This information is necessary for - /// plugin dependency checking before plugin activation. - /// - /// - private PluginDescription GetPluginDescription(Type pluginType) { - - string pluginName, pluginDescription, pluginVersion; - string contactName, contactAddress; - GetPluginMetaData(pluginType, out pluginName, out pluginDescription, out pluginVersion); - GetPluginContactMetaData(pluginType, out contactName, out contactAddress); - var pluginFiles = GetPluginFilesMetaData(pluginType); - var pluginDependencies = GetPluginDependencyMetaData(pluginType); - - // minimal sanity check of the attribute values - if (!string.IsNullOrEmpty(pluginName) && - pluginFiles.Count() > 0 && // at least one file - pluginFiles.Any(f => f.Type == PluginFileType.Assembly)) { // at least one assembly - // create a temporary PluginDescription that contains the attribute values - PluginDescription info = new PluginDescription(); - info.Name = pluginName; - info.Description = pluginDescription; - info.Version = new Version(pluginVersion); - info.ContactName = contactName; - info.ContactEmail = contactAddress; - info.LicenseText = ReadLicenseFiles(pluginFiles); - info.AddFiles(pluginFiles); - - this.pluginDependencies[info] = pluginDependencies; - return info; - } else { - throw new InvalidPluginException("Invalid metadata in plugin " + pluginType.ToString()); - } - } - - private static string ReadLicenseFiles(IEnumerable pluginFiles) { - // combine the contents of all plugin files - var licenseFiles = from file in pluginFiles - where file.Type == PluginFileType.License - select file; - if (licenseFiles.Count() == 0) return string.Empty; - StringBuilder licenseTextBuilder = new StringBuilder(); - licenseTextBuilder.AppendLine(File.ReadAllText(licenseFiles.First().Name)); - foreach (var licenseFile in licenseFiles.Skip(1)) { - licenseTextBuilder.AppendLine().AppendLine(); // leave some empty space between multiple license files - licenseTextBuilder.AppendLine(File.ReadAllText(licenseFile.Name)); - } - return licenseTextBuilder.ToString(); - } - - private static IEnumerable GetPluginDependencyMetaData(Type pluginType) { - // get all attributes of type PluginDependency - var dependencyAttributes = from attr in CustomAttributeData.GetCustomAttributes(pluginType) - where IsAttributeDataForType(attr, typeof(PluginDependencyAttribute)) - select attr; - - foreach (var dependencyAttr in dependencyAttributes) { - string name = (string)dependencyAttr.ConstructorArguments[0].Value; - Version version = new Version("0.0.0.0"); // default version - // check if version is given for now - // later when the constructor of PluginDependencyAttribute with only one argument has been removed - // this conditional can be removed as well - if (dependencyAttr.ConstructorArguments.Count > 1) { - try { - version = new Version((string)dependencyAttr.ConstructorArguments[1].Value); // might throw FormatException - } - catch (FormatException ex) { - throw new InvalidPluginException("Invalid version format of dependency " + name + " in plugin " + pluginType.ToString(), ex); - } - } - yield return new PluginDependency(name, version); - } - } - - private static void GetPluginContactMetaData(Type pluginType, out string contactName, out string contactAddress) { - // get attribute of type ContactInformation if there is any - var contactInfoAttribute = (from attr in CustomAttributeData.GetCustomAttributes(pluginType) - where IsAttributeDataForType(attr, typeof(ContactInformationAttribute)) - select attr).SingleOrDefault(); - - if (contactInfoAttribute != null) { - contactName = (string)contactInfoAttribute.ConstructorArguments[0].Value; - contactAddress = (string)contactInfoAttribute.ConstructorArguments[1].Value; - } else { - contactName = string.Empty; - contactAddress = string.Empty; - } - } - - // not static because we need the PluginDir property - private IEnumerable GetPluginFilesMetaData(Type pluginType) { - // get all attributes of type PluginFileAttribute - var pluginFileAttributes = from attr in CustomAttributeData.GetCustomAttributes(pluginType) - where IsAttributeDataForType(attr, typeof(PluginFileAttribute)) - select attr; - foreach (var pluginFileAttribute in pluginFileAttributes) { - string pluginFileName = (string)pluginFileAttribute.ConstructorArguments[0].Value; - PluginFileType fileType = (PluginFileType)pluginFileAttribute.ConstructorArguments[1].Value; - yield return new PluginFile(Path.GetFullPath(Path.Combine(PluginDir, pluginFileName)), fileType); - } - } - - private static void GetPluginMetaData(Type pluginType, out string pluginName, out string pluginDescription, out string pluginVersion) { - // there must be a single attribute of type PluginAttribute - var pluginMetaDataAttr = (from attr in CustomAttributeData.GetCustomAttributes(pluginType) - where IsAttributeDataForType(attr, typeof(PluginAttribute)) - select attr).Single(); - - pluginName = (string)pluginMetaDataAttr.ConstructorArguments[0].Value; - - // default description and version - pluginVersion = "0.0.0.0"; - pluginDescription = string.Empty; - if (pluginMetaDataAttr.ConstructorArguments.Count() == 2) { - // if two arguments are given the second argument is the version - pluginVersion = (string)pluginMetaDataAttr.ConstructorArguments[1].Value; - } else if (pluginMetaDataAttr.ConstructorArguments.Count() == 3) { - // if three arguments are given the second argument is the description and the third is the version - pluginDescription = (string)pluginMetaDataAttr.ConstructorArguments[1].Value; - pluginVersion = (string)pluginMetaDataAttr.ConstructorArguments[2].Value; - } - } - - private static bool IsAttributeDataForType(CustomAttributeData attributeData, Type attributeType) { - return attributeData.Constructor.DeclaringType.AssemblyQualifiedName == attributeType.AssemblyQualifiedName; - } - - // builds a dependency tree of all plugin descriptions - // searches matching plugin descriptions based on the list of dependency names for each plugin - // and sets the dependencies in the plugin descriptions - private void BuildDependencyTree(IEnumerable pluginDescriptions) { - foreach (var desc in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { - var missingDependencies = new List(); - foreach (var dependency in pluginDependencies[desc]) { - var matchingDescriptions = from availablePlugin in pluginDescriptions - where availablePlugin.PluginState != PluginState.Disabled - where availablePlugin.Name == dependency.Name - where IsCompatiblePluginVersion(availablePlugin.Version, dependency.Version) - select availablePlugin; - if (matchingDescriptions.Count() > 0) { - desc.AddDependency(matchingDescriptions.Single()); - } else { - missingDependencies.Add(dependency); - } - } - // no plugin description that matches the dependencies are available => plugin is disabled - if (missingDependencies.Count > 0) { - StringBuilder errorStrBuilder = new StringBuilder(); - errorStrBuilder.AppendLine("Missing dependencies:"); - foreach (var missingDep in missingDependencies) { - errorStrBuilder.AppendLine(missingDep.Name + " " + missingDep.Version); - } - desc.Disable(errorStrBuilder.ToString()); - } - } - } - - /// - /// Checks if version is compatible to version . - /// Note: the compatibility relation is not bijective. - /// Compatibility rules: - /// * major and minor number must be the same - /// * build and revision number of must be larger or equal to . - /// - /// The available version which should be compared to . - /// The requested version that must be matched. - /// - private static bool IsCompatiblePluginVersion(Version available, Version requested) { - // this condition must be removed after all plugins have been updated to declare plugin and dependency versions - if ( - (requested.Major == 0 && requested.Minor == 0) || - (available.Major == 0 && available.Minor == 0)) return true; - return - available.Major == requested.Major && - available.Minor == requested.Minor && - available.Build >= requested.Build && - available.Revision >= requested.Revision; - } - - private void CheckPluginDependencyCycles(IEnumerable pluginDescriptions) { - foreach (var plugin in pluginDescriptions) { - // if the plugin is not disabled check if there are cycles - if (plugin.PluginState != PluginState.Disabled && HasCycleInDependencies(plugin, plugin.Dependencies)) { - plugin.Disable("Dependency graph has a cycle."); - } - } - } - - private bool HasCycleInDependencies(PluginDescription plugin, IEnumerable pluginDependencies) { - foreach (var dep in pluginDependencies) { - // if one of the dependencies is the original plugin we found a cycle and can return - // if the dependency is already disabled we can ignore the cycle detection because we will disable the plugin anyway - // if following one of the dependencies recursively leads to a cycle then we also return - if (dep == plugin || dep.PluginState == PluginState.Disabled || HasCycleInDependencies(plugin, dep.Dependencies)) return true; - } - // no cycle found and none of the direct and indirect dependencies is disabled - return false; - } - - private void CheckPluginDependencies(IEnumerable pluginDescriptions) { - foreach (PluginDescription pluginDescription in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { - List disabledPlugins = new List(); - if (IsAnyDependencyDisabled(pluginDescription, disabledPlugins)) { - StringBuilder errorStrBuilder = new StringBuilder(); - errorStrBuilder.AppendLine("Dependencies are disabled:"); - foreach (var disabledPlugin in disabledPlugins) { - errorStrBuilder.AppendLine(disabledPlugin.Name + " " + disabledPlugin.Version); - } - pluginDescription.Disable(errorStrBuilder.ToString()); - } - } - } - - - private bool IsAnyDependencyDisabled(PluginDescription descr, List disabledPlugins) { - if (descr.PluginState == PluginState.Disabled) { - disabledPlugins.Add(descr); - return true; - } - foreach (PluginDescription dependency in descr.Dependencies) { - IsAnyDependencyDisabled(dependency, disabledPlugins); - } - return disabledPlugins.Count > 0; - } - - // tries to load all plugin assemblies into the execution context - // if an assembly of a plugin cannot be loaded the plugin is disabled - private void CheckExecutionContextLoad(IEnumerable pluginDescriptions) { - // load all loadable plugins (all dependencies available) into the execution context - foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(pluginDescriptions - .Where(x => x.PluginState != PluginState.Disabled))) { - // store the assembly names so that we can later retrieve the assemblies loaded in the appdomain by name - var assemblyNames = new List(); - foreach (string assemblyLocation in desc.AssemblyLocations) { - if (desc.PluginState != PluginState.Disabled) { - try { - string assemblyName = (from assembly in AppDomain.CurrentDomain.ReflectionOnlyGetAssemblies() - where string.Equals(Path.GetFullPath(assembly.Location), Path.GetFullPath(assemblyLocation), StringComparison.CurrentCultureIgnoreCase) - select assembly.FullName).Single(); - // now load the assemblies into the execution context - // this can still lead to an exception - // even when the assemby was successfully loaded into the reflection only context before - // when loading the assembly using it's assemblyName it can be loaded from a different location than before (e.g. the GAC) - Assembly.Load(assemblyName); - assemblyNames.Add(assemblyName); - } - catch (BadImageFormatException) { - desc.Disable(Path.GetFileName(assemblyLocation) + " is not a valid assembly."); - } - catch (FileLoadException) { - desc.Disable("Can't load file " + Path.GetFileName(assemblyLocation)); - } - catch (FileNotFoundException) { - desc.Disable("File " + Path.GetFileName(assemblyLocation) + " is missing."); - } - catch (SecurityException) { - desc.Disable("File " + Path.GetFileName(assemblyLocation) + " can't be loaded because of security constraints."); - } - catch (NotSupportedException ex) { - // disable the plugin - desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "NotSupportedException: " + ex.Message); - } - } - } - desc.AssemblyNames = assemblyNames; - } - } - - // assumes that all plugin assemblies have been loaded into the execution context via CheckExecutionContextLoad - // for each enabled plugin: - // calls OnLoad method of the plugin - // and raises the PluginLoaded event - private void LoadPlugins(IEnumerable pluginDescriptions) { - List assemblies = new List(AppDomain.CurrentDomain.GetAssemblies()); - foreach (var desc in pluginDescriptions) { - if (desc.PluginState == PluginState.Enabled) { - // cannot use ApplicationManager to retrieve types because it is not yet instantiated - foreach (string assemblyName in desc.AssemblyNames) { - var asm = (from assembly in assemblies - where assembly.FullName == assemblyName - select assembly) - .SingleOrDefault(); - if (asm == null) throw new InvalidPluginException("Could not load assembly " + assemblyName + " for plugin " + desc.Name); - foreach (Type pluginType in asm.GetTypes()) { - if (typeof(IPlugin).IsAssignableFrom(pluginType) && !pluginType.IsAbstract && !pluginType.IsInterface && !pluginType.HasElementType) { - IPlugin plugin = (IPlugin)Activator.CreateInstance(pluginType); - plugin.OnLoad(); - OnPluginLoaded(new PluginInfrastructureEventArgs(desc)); - } - } - } // end foreach assembly in plugin - desc.Load(); - } - } // end foreach plugin description - } - - // checks if all declared plugin files are actually available and disables plugins with missing files - private void CheckPluginFiles(IEnumerable pluginDescriptions) { - foreach (PluginDescription desc in pluginDescriptions) { - IEnumerable missingFiles; - if (ArePluginFilesMissing(desc, out missingFiles)) { - StringBuilder errorStrBuilder = new StringBuilder(); - errorStrBuilder.AppendLine("Missing files:"); - foreach (string fileName in missingFiles) { - errorStrBuilder.AppendLine(fileName); - } - desc.Disable(errorStrBuilder.ToString()); - } - } - } - - private bool ArePluginFilesMissing(PluginDescription pluginDescription, out IEnumerable missingFiles) { - List missing = new List(); - foreach (string filename in pluginDescription.Files.Select(x => x.Name)) { - if (!FileLiesInDirectory(PluginDir, filename) || - !File.Exists(filename)) { - missing.Add(filename); - } - } - missingFiles = missing; - return missing.Count > 0; - } - - private static bool FileLiesInDirectory(string dir, string fileName) { - var basePath = Path.GetFullPath(dir); - return Path.GetFullPath(fileName).StartsWith(basePath); - } - - private static PluginDescription GetDeclaringPlugin(Type appType, IEnumerable plugins) { - return (from p in plugins - from asmLocation in p.AssemblyLocations - where Path.GetFullPath(asmLocation).Equals(Path.GetFullPath(appType.Assembly.Location), StringComparison.CurrentCultureIgnoreCase) - select p).Single(); - } - - // register assembly in the assembly cache for the ReflectionOnlyAssemblyResolveEvent - private void RegisterLoadedAssembly(Assembly asm) { - if (reflectionOnlyAssemblies.ContainsKey(asm.FullName) || reflectionOnlyAssemblies.ContainsKey(asm.GetName().Name)) { - throw new ArgumentException("An assembly with the name " + asm.GetName().Name + " has been registered already.", "asm"); - } - reflectionOnlyAssemblies.Add(asm.FullName, asm); - reflectionOnlyAssemblies.Add(asm.GetName().Name, asm); // add short name - } - - private void OnPluginLoaded(PluginInfrastructureEventArgs e) { - if (PluginLoaded != null) - PluginLoaded(this, e); - } - - /// - /// Initializes the life time service with an infinite lease time. - /// - /// null. - public override object InitializeLifetimeService() { - return null; - } - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Security; +using System.Text; + + +namespace HeuristicLab.PluginInfrastructure.Manager { + /// + /// Discovers all installed plugins in the plugin directory. Checks correctness of plugin meta-data and if + /// all plugin files are available and checks plugin dependencies. + /// + internal sealed class PluginValidator : MarshalByRefObject { + // private class to store plugin dependency declarations while reflecting over plugins + private class PluginDependency { + public string Name { get; private set; } + public Version Version { get; private set; } + + public PluginDependency(string name, Version version) { + this.Name = name; + this.Version = version; + } + } + + + internal event EventHandler PluginLoaded; + + private Dictionary> pluginDependencies; + + private List applications; + internal IEnumerable Applications { + get { + if (string.IsNullOrEmpty(PluginDir)) throw new InvalidOperationException("PluginDir is not set."); + if (applications == null) DiscoverAndCheckPlugins(); + return applications; + } + } + + private IEnumerable plugins; + internal IEnumerable Plugins { + get { + if (string.IsNullOrEmpty(PluginDir)) throw new InvalidOperationException("PluginDir is not set."); + if (plugins == null) DiscoverAndCheckPlugins(); + return plugins; + } + } + + internal string PluginDir { get; set; } + + internal PluginValidator() { + this.pluginDependencies = new Dictionary>(); + + // ReflectionOnlyAssemblyResolveEvent must be handled because we load assemblies from the plugin path + // (which is not listed in the default assembly lookup locations) + AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += ReflectionOnlyAssemblyResolveEventHandler; + } + + private Dictionary reflectionOnlyAssemblies = new Dictionary(); + private Assembly ReflectionOnlyAssemblyResolveEventHandler(object sender, ResolveEventArgs args) { + if (reflectionOnlyAssemblies.ContainsKey(args.Name)) + return reflectionOnlyAssemblies[args.Name]; + else + return Assembly.ReflectionOnlyLoad(args.Name); + } + + + /// + /// Init first clears all internal datastructures (including plugin lists) + /// 1. All assemblies in the plugins directory are loaded into the reflection only context. + /// 2. The validator checks if all necessary files for each plugin are available. + /// 3. The validator checks if all declared plugin assemblies can be loaded. + /// 4. The validator builds the tree of plugin descriptions (dependencies) + /// 5. The validator checks if there are any cycles in the plugin dependency graph and disables plugin with circular dependencies + /// 6. The validator checks for each plugin if any dependency is disabled. + /// 7. All plugins that are not disabled are loaded into the execution context. + /// 8. Each loaded plugin (all assemblies) is searched for a types that implement IPlugin + /// then one instance of each IPlugin type is activated and the OnLoad hook is called. + /// 9. All types implementing IApplication are discovered + /// + internal void DiscoverAndCheckPlugins() { + pluginDependencies.Clear(); + + IEnumerable reflectionOnlyAssemblies = ReflectionOnlyLoadDlls(PluginDir); + IEnumerable pluginDescriptions = GatherPluginDescriptions(reflectionOnlyAssemblies); + CheckPluginFiles(pluginDescriptions); + + // check if all plugin assemblies can be loaded + CheckPluginAssemblies(pluginDescriptions); + + // a full list of plugin descriptions is available now we can build the dependency tree + BuildDependencyTree(pluginDescriptions); + + // check for dependency cycles + CheckPluginDependencyCycles(pluginDescriptions); + + // 1st time recursively check if all necessary plugins are available and not disabled + // disable plugins with missing or disabled dependencies + // to prevent that plugins with missing dependencies are loaded into the execution context + // in the next step + CheckPluginDependencies(pluginDescriptions); + + // test full loading (in contrast to reflection only loading) of plugins + // disables plugins that are not loaded correctly + CheckExecutionContextLoad(pluginDescriptions); + + // 2nd time recursively check if all necessary plugins have been loaded successfully and not disabled + // disable plugins with for which dependencies could not be loaded successfully + CheckPluginDependencies(pluginDescriptions); + + // mark all plugins as enabled that were not disabled in CheckPluginFiles, CheckPluginAssemblies, + // CheckCircularDependencies, CheckPluginDependencies and CheckExecutionContextLoad + foreach (var desc in pluginDescriptions) + if (desc.PluginState != PluginState.Disabled) + desc.Enable(); + + // load the enabled plugins + LoadPlugins(pluginDescriptions); + + plugins = pluginDescriptions; + DiscoverApplications(pluginDescriptions); + } + + private void DiscoverApplications(IEnumerable pluginDescriptions) { + applications = new List(); + foreach (IApplication application in GetApplications(pluginDescriptions)) { + Type appType = application.GetType(); + ApplicationAttribute attr = (from x in appType.GetCustomAttributes(typeof(ApplicationAttribute), false) + select (ApplicationAttribute)x).Single(); + ApplicationDescription info = new ApplicationDescription(); + PluginDescription declaringPlugin = GetDeclaringPlugin(appType, pluginDescriptions); + info.Name = application.Name; + info.Version = declaringPlugin.Version; + info.Description = application.Description; + info.AutoRestart = attr.RestartOnErrors; + info.DeclaringAssemblyName = appType.Assembly.GetName().Name; + info.DeclaringTypeName = appType.Namespace + "." + application.GetType().Name; + + applications.Add(info); + } + } + + private static IEnumerable GetApplications(IEnumerable pluginDescriptions) { + return from asm in AppDomain.CurrentDomain.GetAssemblies() + from t in asm.GetTypes() + where typeof(IApplication).IsAssignableFrom(t) && + !t.IsAbstract && !t.IsInterface && !t.HasElementType + where GetDeclaringPlugin(t, pluginDescriptions).PluginState != PluginState.Disabled + select (IApplication)Activator.CreateInstance(t); + } + + private IEnumerable ReflectionOnlyLoadDlls(string baseDir) { + List assemblies = new List(); + // recursively load .dll files in subdirectories + foreach (string dirName in Directory.GetDirectories(baseDir)) { + assemblies.AddRange(ReflectionOnlyLoadDlls(dirName)); + } + // try to load each .dll file in the plugin directory into the reflection only context + foreach (string filename in Directory.GetFiles(baseDir, "*.dll").Union(Directory.GetFiles(baseDir, "*.exe"))) { + try { + Assembly asm = Assembly.ReflectionOnlyLoadFrom(filename); + RegisterLoadedAssembly(asm); + assemblies.Add(asm); + } + catch (BadImageFormatException) { } // just ignore the case that the .dll file is not a CLR assembly (e.g. a native dll) + catch (FileLoadException) { } + catch (SecurityException) { } + catch (ReflectionTypeLoadException) { } // referenced assemblies are missing + } + return assemblies; + } + + /// + /// Checks if all plugin assemblies can be loaded. If an assembly can't be loaded the plugin is disabled. + /// + /// + private void CheckPluginAssemblies(IEnumerable pluginDescriptions) { + foreach (var desc in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { + try { + var missingAssemblies = new List(); + foreach (var asmLocation in desc.AssemblyLocations) { + // the assembly must have been loaded in ReflectionOnlyDlls + // so we simply determine the name of the assembly and try to find it in the cache of loaded assemblies + var asmName = AssemblyName.GetAssemblyName(asmLocation); + if (!reflectionOnlyAssemblies.ContainsKey(asmName.FullName)) { + missingAssemblies.Add(asmName.FullName); + } + } + if (missingAssemblies.Count > 0) { + StringBuilder errorStrBuiler = new StringBuilder(); + errorStrBuiler.AppendLine("Missing assemblies:"); + foreach (string missingAsm in missingAssemblies) { + errorStrBuiler.AppendLine(missingAsm); + } + desc.Disable(errorStrBuiler.ToString()); + } + } + catch (BadImageFormatException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "BadImageFormatException: " + ex.Message); + } + catch (FileNotFoundException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "FileNotFoundException: " + ex.Message); + } + catch (FileLoadException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "FileLoadException: " + ex.Message); + } + catch (ArgumentException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "ArgumentException: " + ex.Message); + } + catch (SecurityException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "SecurityException: " + ex.Message); + } + } + } + + + // find all types implementing IPlugin in the reflectionOnlyAssemblies and create a list of plugin descriptions + // the dependencies in the plugin descriptions are not yet set correctly because we need to create + // the full list of all plugin descriptions first + private IEnumerable GatherPluginDescriptions(IEnumerable assemblies) { + List pluginDescriptions = new List(); + foreach (Assembly assembly in assemblies) { + // GetExportedTypes throws FileNotFoundException when a referenced assembly + // of the current assembly is missing. + try { + // if there is a type that implements IPlugin + // use AssemblyQualifiedName to compare the types because we can't directly + // compare ReflectionOnly types and execution types + var assemblyPluginDescriptions = from t in assembly.GetExportedTypes() + where !t.IsAbstract && t.GetInterfaces().Any(x => x.AssemblyQualifiedName == typeof(IPlugin).AssemblyQualifiedName) + select GetPluginDescription(t); + pluginDescriptions.AddRange(assemblyPluginDescriptions); + } + // ignore exceptions. Just don't yield a plugin description when an exception is thrown + catch (FileNotFoundException) { + } + catch (FileLoadException) { + } + catch (InvalidPluginException) { + } + catch (TypeLoadException) { + } + catch (MissingMemberException) { + } + } + return pluginDescriptions; + } + + /// + /// Extracts plugin information for this type. + /// Reads plugin name, list and type of files and dependencies of the plugin. This information is necessary for + /// plugin dependency checking before plugin activation. + /// + /// + private PluginDescription GetPluginDescription(Type pluginType) { + + string pluginName, pluginDescription, pluginVersion; + string contactName, contactAddress; + GetPluginMetaData(pluginType, out pluginName, out pluginDescription, out pluginVersion); + GetPluginContactMetaData(pluginType, out contactName, out contactAddress); + var pluginFiles = GetPluginFilesMetaData(pluginType); + var pluginDependencies = GetPluginDependencyMetaData(pluginType); + + // minimal sanity check of the attribute values + if (!string.IsNullOrEmpty(pluginName) && + pluginFiles.Count() > 0 && // at least one file + pluginFiles.Any(f => f.Type == PluginFileType.Assembly)) { // at least one assembly + // create a temporary PluginDescription that contains the attribute values + PluginDescription info = new PluginDescription(); + info.Name = pluginName; + info.Description = pluginDescription; + info.Version = new Version(pluginVersion); + info.ContactName = contactName; + info.ContactEmail = contactAddress; + info.LicenseText = ReadLicenseFiles(pluginFiles); + info.AddFiles(pluginFiles); + + this.pluginDependencies[info] = pluginDependencies; + return info; + } else { + throw new InvalidPluginException("Invalid metadata in plugin " + pluginType.ToString()); + } + } + + private static string ReadLicenseFiles(IEnumerable pluginFiles) { + // combine the contents of all plugin files + var licenseFiles = from file in pluginFiles + where file.Type == PluginFileType.License + select file; + if (licenseFiles.Count() == 0) return string.Empty; + StringBuilder licenseTextBuilder = new StringBuilder(); + licenseTextBuilder.AppendLine(File.ReadAllText(licenseFiles.First().Name)); + foreach (var licenseFile in licenseFiles.Skip(1)) { + licenseTextBuilder.AppendLine().AppendLine(); // leave some empty space between multiple license files + licenseTextBuilder.AppendLine(File.ReadAllText(licenseFile.Name)); + } + return licenseTextBuilder.ToString(); + } + + private static IEnumerable GetPluginDependencyMetaData(Type pluginType) { + // get all attributes of type PluginDependency + var dependencyAttributes = from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(PluginDependencyAttribute)) + select attr; + + foreach (var dependencyAttr in dependencyAttributes) { + string name = (string)dependencyAttr.ConstructorArguments[0].Value; + Version version = new Version("0.0.0.0"); // default version + // check if version is given for now + // later when the constructor of PluginDependencyAttribute with only one argument has been removed + // this conditional can be removed as well + if (dependencyAttr.ConstructorArguments.Count > 1) { + try { + version = new Version((string)dependencyAttr.ConstructorArguments[1].Value); // might throw FormatException + } + catch (FormatException ex) { + throw new InvalidPluginException("Invalid version format of dependency " + name + " in plugin " + pluginType.ToString(), ex); + } + } + yield return new PluginDependency(name, version); + } + } + + private static void GetPluginContactMetaData(Type pluginType, out string contactName, out string contactAddress) { + // get attribute of type ContactInformation if there is any + var contactInfoAttribute = (from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(ContactInformationAttribute)) + select attr).SingleOrDefault(); + + if (contactInfoAttribute != null) { + contactName = (string)contactInfoAttribute.ConstructorArguments[0].Value; + contactAddress = (string)contactInfoAttribute.ConstructorArguments[1].Value; + } else { + contactName = string.Empty; + contactAddress = string.Empty; + } + } + + // not static because we need the PluginDir property + private IEnumerable GetPluginFilesMetaData(Type pluginType) { + // get all attributes of type PluginFileAttribute + var pluginFileAttributes = from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(PluginFileAttribute)) + select attr; + foreach (var pluginFileAttribute in pluginFileAttributes) { + string pluginFileName = (string)pluginFileAttribute.ConstructorArguments[0].Value; + PluginFileType fileType = (PluginFileType)pluginFileAttribute.ConstructorArguments[1].Value; + yield return new PluginFile(Path.GetFullPath(Path.Combine(PluginDir, pluginFileName)), fileType); + } + } + + private static void GetPluginMetaData(Type pluginType, out string pluginName, out string pluginDescription, out string pluginVersion) { + // there must be a single attribute of type PluginAttribute + var pluginMetaDataAttr = (from attr in CustomAttributeData.GetCustomAttributes(pluginType) + where IsAttributeDataForType(attr, typeof(PluginAttribute)) + select attr).Single(); + + pluginName = (string)pluginMetaDataAttr.ConstructorArguments[0].Value; + + // default description and version + pluginVersion = "0.0.0.0"; + pluginDescription = string.Empty; + if (pluginMetaDataAttr.ConstructorArguments.Count() == 2) { + // if two arguments are given the second argument is the version + pluginVersion = (string)pluginMetaDataAttr.ConstructorArguments[1].Value; + } else if (pluginMetaDataAttr.ConstructorArguments.Count() == 3) { + // if three arguments are given the second argument is the description and the third is the version + pluginDescription = (string)pluginMetaDataAttr.ConstructorArguments[1].Value; + pluginVersion = (string)pluginMetaDataAttr.ConstructorArguments[2].Value; + } + } + + private static bool IsAttributeDataForType(CustomAttributeData attributeData, Type attributeType) { + return attributeData.Constructor.DeclaringType.AssemblyQualifiedName == attributeType.AssemblyQualifiedName; + } + + // builds a dependency tree of all plugin descriptions + // searches matching plugin descriptions based on the list of dependency names for each plugin + // and sets the dependencies in the plugin descriptions + private void BuildDependencyTree(IEnumerable pluginDescriptions) { + foreach (var desc in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { + var missingDependencies = new List(); + foreach (var dependency in pluginDependencies[desc]) { + var matchingDescriptions = from availablePlugin in pluginDescriptions + where availablePlugin.PluginState != PluginState.Disabled + where availablePlugin.Name == dependency.Name + where IsCompatiblePluginVersion(availablePlugin.Version, dependency.Version) + select availablePlugin; + if (matchingDescriptions.Count() > 0) { + desc.AddDependency(matchingDescriptions.Single()); + } else { + missingDependencies.Add(dependency); + } + } + // no plugin description that matches the dependencies are available => plugin is disabled + if (missingDependencies.Count > 0) { + StringBuilder errorStrBuilder = new StringBuilder(); + errorStrBuilder.AppendLine("Missing dependencies:"); + foreach (var missingDep in missingDependencies) { + errorStrBuilder.AppendLine(missingDep.Name + " " + missingDep.Version); + } + desc.Disable(errorStrBuilder.ToString()); + } + } + } + + /// + /// Checks if version is compatible to version . + /// Note: the compatibility relation is not bijective. + /// Compatibility rules: + /// * major and minor number must be the same + /// * build and revision number of must be larger or equal to . + /// + /// The available version which should be compared to . + /// The requested version that must be matched. + /// + private static bool IsCompatiblePluginVersion(Version available, Version requested) { + // this condition must be removed after all plugins have been updated to declare plugin and dependency versions + if ( + (requested.Major == 0 && requested.Minor == 0) || + (available.Major == 0 && available.Minor == 0)) return true; + return + available.Major == requested.Major && + available.Minor == requested.Minor && + available.Build >= requested.Build && + available.Revision >= requested.Revision; + } + + private void CheckPluginDependencyCycles(IEnumerable pluginDescriptions) { + foreach (var plugin in pluginDescriptions) { + // if the plugin is not disabled check if there are cycles + if (plugin.PluginState != PluginState.Disabled && HasCycleInDependencies(plugin, plugin.Dependencies)) { + plugin.Disable("Dependency graph has a cycle."); + } + } + } + + private bool HasCycleInDependencies(PluginDescription plugin, IEnumerable pluginDependencies) { + foreach (var dep in pluginDependencies) { + // if one of the dependencies is the original plugin we found a cycle and can return + // if the dependency is already disabled we can ignore the cycle detection because we will disable the plugin anyway + // if following one of the dependencies recursively leads to a cycle then we also return + if (dep == plugin || dep.PluginState == PluginState.Disabled || HasCycleInDependencies(plugin, dep.Dependencies)) return true; + } + // no cycle found and none of the direct and indirect dependencies is disabled + return false; + } + + private void CheckPluginDependencies(IEnumerable pluginDescriptions) { + foreach (PluginDescription pluginDescription in pluginDescriptions.Where(x => x.PluginState != PluginState.Disabled)) { + List disabledPlugins = new List(); + if (IsAnyDependencyDisabled(pluginDescription, disabledPlugins)) { + StringBuilder errorStrBuilder = new StringBuilder(); + errorStrBuilder.AppendLine("Dependencies are disabled:"); + foreach (var disabledPlugin in disabledPlugins) { + errorStrBuilder.AppendLine(disabledPlugin.Name + " " + disabledPlugin.Version); + } + pluginDescription.Disable(errorStrBuilder.ToString()); + } + } + } + + + private bool IsAnyDependencyDisabled(PluginDescription descr, List disabledPlugins) { + if (descr.PluginState == PluginState.Disabled) { + disabledPlugins.Add(descr); + return true; + } + foreach (PluginDescription dependency in descr.Dependencies) { + IsAnyDependencyDisabled(dependency, disabledPlugins); + } + return disabledPlugins.Count > 0; + } + + // tries to load all plugin assemblies into the execution context + // if an assembly of a plugin cannot be loaded the plugin is disabled + private void CheckExecutionContextLoad(IEnumerable pluginDescriptions) { + // load all loadable plugins (all dependencies available) into the execution context + foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(pluginDescriptions + .Where(x => x.PluginState != PluginState.Disabled))) { + // store the assembly names so that we can later retrieve the assemblies loaded in the appdomain by name + var assemblyNames = new List(); + foreach (string assemblyLocation in desc.AssemblyLocations) { + if (desc.PluginState != PluginState.Disabled) { + try { + string assemblyName = (from assembly in AppDomain.CurrentDomain.ReflectionOnlyGetAssemblies() + where string.Equals(Path.GetFullPath(assembly.Location), Path.GetFullPath(assemblyLocation), StringComparison.CurrentCultureIgnoreCase) + select assembly.FullName).Single(); + // now load the assemblies into the execution context + // this can still lead to an exception + // even when the assemby was successfully loaded into the reflection only context before + // when loading the assembly using it's assemblyName it can be loaded from a different location than before (e.g. the GAC) + Assembly.Load(assemblyName); + assemblyNames.Add(assemblyName); + } + catch (BadImageFormatException) { + desc.Disable(Path.GetFileName(assemblyLocation) + " is not a valid assembly."); + } + catch (FileLoadException) { + desc.Disable("Can't load file " + Path.GetFileName(assemblyLocation)); + } + catch (FileNotFoundException) { + desc.Disable("File " + Path.GetFileName(assemblyLocation) + " is missing."); + } + catch (SecurityException) { + desc.Disable("File " + Path.GetFileName(assemblyLocation) + " can't be loaded because of security constraints."); + } + catch (NotSupportedException ex) { + // disable the plugin + desc.Disable("Problem while loading plugin assemblies:" + Environment.NewLine + "NotSupportedException: " + ex.Message); + } + } + } + desc.AssemblyNames = assemblyNames; + } + } + + // assumes that all plugin assemblies have been loaded into the execution context via CheckExecutionContextLoad + // for each enabled plugin: + // calls OnLoad method of the plugin + // and raises the PluginLoaded event + private void LoadPlugins(IEnumerable pluginDescriptions) { + List assemblies = new List(AppDomain.CurrentDomain.GetAssemblies()); + foreach (var desc in pluginDescriptions) { + if (desc.PluginState == PluginState.Enabled) { + // cannot use ApplicationManager to retrieve types because it is not yet instantiated + foreach (string assemblyName in desc.AssemblyNames) { + var asm = (from assembly in assemblies + where assembly.FullName == assemblyName + select assembly) + .SingleOrDefault(); + if (asm == null) throw new InvalidPluginException("Could not load assembly " + assemblyName + " for plugin " + desc.Name); + foreach (Type pluginType in asm.GetTypes()) { + if (typeof(IPlugin).IsAssignableFrom(pluginType) && !pluginType.IsAbstract && !pluginType.IsInterface && !pluginType.HasElementType) { + IPlugin plugin = (IPlugin)Activator.CreateInstance(pluginType); + plugin.OnLoad(); + OnPluginLoaded(new PluginInfrastructureEventArgs(desc)); + } + } + } // end foreach assembly in plugin + desc.Load(); + } + } // end foreach plugin description + } + + // checks if all declared plugin files are actually available and disables plugins with missing files + private void CheckPluginFiles(IEnumerable pluginDescriptions) { + foreach (PluginDescription desc in pluginDescriptions) { + IEnumerable missingFiles; + if (ArePluginFilesMissing(desc, out missingFiles)) { + StringBuilder errorStrBuilder = new StringBuilder(); + errorStrBuilder.AppendLine("Missing files:"); + foreach (string fileName in missingFiles) { + errorStrBuilder.AppendLine(fileName); + } + desc.Disable(errorStrBuilder.ToString()); + } + } + } + + private bool ArePluginFilesMissing(PluginDescription pluginDescription, out IEnumerable missingFiles) { + List missing = new List(); + foreach (string filename in pluginDescription.Files.Select(x => x.Name)) { + if (!FileLiesInDirectory(PluginDir, filename) || + !File.Exists(filename)) { + missing.Add(filename); + } + } + missingFiles = missing; + return missing.Count > 0; + } + + private static bool FileLiesInDirectory(string dir, string fileName) { + var basePath = Path.GetFullPath(dir); + return Path.GetFullPath(fileName).StartsWith(basePath); + } + + private static PluginDescription GetDeclaringPlugin(Type appType, IEnumerable plugins) { + return (from p in plugins + from asmLocation in p.AssemblyLocations + where Path.GetFullPath(asmLocation).Equals(Path.GetFullPath(appType.Assembly.Location), StringComparison.CurrentCultureIgnoreCase) + select p).Single(); + } + + // register assembly in the assembly cache for the ReflectionOnlyAssemblyResolveEvent + private void RegisterLoadedAssembly(Assembly asm) { + if (reflectionOnlyAssemblies.ContainsKey(asm.FullName) || reflectionOnlyAssemblies.ContainsKey(asm.GetName().Name)) { + throw new ArgumentException("An assembly with the name " + asm.GetName().Name + " has been registered already.", "asm"); + } + reflectionOnlyAssemblies.Add(asm.FullName, asm); + reflectionOnlyAssemblies.Add(asm.GetName().Name, asm); // add short name + } + + private void OnPluginLoaded(PluginInfrastructureEventArgs e) { + if (PluginLoaded != null) + PluginLoaded(this, e); + } + + /// + /// Initializes the life time service with an infinite lease time. + /// + /// null. + public override object InitializeLifetimeService() { + return null; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/PluginDescriptionIterator.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/PluginDescriptionIterator.cs new file mode 100644 index 0000000000..e903d5ebb7 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/PluginDescriptionIterator.cs @@ -0,0 +1,66 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Collections.Generic; +using System.Linq; + +namespace HeuristicLab.PluginInfrastructure.Manager { + internal static class PluginDescriptionIterator { + internal static IEnumerable IterateDependenciesBottomUp(IEnumerable pluginDescriptions) { + // list to make sure we yield each description only once + HashSet yieldedDescriptions = new HashSet(); + foreach (var desc in pluginDescriptions) { + foreach (var dependency in IterateDependenciesBottomUp(desc.Dependencies)) { + if (!yieldedDescriptions.Contains(dependency)) { + yieldedDescriptions.Add(dependency); + yield return dependency; + } + } + if (!yieldedDescriptions.Contains(desc)) { + yieldedDescriptions.Add(desc); + yield return desc; + } + } + } + + internal static IEnumerable IterateDependentsTopDown(IEnumerable pluginDescriptions, IEnumerable allPlugins) { + HashSet yieldedDescriptions = new HashSet(); + foreach (var desc in pluginDescriptions) { + foreach (var dependent in IterateDependentsTopDown(GetDependentPlugins(desc, allPlugins), allPlugins)) { + if (!yieldedDescriptions.Contains(dependent)) { + yieldedDescriptions.Add(dependent); + yield return dependent; + } + } + if (!yieldedDescriptions.Contains(desc)) { + yieldedDescriptions.Add(desc); + yield return desc; + } + } + } + + private static IEnumerable GetDependentPlugins(PluginDescription desc, IEnumerable allPlugins) { + return from plugin in allPlugins + where plugin.Dependencies.Contains(desc) + select plugin; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/PluginState.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/PluginState.cs new file mode 100644 index 0000000000..c635acf7d2 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/PluginState.cs @@ -0,0 +1,47 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; + +namespace HeuristicLab.PluginInfrastructure { + /// + /// Possible states that a plugin can have. + /// + [Serializable] + public enum PluginState { + /// + /// Undefined state is the default plugin state. + /// + Undefined, + /// + /// Enabled state means that the plugin has correct meta-data and can be loaded. + /// + Enabled, + /// + /// Disabled state means that the plugin has incorrect meta-data or missing dependencies and cannot be loaded. + /// + Disabled, + /// + /// Loaded means the plugin is currently loaded by an application. + /// + Loaded + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/AssemblyInfo.cs.frame b/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/AssemblyInfo.cs.frame new file mode 100644 index 0000000000..e521e1a3ab --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/AssemblyInfo.cs.frame @@ -0,0 +1,58 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security; +using System; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("HeuristicLab.PluginInfrastructure")] +[assembly: AssemblyDescription("PluginInfrastructure to load and manage HeuristicLab plugins")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("HeuristicLab")] +[assembly: AssemblyCopyright("(c) 2019 HEAL")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: CLSCompliant(true)] +[assembly: InternalsVisibleTo("HeuristicLab.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100e3d38bc66a0dd8dd36f57285e34632ec04b3049866ab1e64cf230e95ffcbfbb90c437b4d11dfe74ba981f746274290bb03f3e636e139e685b501031dc6e0bc8409153f0c842721eb9e8e2a703c9e4d102283f3ddbdfab4078c08de51869715992a694d2f608d0fa865c9d17c06b8d6a9135004e982fd862cdb2277e4ad15a4a6")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7f3dedcf-24cc-4176-977a-0baad7f16573")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("3.3.0.0")] +[assembly: AssemblyFileVersion("3.3.16.$WCREV$")] diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/Settings.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/Settings.Designer.cs new file mode 100644 index 0000000000..77d88b9301 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/Settings.Designer.cs @@ -0,0 +1,122 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HeuristicLab.PluginInfrastructure.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0")] + public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("anonymous")] + public string UpdateLocationUserName { + get { + return ((string)(this["UpdateLocationUserName"])); + } + set { + this["UpdateLocationUserName"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("GetTheLab!")] + public string UpdateLocationPassword { + get { + return ((string)(this["UpdateLocationPassword"])); + } + set { + this["UpdateLocationPassword"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool ShowPluginUploadControls { + get { + return ((bool)(this["ShowPluginUploadControls"])); + } + set { + this["ShowPluginUploadControls"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc")] + public string UpdateLocation { + get { + return ((string)(this["UpdateLocation"])); + } + set { + this["UpdateLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("http://services.heuristiclab.com/Deployment-3.3/AdminService.svc")] + public string UpdateLocationAdministrationAddress { + get { + return ((string)(this["UpdateLocationAdministrationAddress"])); + } + set { + this["UpdateLocationAdministrationAddress"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Point StarterFormLocation { + get { + return ((global::System.Drawing.Point)(this["StarterFormLocation"])); + } + set { + this["StarterFormLocation"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] + public global::System.Drawing.Size StarterFormSize { + get { + return ((global::System.Drawing.Size)(this["StarterFormSize"])); + } + set { + this["StarterFormSize"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Normal")] + public global::System.Windows.Forms.FormWindowState StarterFormWindowState { + get { + return ((global::System.Windows.Forms.FormWindowState)(this["StarterFormWindowState"])); + } + set { + this["StarterFormWindowState"] = value; + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/Settings.settings b/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/Settings.settings new file mode 100644 index 0000000000..128bdbfa9a --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Properties/Settings.settings @@ -0,0 +1,30 @@ + + + + + + anonymous + + + GetTheLab! + + + False + + + http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc + + + http://services.heuristiclab.com/Deployment-3.3/AdminService.svc + + + 0, 0 + + + 0, 0 + + + Normal + + + \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources.Designer.cs new file mode 100644 index 0000000000..48d2379295 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources.Designer.cs @@ -0,0 +1,292 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HeuristicLab.PluginInfrastructure { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.PluginInfrastructure.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Add { + get { + object obj = ResourceManager.GetObject("Add", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ArrowUp { + get { + object obj = ResourceManager.GetObject("ArrowUp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Assembly { + get { + object obj = ResourceManager.GetObject("Assembly", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Document { + get { + object obj = ResourceManager.GetObject("Document", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Error { + get { + object obj = ResourceManager.GetObject("Error", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon ErrorIcon { + get { + object obj = ResourceManager.GetObject("ErrorIcon", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap File { + get { + object obj = ResourceManager.GetObject("File", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon HeuristicLab { + get { + object obj = ResourceManager.GetObject("HeuristicLab", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap HeuristicLabBanner { + get { + object obj = ResourceManager.GetObject("HeuristicLabBanner", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap HeuristicLabLogo { + get { + object obj = ResourceManager.GetObject("HeuristicLabLogo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Install { + get { + object obj = ResourceManager.GetObject("Install", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Internet { + get { + object obj = ResourceManager.GetObject("Internet", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized string similar to HeuristicLab is free software: you can redistribute it and/or modify + ///it under the terms of the GNU General Public License as published by + ///the Free Software Foundation, either version 3 of the License, or + ///(at your option) any later version. + /// + ///HeuristicLab is distributed in the hope that it will be useful, + ///but WITHOUT ANY WARRANTY; without even the implied warranty of + ///MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ///GNU General Public License for more details. + /// + ///You should have received a copy of t [rest of string was truncated]";. + /// + internal static string LicenseText { + get { + return ResourceManager.GetString("LicenseText", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap NetworkConnections { + get { + object obj = ResourceManager.GetObject("NetworkConnections", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Plugin { + get { + object obj = ResourceManager.GetObject("Plugin", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap PublishToWeb { + get { + object obj = ResourceManager.GetObject("PublishToWeb", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Remove { + get { + object obj = ResourceManager.GetObject("Remove", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Repeat { + get { + object obj = ResourceManager.GetObject("Repeat", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon Setup_Install { + get { + object obj = ResourceManager.GetObject("Setup_Install", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ShowDetails { + get { + object obj = ResourceManager.GetObject("ShowDetails", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap ShowIcons { + get { + object obj = ResourceManager.GetObject("ShowIcons", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon UpdateAvailable { + get { + object obj = ResourceManager.GetObject("UpdateAvailable", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources.resx b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources.resx new file mode 100644 index 0000000000..8a4a6bbcaf --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources.resx @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Assembly.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Document.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Annotations_Error.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Error.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_File.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\HeuristicLab.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\HeuristicLabBanner.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\HeuristicLabLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Install.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Internet.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + HeuristicLab is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +HeuristicLab is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with HeuristicLab. If not, see http://www.gnu.org/licenses. + Displayed in about dialog + + + Resources\VS2008ImageLibrary_Objects_NetworkConnections.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Objects_Plugin.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Actions_PublishToWebHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_CommonElements_Actions_Remove.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\VS2008ImageLibrary_Actions_RepeatHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Setup_Install.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\show_details.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\show_icons.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\UpdateAvailable.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/Error.ico b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/Error.ico new file mode 100644 index 0000000000..4db814c65d Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/Error.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLab.ico b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLab.ico new file mode 100644 index 0000000000..6c6f943b9d Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLab.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLabBanner.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLabBanner.png new file mode 100644 index 0000000000..f183baf1d0 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLabBanner.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLabLogo.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLabLogo.png new file mode 100644 index 0000000000..65f387b225 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/HeuristicLabLogo.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/Setup_Install.ico b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/Setup_Install.ico new file mode 100644 index 0000000000..09b98f81c9 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/Setup_Install.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/UpdateAvailable.ico b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/UpdateAvailable.ico new file mode 100644 index 0000000000..c7dc05d696 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/UpdateAvailable.ico differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Actions_PublishToWebHS.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Actions_PublishToWebHS.png new file mode 100644 index 0000000000..aaf48657e7 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Actions_PublishToWebHS.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Actions_RepeatHS.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Actions_RepeatHS.png new file mode 100644 index 0000000000..1b6573d213 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Actions_RepeatHS.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Annotations_Error.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Annotations_Error.png new file mode 100644 index 0000000000..243ddb2aee Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Annotations_Error.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Add.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Add.png new file mode 100644 index 0000000000..2ccf605a20 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Add.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Remove.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Remove.png new file mode 100644 index 0000000000..402561a7b2 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Actions_Remove.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png new file mode 100644 index 0000000000..a12e825131 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_CommonElements_Objects_Arrow_Up.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Assembly.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Assembly.png new file mode 100644 index 0000000000..3309df0b27 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Assembly.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Document.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Document.png new file mode 100644 index 0000000000..0da460b272 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Document.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_File.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_File.png new file mode 100644 index 0000000000..d287d20517 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_File.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Install.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Install.png new file mode 100644 index 0000000000..175de0d1d9 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Install.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Internet.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Internet.png new file mode 100644 index 0000000000..f96d8a4380 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Internet.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_NetworkConnections.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_NetworkConnections.png new file mode 100644 index 0000000000..5f5563b3a6 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_NetworkConnections.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Plugin.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Plugin.png new file mode 100644 index 0000000000..70740ec7d2 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/VS2008ImageLibrary_Objects_Plugin.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/show_details.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/show_details.png new file mode 100644 index 0000000000..a7b68e598f Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/show_details.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/show_icons.png b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/show_icons.png new file mode 100644 index 0000000000..8d69282639 Binary files /dev/null and b/HeuristicLab.PluginInfrastructure.Views/3.3/Resources/show_icons.png differ diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/SandboxApplicationManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/SandboxApplicationManager.cs new file mode 100644 index 0000000000..02e7136349 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/SandboxApplicationManager.cs @@ -0,0 +1,366 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure { + + /// + /// The SandboxApplicationManager provides properties to retrieve the list of available plugins and applications. + /// It also provides methods for type discovery and instantiation for types declared in plugins. + /// The SandboxApplicationManager is used in sandboxed Application Domains where permissions are restricted and + /// only partially-trusted code can be executed. + /// + internal class SandboxApplicationManager : MarshalByRefObject, IApplicationManager { + /// + /// Fired when a plugin is loaded. + /// + internal event EventHandler PluginLoaded; + /// + /// Fired when a plugin is unloaded (when the application terminates). + /// + internal event EventHandler PluginUnloaded; + + // cache for the AssemblyResolveEvent + // which must be handled when assemblies are loaded dynamically after the application start + protected internal Dictionary loadedAssemblies; + + private List loadedPlugins; + + private List plugins; + /// + /// Gets all plugins. + /// + public IEnumerable Plugins { + get { return plugins.Cast(); } + } + + private List applications; + /// + /// Gets all installed applications. + /// + public IEnumerable Applications { + get { return applications.Cast(); } + } + + internal SandboxApplicationManager() + : base() { + loadedAssemblies = new Dictionary(); + loadedPlugins = new List(); + + AppDomain.CurrentDomain.DomainUnload += CurrentDomain_DomainUnload; + } + + /// + /// The sandbox application manager can also be used to load plugins even when no actual application is executed. + /// In such cases, plugins that have been loaded also have to be unloaded again before the application domain is unloaded. + /// + private void CurrentDomain_DomainUnload(object sender, EventArgs e) { + UnloadPlugins(); + } + + /// + /// Prepares the application domain for the execution of an HL application. + /// Pre-loads all . + /// + /// Enumerable of available HL applications. + /// Enumerable of plugins that should be pre-loaded. + internal void PrepareApplicationDomain(IEnumerable apps, IEnumerable plugins) { + this.plugins = new List(plugins); + this.applications = new List(apps); + ApplicationManager.RegisterApplicationManager(this); + LoadPlugins(plugins); + } + + /// + /// Loads the into this application domain. + /// + /// Enumerable of plugins that should be loaded. + private void LoadPlugins(IEnumerable plugins) { + // load all loadable plugins (all dependencies available) into the execution context + foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(plugins.Where(x => x.PluginState != PluginState.Disabled))) { + foreach (string fileName in desc.AssemblyLocations) { + // load assembly reflection only first to get the full assembly name + var reflectionOnlyAssembly = Assembly.ReflectionOnlyLoadFrom(fileName); + // load the assembly into execution context using full assembly name + var asm = Assembly.Load(reflectionOnlyAssembly.FullName); + RegisterLoadedAssembly(asm); + // instantiate and load all plugins in this assembly + foreach (var plugin in GetInstances(asm)) { + plugin.OnLoad(); + loadedPlugins.Add(plugin); + } + } + OnPluginLoaded(new PluginInfrastructureEventArgs(desc)); + desc.Load(); + } + } + + /// + /// Unloads the that were loaded into this application domain. + /// + private void UnloadPlugins() { + // unload plugins in reverse order + foreach (var plugin in loadedPlugins.Reverse()) { + plugin.OnUnload(); + } + loadedPlugins.Clear(); // remove all plugins once unloaded + + foreach (var desc in PluginDescriptionIterator.IterateDependenciesBottomUp(plugins.Where(x => x.PluginState != PluginState.Disabled))) { + desc.Unload(); + OnPluginUnloaded(new PluginInfrastructureEventArgs(desc)); + } + plugins.Clear(); // remove all plugin descriptions once unloaded + } + + /// + /// Runs the application declared in . + /// This is a synchronous call. When the application is terminated all plugins are unloaded. + /// + /// Description of the application to run + internal void Run(ApplicationDescription appInfo, ICommandLineArgument[] args) { + IApplication runnablePlugin = (IApplication)Activator.CreateInstance(appInfo.DeclaringAssemblyName, appInfo.DeclaringTypeName).Unwrap(); + try { + runnablePlugin.Run(args); + } finally { + UnloadPlugins(); + } + } + + // register assembly in the assembly cache for the AssemblyResolveEvent + private void RegisterLoadedAssembly(Assembly asm) { + if (loadedAssemblies.ContainsKey(asm.FullName) || loadedAssemblies.ContainsKey(asm.GetName().Name)) { + throw new ArgumentException("An assembly with the name " + asm.GetName().Name + " has been registered already.", "asm"); + } + loadedAssemblies.Add(asm.FullName, asm); + loadedAssemblies.Add(asm.GetName().Name, asm); // add short name + } + + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type and declared in + /// + /// Most general type. + /// Enumerable of the created instances. + internal static IEnumerable GetInstances(IPluginDescription plugin) where T : class { + List instances = new List(); + foreach (Type t in GetTypes(typeof(T), plugin, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { + T instance = null; + try { instance = (T)Activator.CreateInstance(t); } + catch { } + if (instance != null) instances.Add(instance); + } + return instances; + } + /// + /// Creates an instance of all types declared in assembly that are subtypes or the same type of the specified . + /// + /// Most general type. + /// Declaring assembly. + /// Enumerable of the created instances. + private static IEnumerable GetInstances(Assembly asm) where T : class { + List instances = new List(); + foreach (Type t in GetTypes(typeof(T), asm, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { + T instance = null; + try { instance = (T)Activator.CreateInstance(t); } + catch { } + if (instance != null) instances.Add(instance); + } + return instances; + } + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type + /// + /// Most general type. + /// Enumerable of the created instances. + internal static IEnumerable GetInstances() where T : class { + return from i in GetInstances(typeof(T)) + select (T)i; + } + + /// + /// Creates an instance of all types that are subtypes or the same type of the specified type + /// + /// Most general type. + /// Enumerable of the created instances. + internal static IEnumerable GetInstances(Type type) { + List instances = new List(); + foreach (Type t in GetTypes(type, onlyInstantiable: true, includeGenericTypeDefinitions: false)) { + object instance = null; + try { instance = Activator.CreateInstance(t); } + catch { } + if (instance != null) instances.Add(instance); + } + return instances; + } + + /// + /// Finds all types that are subtypes or equal to the specified type. + /// + /// Most general type for which to find matching types. + /// Return only types that are instantiable + /// Specifies if generic type definitions shall be included + /// (interfaces, abstract classes... are not returned) + /// Enumerable of the discovered types. + internal static IEnumerable GetTypes(Type type, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return from asm in AppDomain.CurrentDomain.GetAssemblies() + where !asm.IsDynamic && !string.IsNullOrEmpty(asm.Location) + from t in GetTypes(type, asm, onlyInstantiable, includeGenericTypeDefinitions) + select t; + } + + internal static IEnumerable GetTypes(IEnumerable types, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + IEnumerable result = GetTypes(types.First(), onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + /// + /// Finds all types that are subtypes or equal to the specified type if they are part of the given + /// . + /// + /// Most general type for which to find matching types. + /// The plugin the subtypes must be part of. + /// Return only types that are instantiable + /// Specifies if generic type definitions shall be included + /// (interfaces, abstract classes... are not returned) + /// Enumerable of the discovered types. + internal static IEnumerable GetTypes(Type type, IPluginDescription pluginDescription, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + PluginDescription pluginDesc = (PluginDescription)pluginDescription; + return from asm in AppDomain.CurrentDomain.GetAssemblies() + where !asm.IsDynamic && !string.IsNullOrEmpty(asm.Location) + where pluginDesc.AssemblyLocations.Any(location => location.Equals(Path.GetFullPath(asm.Location), StringComparison.CurrentCultureIgnoreCase)) + from t in GetTypes(type, asm, onlyInstantiable, includeGenericTypeDefinitions) + select t; + } + + internal static IEnumerable GetTypes(IEnumerable types, IPluginDescription pluginDescription, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + IEnumerable result = GetTypes(types.First(), pluginDescription, onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, pluginDescription, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + /// + /// Gets types that are assignable (same of subtype) to the specified type only from the given assembly. + /// + /// Most general type we want to find. + /// Assembly that should be searched for types. + /// Return only types that are instantiable + /// (interfaces, abstract classes... are not returned) + /// Specifies if generic type definitions shall be included + /// Enumerable of the discovered types. + internal static IEnumerable GetTypes(Type type, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + var matchingTypes = from assemblyType in assembly.GetTypes() + let t = assemblyType.BuildType(type) + where t != null + where t.IsSubTypeOf(type) + where !t.IsNonDiscoverableType() + where onlyInstantiable == false || (!t.IsAbstract && !t.IsInterface && !t.HasElementType) + where includeGenericTypeDefinitions || !t.IsGenericTypeDefinition + select t; + + return matchingTypes; + } + + /// + /// Discovers all types implementing or inheriting all or any type in (directly and indirectly) that are declared in the assembly . + /// + /// The types to discover. + /// The declaring assembly. + /// Return only types that are instantiable (instance, abstract... are not returned) + /// /// Specifies if discovered types must implement or inherit all given . + /// An enumerable of discovered types. + internal static IEnumerable GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable = true, bool includeGenericTypeDefinitions = false, bool assignableToAllTypes = true) { + IEnumerable result = GetTypes(types.First(), assembly, onlyInstantiable, includeGenericTypeDefinitions); + foreach (Type type in types.Skip(1)) { + IEnumerable discoveredTypes = GetTypes(type, assembly, onlyInstantiable, includeGenericTypeDefinitions); + if (assignableToAllTypes) result = result.Intersect(discoveredTypes); + else result = result.Union(discoveredTypes); + } + return result; + } + + private void OnPluginLoaded(PluginInfrastructureEventArgs e) { + if (PluginLoaded != null) PluginLoaded(this, e); + } + + private void OnPluginUnloaded(PluginInfrastructureEventArgs e) { + if (PluginUnloaded != null) PluginUnloaded(this, e); + } + + #region IApplicationManager Members + + IEnumerable IApplicationManager.GetInstances() { + return GetInstances(); + } + + IEnumerable IApplicationManager.GetInstances(Type type) { + return GetInstances(type); + } + + IEnumerable IApplicationManager.GetTypes(Type type, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return GetTypes(type, onlyInstantiable, includeGenericTypeDefinitions); + } + IEnumerable IApplicationManager.GetTypes(IEnumerable types, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + return GetTypes(types, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); + } + + IEnumerable IApplicationManager.GetTypes(Type type, IPluginDescription plugin, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return GetTypes(type, plugin, onlyInstantiable, includeGenericTypeDefinitions); + } + IEnumerable IApplicationManager.GetTypes(IEnumerable types, IPluginDescription plugin, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + return GetTypes(types, plugin, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); + } + + IEnumerable IApplicationManager.GetTypes(Type type, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions) { + return GetTypes(type, assembly, onlyInstantiable, includeGenericTypeDefinitions); + } + IEnumerable IApplicationManager.GetTypes(IEnumerable types, Assembly assembly, bool onlyInstantiable, bool includeGenericTypeDefinitions, bool assignableToAllTypes) { + return GetTypes(types, assembly, onlyInstantiable, includeGenericTypeDefinitions, assignableToAllTypes); + } + + /// + /// Finds the plugin that declares the type. + /// + /// The type of interest. + /// The description of the plugin that declares the given type or null if the type has not been declared by a known plugin. + public IPluginDescription GetDeclaringPlugin(Type type) { + if (type == null) throw new ArgumentNullException("type"); + foreach (PluginDescription info in Plugins) { + if (info.AssemblyLocations.Contains(Path.GetFullPath(type.Assembly.Location))) return info; + } + return null; + } + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Sandboxing/SandboxManager.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Sandboxing/SandboxManager.cs new file mode 100644 index 0000000000..36f55fcac7 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Sandboxing/SandboxManager.cs @@ -0,0 +1,53 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Reflection; +using System.Security; +using System.Security.Permissions; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Sandboxing { + public static class SandboxManager { + /// + /// Returns a new AppDomain with loaded assemblies/plugins from applicationBase + /// + public static AppDomain CreateAndInitSandbox(string appDomainName, string applicationBase, string configFilePath) { + PermissionSet pSet; + pSet = new PermissionSet(PermissionState.Unrestricted); + + AppDomainSetup setup = new AppDomainSetup(); + setup.PrivateBinPath = applicationBase; + setup.ApplicationBase = applicationBase; + setup.ConfigurationFile = configFilePath; + + Type applicationManagerType = typeof(DefaultApplicationManager); + AppDomain applicationDomain = AppDomain.CreateDomain(appDomainName, null, setup, pSet, null); + DefaultApplicationManager applicationManager = (DefaultApplicationManager)applicationDomain.CreateInstanceAndUnwrap(applicationManagerType.Assembly.FullName, applicationManagerType.FullName, true, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null, null); + + PluginManager pm = new PluginManager(applicationBase); + pm.DiscoverAndCheckPlugins(); + applicationManager.PrepareApplicationDomain(pm.Applications, pm.Plugins); + + return applicationDomain; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/AboutDialog.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/AboutDialog.Designer.cs new file mode 100644 index 0000000000..d217becebe --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/AboutDialog.Designer.cs @@ -0,0 +1,331 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Starter { + partial class AboutDialog { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + this.okButton = new System.Windows.Forms.Button(); + this.pluginListView = new System.Windows.Forms.ListView(); + this.pluginNameColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginVersionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.pluginDescriptionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.imageList = new System.Windows.Forms.ImageList(this.components); + this.pictureBox = new System.Windows.Forms.PictureBox(); + this.label = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.productTextBox = new System.Windows.Forms.TextBox(); + this.versionTextBox = new System.Windows.Forms.TextBox(); + this.copyrightTextBox = new System.Windows.Forms.TextBox(); + this.pluginsGroupBox = new System.Windows.Forms.GroupBox(); + this.licenseTextBox = new System.Windows.Forms.RichTextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label4 = new System.Windows.Forms.Label(); + this.webLinkLabel = new System.Windows.Forms.LinkLabel(); + this.mailLinkLabel = new System.Windows.Forms.LinkLabel(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); + this.pluginsGroupBox.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // okButton + // + this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.Location = new System.Drawing.Point(538, 13); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size(75, 23); + this.okButton.TabIndex = 0; + this.okButton.Text = "&Close"; + this.okButton.UseVisualStyleBackColor = true; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // pluginListView + // + this.pluginListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.pluginNameColumnHeader, + this.pluginVersionColumnHeader, + this.pluginDescriptionColumnHeader}); + this.pluginListView.Location = new System.Drawing.Point(6, 19); + this.pluginListView.Name = "pluginListView"; + this.pluginListView.ShowGroups = false; + this.pluginListView.Size = new System.Drawing.Size(589, 201); + this.pluginListView.SmallImageList = this.imageList; + this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.pluginListView.TabIndex = 0; + this.pluginListView.UseCompatibleStateImageBehavior = false; + this.pluginListView.View = System.Windows.Forms.View.Details; + this.pluginListView.ItemActivate += new System.EventHandler(this.pluginListView_ItemActivate); + // + // pluginNameColumnHeader + // + this.pluginNameColumnHeader.Text = "Name"; + // + // pluginVersionColumnHeader + // + this.pluginVersionColumnHeader.Text = "Version"; + // + // pluginDescriptionColumnHeader + // + this.pluginDescriptionColumnHeader.Text = "Description"; + // + // imageList + // + this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.imageList.ImageSize = new System.Drawing.Size(16, 16); + this.imageList.TransparentColor = System.Drawing.Color.Transparent; + // + // pictureBox + // + this.pictureBox.Location = new System.Drawing.Point(12, 12); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size(160, 180); + this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox.TabIndex = 2; + this.pictureBox.TabStop = false; + // + // label + // + this.label.AutoSize = true; + this.label.Location = new System.Drawing.Point(183, 12); + this.label.Name = "label"; + this.label.Size = new System.Drawing.Size(47, 13); + this.label.TabIndex = 1; + this.label.Text = "Product:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(183, 31); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(45, 13); + this.label1.TabIndex = 3; + this.label1.Text = "Version:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(183, 50); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(54, 13); + this.label3.TabIndex = 5; + this.label3.Text = "Copyright:"; + // + // productTextBox + // + this.productTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.productTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.productTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.productTextBox.Location = new System.Drawing.Point(258, 12); + this.productTextBox.Name = "productTextBox"; + this.productTextBox.ReadOnly = true; + this.productTextBox.Size = new System.Drawing.Size(355, 13); + this.productTextBox.TabIndex = 2; + this.productTextBox.Text = "HeuristicLab"; + // + // versionTextBox + // + this.versionTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.versionTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.versionTextBox.Location = new System.Drawing.Point(258, 31); + this.versionTextBox.Name = "versionTextBox"; + this.versionTextBox.ReadOnly = true; + this.versionTextBox.Size = new System.Drawing.Size(355, 13); + this.versionTextBox.TabIndex = 4; + this.versionTextBox.Text = "1.0"; + // + // copyrightTextBox + // + this.copyrightTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.copyrightTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.copyrightTextBox.Location = new System.Drawing.Point(258, 50); + this.copyrightTextBox.Name = "copyrightTextBox"; + this.copyrightTextBox.ReadOnly = true; + this.copyrightTextBox.Size = new System.Drawing.Size(355, 13); + this.copyrightTextBox.TabIndex = 6; + this.copyrightTextBox.Text = "(C)"; + // + // pluginsGroupBox + // + this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pluginsGroupBox.Controls.Add(this.pluginListView); + this.pluginsGroupBox.Location = new System.Drawing.Point(12, 306); + this.pluginsGroupBox.Name = "pluginsGroupBox"; + this.pluginsGroupBox.Size = new System.Drawing.Size(601, 226); + this.pluginsGroupBox.TabIndex = 12; + this.pluginsGroupBox.TabStop = false; + this.pluginsGroupBox.Text = "Plugins"; + // + // licenseTextBox + // + this.licenseTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.licenseTextBox.BackColor = System.Drawing.SystemColors.HighlightText; + this.licenseTextBox.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.licenseTextBox.Location = new System.Drawing.Point(186, 115); + this.licenseTextBox.Name = "licenseTextBox"; + this.licenseTextBox.ReadOnly = true; + this.licenseTextBox.Size = new System.Drawing.Size(427, 185); + this.licenseTextBox.TabIndex = 11; + this.licenseTextBox.Text = "License Text"; + this.licenseTextBox.WordWrap = false; + this.licenseTextBox.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.licenseTextBox_LinkClicked); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(183, 69); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(49, 13); + this.label2.TabIndex = 7; + this.label2.Text = "Website:"; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.Control; + this.panel1.Controls.Add(this.okButton); + this.panel1.Location = new System.Drawing.Point(0, 538); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(626, 48); + this.panel1.TabIndex = 0; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(183, 88); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(47, 13); + this.label4.TabIndex = 9; + this.label4.Text = "Contact:"; + // + // webLinkLabel + // + this.webLinkLabel.AutoSize = true; + this.webLinkLabel.Location = new System.Drawing.Point(255, 69); + this.webLinkLabel.Name = "webLinkLabel"; + this.webLinkLabel.Size = new System.Drawing.Size(135, 13); + this.webLinkLabel.TabIndex = 8; + this.webLinkLabel.TabStop = true; + this.webLinkLabel.Text = "http://dev.heuristiclab.com"; + this.webLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.webLinkLabel_LinkClicked); + // + // mailLinkLabel + // + this.mailLinkLabel.AutoSize = true; + this.mailLinkLabel.Location = new System.Drawing.Point(255, 88); + this.mailLinkLabel.Name = "mailLinkLabel"; + this.mailLinkLabel.Size = new System.Drawing.Size(129, 13); + this.mailLinkLabel.TabIndex = 10; + this.mailLinkLabel.TabStop = true; + this.mailLinkLabel.Text = "support@heuristiclab.com"; + this.mailLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.mailLinkLabel_LinkClicked); + // + // AboutDialog + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.SystemColors.Window; + this.CancelButton = this.okButton; + this.ClientSize = new System.Drawing.Size(625, 586); + this.Controls.Add(this.mailLinkLabel); + this.Controls.Add(this.webLinkLabel); + this.Controls.Add(this.label4); + this.Controls.Add(this.panel1); + this.Controls.Add(this.label2); + this.Controls.Add(this.licenseTextBox); + this.Controls.Add(this.pluginsGroupBox); + this.Controls.Add(this.copyrightTextBox); + this.Controls.Add(this.versionTextBox); + this.Controls.Add(this.productTextBox); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.label); + this.Controls.Add(this.pictureBox); + this.Icon = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutDialog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About HeuristicLab"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); + this.pluginsGroupBox.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.ListView pluginListView; + private System.Windows.Forms.ImageList imageList; + private System.Windows.Forms.ColumnHeader pluginNameColumnHeader; + private System.Windows.Forms.ColumnHeader pluginVersionColumnHeader; + private System.Windows.Forms.ColumnHeader pluginDescriptionColumnHeader; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Label label; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox productTextBox; + private System.Windows.Forms.TextBox versionTextBox; + private System.Windows.Forms.TextBox copyrightTextBox; + private System.Windows.Forms.GroupBox pluginsGroupBox; + private System.Windows.Forms.RichTextBox licenseTextBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.LinkLabel webLinkLabel; + private System.Windows.Forms.LinkLabel mailLinkLabel; + } +} \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/AboutDialog.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/AboutDialog.cs new file mode 100644 index 0000000000..3de9a2ca7b --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/AboutDialog.cs @@ -0,0 +1,116 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Advanced; + +namespace HeuristicLab.PluginInfrastructure.Starter { + /// + /// Shows product, version and copyright information for HeuristicLab and all plugins. + /// + public partial class AboutDialog : Form { + /// + /// Creates a new about dialog with all plugins loaded in the current application. + /// + public AboutDialog() { + InitializeComponent(); + var curAssembly = this.GetType().Assembly; + productTextBox.Text = GetProduct(curAssembly); + versionTextBox.Text = GetVersion(); + copyrightTextBox.Text = GetCopyright(curAssembly); + imageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.Plugin); + pictureBox.Image = HeuristicLab.PluginInfrastructure.Resources.HeuristicLabLogo; + licenseTextBox.Text = HeuristicLab.PluginInfrastructure.Resources.LicenseText; + UpdatePluginList(ApplicationManager.Manager.Plugins); + ActiveControl = okButton; + } + + /// + /// Creates a new about dialog listing all plugins in the enumerable. + /// + /// Enumerable of plugins that should be listed. + public AboutDialog(IEnumerable plugins) + : this() { + UpdatePluginList(plugins); + } + + private void UpdatePluginList(IEnumerable plugins) { + pluginListView.Items.Clear(); + foreach (var plugin in plugins) { + ListViewItem pluginItem = CreateListViewItem(plugin); + pluginListView.Items.Add(pluginItem); + } + Util.ResizeColumns(pluginListView.Columns.OfType()); + } + + private ListViewItem CreateListViewItem(IPluginDescription plugin) { + ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description }); + item.Tag = plugin; + item.ImageIndex = 0; + return item; + } + + private string GetCopyright(Assembly asm) { + AssemblyCopyrightAttribute attribute = GetAttribute(asm); + return attribute.Copyright; + } + + private string GetVersion() { + return AssemblyHelpers.GetFileVersion(GetType().Assembly); + } + + private string GetProduct(Assembly asm) { + AssemblyProductAttribute attribute = GetAttribute(asm); + return attribute.Product; + } + + private T GetAttribute(Assembly asm) { + return (T)asm.GetCustomAttributes(typeof(T), false).Single(); + } + + private void okButton_Click(object sender, EventArgs e) { + Close(); + } + + private void pluginListView_ItemActivate(object sender, EventArgs e) { + if (pluginListView.SelectedItems.Count > 0) { + PluginView view = new PluginView((IPluginDescription)pluginListView.SelectedItems[0].Tag); + view.Show(this); + } + } + + private void licenseTextBox_LinkClicked(object sender, LinkClickedEventArgs e) { + System.Diagnostics.Process.Start(e.LinkText); + } + + private void webLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + System.Diagnostics.Process.Start(webLinkLabel.Text); + } + + private void mailLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { + System.Diagnostics.Process.Start("mailto:" + mailLinkLabel.Text); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/SplashScreen.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/SplashScreen.Designer.cs new file mode 100644 index 0000000000..a38a2aa4b0 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/SplashScreen.Designer.cs @@ -0,0 +1,134 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Starter { + partial class SplashScreen { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.versionLabel = new System.Windows.Forms.Label(); + this.infoLabel = new System.Windows.Forms.Label(); + this.copyrightLabel = new System.Windows.Forms.Label(); + this.pictureBox = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); + this.SuspendLayout(); + // + // versionLabel + // + this.versionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.versionLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F); + this.versionLabel.Location = new System.Drawing.Point(436, 147); + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size(150, 9); + this.versionLabel.TabIndex = 1; + this.versionLabel.Text = "Version "; + this.versionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // infoLabel + // + this.infoLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.infoLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.infoLabel.ForeColor = System.Drawing.Color.DarkOrange; + this.infoLabel.Location = new System.Drawing.Point(12, 113); + this.infoLabel.Name = "infoLabel"; + this.infoLabel.Size = new System.Drawing.Size(574, 30); + this.infoLabel.TabIndex = 6; + this.infoLabel.Text = "Startup Information"; + this.infoLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // copyrightLabel + // + this.copyrightLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.copyrightLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F); + this.copyrightLabel.Location = new System.Drawing.Point(12, 147); + this.copyrightLabel.Name = "copyrightLabel"; + this.copyrightLabel.Size = new System.Drawing.Size(150, 9); + this.copyrightLabel.TabIndex = 2; + this.copyrightLabel.Text = "Copyright"; + this.copyrightLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // pictureBox + // + this.pictureBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox.Image = global::HeuristicLab.PluginInfrastructure.Resources.HeuristicLabBanner; + this.pictureBox.Location = new System.Drawing.Point(0, 0); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size(598, 110); + this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // SplashScreen + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(598, 165); + this.ControlBox = false; + this.Controls.Add(this.pictureBox); + this.Controls.Add(this.versionLabel); + this.Controls.Add(this.copyrightLabel); + this.Controls.Add(this.infoLabel); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SplashScreen"; + this.Opacity = 0.99D; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Label versionLabel; + private System.Windows.Forms.Label copyrightLabel; + private System.Windows.Forms.Label infoLabel; + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/SplashScreen.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/SplashScreen.cs new file mode 100644 index 0000000000..6d8c527224 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/SplashScreen.cs @@ -0,0 +1,167 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Linq; +using System.Reflection; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Manager; + +namespace HeuristicLab.PluginInfrastructure.Starter { + internal partial class SplashScreen : Form { + private const int FADE_INTERVAL = 50; + private Timer fadeTimer; + private int initialInterval; + private PluginManager pluginManager; + + internal SplashScreen() { + InitializeComponent(); + } + + internal SplashScreen(PluginManager manager, int initialInterval) + : this() { + this.initialInterval = initialInterval; + this.pluginManager = manager; + + RegisterPluginManagerEventHandlers(); + + versionLabel.Text = "Version " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + infoLabel.Text = ""; + + var attr = (AssemblyCopyrightAttribute)this.GetType().Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false).Single(); + copyrightLabel.Text = "Copyright " + attr.Copyright; + + fadeTimer = new Timer(); + fadeTimer.Tick += fadeTimer_Elapsed; + fadeTimer.Interval = initialInterval; + } + + #region events + private void RegisterPluginManagerEventHandlers() { + pluginManager.ApplicationStarted += new EventHandler(manager_ApplicationStarted); + pluginManager.ApplicationStarting += new EventHandler(manager_ApplicationStarting); + pluginManager.Initializing += new EventHandler(manager_Initializing); + pluginManager.Initialized += new EventHandler(manager_Initialized); + pluginManager.PluginLoaded += new EventHandler(manager_PluginLoaded); + pluginManager.PluginUnloaded += new EventHandler(manager_PluginUnloaded); + } + + private void DeregisterPluginManagerEventHandlers() { + pluginManager.ApplicationStarted -= new EventHandler(manager_ApplicationStarted); + pluginManager.ApplicationStarting -= new EventHandler(manager_ApplicationStarting); + pluginManager.Initializing -= new EventHandler(manager_Initializing); + pluginManager.Initialized -= new EventHandler(manager_Initialized); + pluginManager.PluginLoaded -= new EventHandler(manager_PluginLoaded); + pluginManager.PluginUnloaded -= new EventHandler(manager_PluginUnloaded); + } + + private void manager_PluginUnloaded(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Unloaded " + e.Entity); + } + + private void manager_PluginLoaded(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Loaded " + e.Entity); + } + + private void manager_Initialized(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Initialized"); + } + + private void manager_Initializing(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Initializing"); + } + + private void manager_ApplicationStarting(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Starting " + e.Entity); + } + + private void manager_ApplicationStarted(object sender, PluginInfrastructureEventArgs e) { + SafeUpdateMessage("Started " + e.Entity); + } + // called from event handlers + private void SafeUpdateMessage(string msg) { + try { + Invoke((Action)UpdateMessage, msg); + } + catch (ObjectDisposedException) { } + } + + // each tick of the timer reduce opacity and restart timer + private void fadeTimer_Elapsed(object sender, EventArgs e) { + // only called from local timer: no need to invoke here + FadeOut(); + } + #endregion + + public void Show(string initialText) { + if (InvokeRequired) Invoke((Action)Show, initialText); + else { + Opacity = 1; + infoLabel.Text = initialText; + ResetFadeTimer(); + Show(); + } + } + + public void Show(IWin32Window owner, string initialText) { + if (InvokeRequired) Invoke((Action)Show, owner, initialText); + else { + Opacity = 1; + infoLabel.Text = initialText; + ResetFadeTimer(); + Show(owner); + } + } + + private void ResetFadeTimer() { + // wait initialInterval again for the first tick + fadeTimer.Stop(); + fadeTimer.Interval = initialInterval; + fadeTimer.Start(); + } + + private void UpdateMessage(string msg) { + ResetFadeTimer(); + infoLabel.Text = msg; + Application.DoEvents(); // force immediate update of splash screen control + } + + // reduces opacity of the splashscreen one step and restarts the fade-timer + private void FadeOut() { + fadeTimer.Stop(); + fadeTimer.Interval = FADE_INTERVAL; + if (this.Opacity > 0) { + Opacity -= 0.1; + fadeTimer.Start(); + } else { + Opacity = 0; + fadeTimer.Stop(); + Hide(); + } + } + + protected override void OnClosing(System.ComponentModel.CancelEventArgs e) { + // deregister events when form is closing + DeregisterPluginManagerEventHandlers(); + base.OnClosing(e); + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/StarterForm.Designer.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/StarterForm.Designer.cs new file mode 100644 index 0000000000..42fe142ab9 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/StarterForm.Designer.cs @@ -0,0 +1,203 @@ +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +namespace HeuristicLab.PluginInfrastructure.Starter { + partial class StarterForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Applications", System.Windows.Forms.HorizontalAlignment.Left); + System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Plugin Management", System.Windows.Forms.HorizontalAlignment.Left); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(StarterForm)); + this.startButton = new System.Windows.Forms.Button(); + this.largeImageList = new System.Windows.Forms.ImageList(this.components); + this.applicationsListView = new System.Windows.Forms.ListView(); + this.nameColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.versionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.descriptionColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.smallImageList = new System.Windows.Forms.ImageList(this.components); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.showLargeIconsButton = new System.Windows.Forms.RadioButton(); + this.showDetailsButton = new System.Windows.Forms.RadioButton(); + this.aboutButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // startButton + // + this.startButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(498, 511); + this.startButton.Name = "startButton"; + this.startButton.Size = new System.Drawing.Size(75, 23); + this.startButton.TabIndex = 1; + this.startButton.Text = "&Start"; + this.toolTip.SetToolTip(this.startButton, "Start Selected Application"); + this.startButton.UseVisualStyleBackColor = true; + this.startButton.Click += new System.EventHandler(this.applicationsListView_ItemActivate); + // + // largeImageList + // + this.largeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.largeImageList.ImageSize = new System.Drawing.Size(32, 32); + this.largeImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // applicationsListView + // + this.applicationsListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.applicationsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.nameColumnHeader, + this.versionColumnHeader, + this.descriptionColumnHeader}); + listViewGroup1.Header = "Applications"; + listViewGroup1.Name = "Applications"; + listViewGroup2.Header = "Plugin Management"; + listViewGroup2.Name = "Plugin Management"; + this.applicationsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] { + listViewGroup1, + listViewGroup2}); + this.applicationsListView.LargeImageList = this.largeImageList; + this.applicationsListView.Location = new System.Drawing.Point(12, 12); + this.applicationsListView.MultiSelect = false; + this.applicationsListView.Name = "applicationsListView"; + this.applicationsListView.ShowItemToolTips = true; + this.applicationsListView.Size = new System.Drawing.Size(642, 493); + this.applicationsListView.SmallImageList = this.smallImageList; + this.applicationsListView.TabIndex = 0; + this.applicationsListView.UseCompatibleStateImageBehavior = false; + this.applicationsListView.ItemActivate += new System.EventHandler(this.applicationsListView_ItemActivate); + this.applicationsListView.SelectedIndexChanged += new System.EventHandler(this.applicationsListView_SelectedIndexChanged); + // + // nameColumnHeader + // + this.nameColumnHeader.Text = "Name"; + this.nameColumnHeader.Width = 125; + // + // versionColumnHeader + // + this.versionColumnHeader.Text = "Version"; + // + // descriptionColumnHeader + // + this.descriptionColumnHeader.Text = "Description"; + this.descriptionColumnHeader.Width = 453; + // + // smallImageList + // + this.smallImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.smallImageList.ImageSize = new System.Drawing.Size(16, 16); + this.smallImageList.TransparentColor = System.Drawing.Color.Transparent; + // + // showLargeIconsButton + // + this.showLargeIconsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.showLargeIconsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showLargeIconsButton.Checked = true; + this.showLargeIconsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowIcons; + this.showLargeIconsButton.Location = new System.Drawing.Point(12, 511); + this.showLargeIconsButton.Name = "showLargeIconsButton"; + this.showLargeIconsButton.Size = new System.Drawing.Size(23, 23); + this.showLargeIconsButton.TabIndex = 2; + this.showLargeIconsButton.TabStop = true; + this.toolTip.SetToolTip(this.showLargeIconsButton, "Show Large Icons"); + this.showLargeIconsButton.UseVisualStyleBackColor = false; + this.showLargeIconsButton.Click += new System.EventHandler(this.largeIconsButton_Click); + // + // showDetailsButton + // + this.showDetailsButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.showDetailsButton.Appearance = System.Windows.Forms.Appearance.Button; + this.showDetailsButton.Image = global::HeuristicLab.PluginInfrastructure.Resources.ShowDetails; + this.showDetailsButton.Location = new System.Drawing.Point(41, 511); + this.showDetailsButton.Name = "showDetailsButton"; + this.showDetailsButton.Size = new System.Drawing.Size(23, 23); + this.showDetailsButton.TabIndex = 3; + this.toolTip.SetToolTip(this.showDetailsButton, "Show Details"); + this.showDetailsButton.UseVisualStyleBackColor = false; + this.showDetailsButton.Click += new System.EventHandler(this.detailsButton_Click); + // + // aboutButton + // + this.aboutButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.aboutButton.Location = new System.Drawing.Point(579, 511); + this.aboutButton.Name = "aboutButton"; + this.aboutButton.Size = new System.Drawing.Size(75, 23); + this.aboutButton.TabIndex = 4; + this.aboutButton.Text = "&About..."; + this.aboutButton.UseVisualStyleBackColor = true; + this.aboutButton.Click += new System.EventHandler(this.aboutButton_Click); + // + // StarterForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; + this.ClientSize = new System.Drawing.Size(666, 546); + this.Controls.Add(this.aboutButton); + this.Controls.Add(this.showDetailsButton); + this.Controls.Add(this.showLargeIconsButton); + this.Controls.Add(this.applicationsListView); + this.Controls.Add(this.startButton); + this.Icon = HeuristicLab.PluginInfrastructure.Resources.HeuristicLab; + this.Name = "StarterForm"; + this.Text = "HeuristicLab Starter"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.StarterForm_FormClosing); + this.Load += new System.EventHandler(this.StarterForm_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.ImageList largeImageList; + private System.Windows.Forms.ListView applicationsListView; + private System.Windows.Forms.ColumnHeader nameColumnHeader; + private System.Windows.Forms.ColumnHeader versionColumnHeader; + private System.Windows.Forms.ColumnHeader descriptionColumnHeader; + private System.Windows.Forms.ImageList smallImageList; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.RadioButton showLargeIconsButton; + private System.Windows.Forms.RadioButton showDetailsButton; + private System.Windows.Forms.Button aboutButton; + } +} diff --git a/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/StarterForm.cs similarity index 97% rename from HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs rename to HeuristicLab.PluginInfrastructure.Views/3.3/Starter/StarterForm.cs index 5a0019cf84..df49b23608 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Starter/StarterForm.cs +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/Starter/StarterForm.cs @@ -1,344 +1,344 @@ -#region License Information -/* HeuristicLab - * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) - * - * This file is part of HeuristicLab. - * - * HeuristicLab is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * HeuristicLab is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HeuristicLab. If not, see . - */ -#endregion - -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Windows.Forms; -using HeuristicLab.PluginInfrastructure.Advanced; -using HeuristicLab.PluginInfrastructure.Manager; -using HeuristicLab.PluginInfrastructure.Properties; - -namespace HeuristicLab.PluginInfrastructure.Starter { - /// - /// The starter form is responsible for initializing the plugin infrastructure - /// and shows a list of installed applications. - /// - public partial class StarterForm : Form { - private const string pluginManagerItemName = "Plugin Manager"; - private const string updatePluginsItemName = "Updates Available"; - private const string optimizerItemName = "Optimizer"; - - private readonly ICommandLineArgument[] arguments; - - private ListViewItem pluginManagerListViewItem; - private bool abortRequested; - private PluginManager pluginManager; - private SplashScreen splashScreen; - private bool updatesAvailable = false; - - /// - /// Initializes an instance of the starter form. - /// The starter form shows a splashscreen and initializes the plugin infrastructure. - /// - public StarterForm() - : base() { - InitializeComponent(); - largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); - largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); - smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); - smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); - Text = "HeuristicLab " + AssemblyHelpers.GetFileVersion(GetType().Assembly); - - string pluginPath = Path.GetFullPath(Application.StartupPath); - pluginManager = new PluginManager(pluginPath); - splashScreen = new SplashScreen(pluginManager, 1000); - splashScreen.VisibleChanged += new EventHandler(splashScreen_VisibleChanged); - splashScreen.Show(this, "Loading HeuristicLab..."); - - if (CheckSavedStarterFormSettings()) { - Location = Settings.Default.StarterFormLocation; - Size = Settings.Default.StarterFormSize; - WindowState = Settings.Default.StarterFormWindowState; - } - - pluginManager.DiscoverAndCheckPlugins(); - UpdateApplicationsList(); - - CheckUpdatesAvailableAsync(); - } - - /// - /// Creates a new StarterForm and passes the arguments in . - /// - /// The arguments that should be processed - public StarterForm(string[] args) - : this() { - arguments = CommandLineArgumentHandling.GetArguments(args); - } - - protected override void SetVisibleCore(bool value) { - value &= !(arguments.OfType().Any() || arguments.OfType().Any()); - if (!value) HandleArguments(); - base.SetVisibleCore(value); - } - - #region Events - private void StarterForm_Load(object sender, EventArgs e) { - HandleArguments(); - } - - private void StarterForm_FormClosing(object sender, FormClosingEventArgs e) { - splashScreen.Close(); - abortRequested = true; - - if (WindowState != FormWindowState.Minimized) - Settings.Default.StarterFormWindowState = WindowState; - if (WindowState != FormWindowState.Normal) { - Settings.Default.StarterFormLocation = RestoreBounds.Location; - Settings.Default.StarterFormSize = RestoreBounds.Size; - } else if (WindowState == FormWindowState.Normal) { - Settings.Default.StarterFormLocation = Location; - Settings.Default.StarterFormSize = Size; - } - - Settings.Default.Save(); - } - - private void applicationsListView_SelectedIndexChanged(object sender, EventArgs e) { - startButton.Enabled = applicationsListView.SelectedItems.Count > 0; - } - - private void applicationsListView_ItemActivate(object sender, EventArgs e) { - if (applicationsListView.SelectedItems.Count > 0) { - ListViewItem selected = applicationsListView.SelectedItems[0]; - if (selected.Text == pluginManagerItemName) { - if (pluginManager.Plugins.Any(x => x.PluginState == PluginState.Loaded)) { - MessageBox.Show("Installation Manager cannot be started while another HeuristicLab application is active." + Environment.NewLine + - "Please stop all active HeuristicLab applications and try again.", "Plugin Manager", - MessageBoxButtons.OK, MessageBoxIcon.Information); - } else { - try { - Cursor = Cursors.AppStarting; - using (InstallationManagerForm form = new InstallationManagerForm(pluginManager)) { - form.ShowDialog(this); - } - UpdateApplicationsList(); - } - finally { - Cursor = Cursors.Arrow; - } - } - } else if (selected.Text == updatePluginsItemName) { - if (pluginManager.Plugins.Any(x => x.PluginState == PluginState.Loaded)) { - MessageBox.Show("Updating is not possible while another HeuristicLab application is active." + Environment.NewLine + - "Please stop all active HeuristicLab applications and try again.", "Update plugins", - MessageBoxButtons.OK, MessageBoxIcon.Information); - } else { - try { - Cursor = Cursors.AppStarting; - using (PluginUpdaterForm form = new PluginUpdaterForm(pluginManager)) { - form.ShowDialog(this); - } - updatesAvailable = false; - CheckUpdatesAvailableAsync(); - UpdateApplicationsList(); - } - finally { - Cursor = Cursors.Arrow; - } - } - } else { - ApplicationDescription app = (ApplicationDescription)applicationsListView.SelectedItems[0].Tag; - StartApplication(app, arguments); - } - } - } - - private void largeIconsButton_Click(object sender, EventArgs e) { - applicationsListView.View = View.LargeIcon; - } - - private void detailsButton_Click(object sender, EventArgs e) { - applicationsListView.View = View.Details; - foreach (ColumnHeader column in applicationsListView.Columns) { - if (applicationsListView.Items.Count > 0) - column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); - else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); - } - } - - private void aboutButton_Click(object sender, EventArgs e) { - List plugins = new List(pluginManager.Plugins.OfType()); - using (var dialog = new AboutDialog(plugins)) { - dialog.ShowDialog(); - } - } - - private void splashScreen_VisibleChanged(object sender, EventArgs e) { - // close hidden starter form - if (!splashScreen.Visible && arguments != null && - (arguments.OfType().Any() || arguments.OfType().Any())) - Close(); - } - #endregion - - #region Helpers - private bool CheckSavedStarterFormSettings() { - var formArea = new Rectangle(Settings.Default.StarterFormLocation, Settings.Default.StarterFormSize); - var screenArea = Screen.FromRectangle(formArea).WorkingArea; - var overlappingArea = Rectangle.Intersect(formArea, screenArea); - bool offLimits = overlappingArea.IsEmpty || overlappingArea.Width * overlappingArea.Height < formArea.Width * formArea.Height * 0.25; - return !formArea.IsEmpty && !offLimits; - } - - private void UpdateApplicationsList() { - if (InvokeRequired) Invoke((Action)UpdateApplicationsList); - else { - applicationsListView.Items.Clear(); - AddPluginManagerItem(); - AddUpdatePluginsItem(); - - foreach (ApplicationDescription info in pluginManager.Applications) { - ListViewItem item = new ListViewItem(info.Name, 0); - item.Tag = info; - item.Group = applicationsListView.Groups["Applications"]; - item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Version.ToString())); - item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Description)); - item.ToolTipText = info.Description; - applicationsListView.Items.Add(item); - } - foreach (ColumnHeader column in applicationsListView.Columns) { - if (applicationsListView.Items.Count > 0) - column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); - else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); - } - } - } - - private void AddPluginManagerItem() { - pluginManagerListViewItem = new ListViewItem(pluginManagerItemName, 0); - pluginManagerListViewItem.Group = applicationsListView.Groups["Plugin Management"]; - pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, AssemblyHelpers.GetFileVersion(GetType().Assembly))); - pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, "Install, upgrade or delete plugins")); - pluginManagerListViewItem.ToolTipText = "Install, upgrade or delete plugins"; - - applicationsListView.Items.Add(pluginManagerListViewItem); - } - - private void AddUpdatePluginsItem() { - if (updatesAvailable) { - var updateListViewItem = new ListViewItem(updatePluginsItemName, 1); - updateListViewItem.Group = applicationsListView.Groups["Plugin Management"]; - updateListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(updateListViewItem, "")); - updateListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(updateListViewItem, "Download and install updates")); - updateListViewItem.ToolTipText = "Download and install updates"; - - applicationsListView.Items.Add(updateListViewItem); - } - } - - private void CheckUpdatesAvailableAsync() { - string pluginPath = Path.GetFullPath(Application.StartupPath); - var task = Task.Factory.StartNew(() => { - var installationManager = new InstallationManager(pluginPath); - IEnumerable installedPlugins = pluginManager.Plugins.OfType(); - var remotePlugins = installationManager.GetRemotePluginList(); - // if there is a local plugin with same name and same major and minor version then it's an update - var pluginsToUpdate = from remotePlugin in remotePlugins - let matchingLocalPlugins = from installedPlugin in installedPlugins - where installedPlugin.Name == remotePlugin.Name - where installedPlugin.Version.Major == remotePlugin.Version.Major - where installedPlugin.Version.Minor == remotePlugin.Version.Minor - where Util.IsNewerThan(remotePlugin, installedPlugin) - select installedPlugin - where matchingLocalPlugins.Count() > 0 - select remotePlugin; - return pluginsToUpdate.Count() > 0; - }); - task.ContinueWith(t => { - try { - t.Wait(); - updatesAvailable = t.Result; - UpdateApplicationsList(); - } - catch (AggregateException ae) { - ae.Handle(ex => { - if (ex is InstallationManagerException) { - // this is expected when no internet connection is available => do nothing - return true; - } else { - return false; - } - }); - } - }); - } - - private void HandleArguments() { - try { - if (arguments.OfType().Any() && !arguments.OfType().Any()) { - InitiateApplicationStart(optimizerItemName); - } - foreach (var argument in arguments) { - if (argument is StartArgument) { - var arg = (StartArgument)argument; - InitiateApplicationStart(arg.Value); - } - } - } - catch (AggregateException ex) { - ErrorHandling.ShowErrorDialog(this, "One or more errors occurred while initializing the application.", ex); - } - } - - private void InitiateApplicationStart(string appName) { - var appDesc = (from desc in pluginManager.Applications - where desc.Name.Equals(appName) - select desc).SingleOrDefault(); - if (appDesc != null) { - StartApplication(appDesc, arguments); - } else { - MessageBox.Show("Cannot start application " + appName + ".", - "HeuristicLab", - MessageBoxButtons.OK, - MessageBoxIcon.Warning); - } - } - - private void StartApplication(ApplicationDescription app, ICommandLineArgument[] args) { - splashScreen.Show("Loading " + app.Name); - Thread t = new Thread(delegate() { - bool stopped = false; - do { - try { - if (!abortRequested) { - pluginManager.Run(app, args); - } - stopped = true; - } - catch (Exception ex) { - stopped = false; - ThreadPool.QueueUserWorkItem(delegate(object exception) { ErrorHandling.ShowErrorDialog(this, (Exception)exception); }, ex); - Thread.Sleep(5000); // sleep 5 seconds before autorestart - } - } while (!abortRequested && !stopped && app.AutoRestart); - }); - t.SetApartmentState(ApartmentState.STA); // needed for the AdvancedOptimizationFrontent - t.Start(); - } - #endregion - } -} +#region License Information +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ +#endregion + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using HeuristicLab.PluginInfrastructure.Advanced; +using HeuristicLab.PluginInfrastructure.Manager; +using HeuristicLab.PluginInfrastructure.Properties; + +namespace HeuristicLab.PluginInfrastructure.Starter { + /// + /// The starter form is responsible for initializing the plugin infrastructure + /// and shows a list of installed applications. + /// + public partial class StarterForm : Form { + private const string pluginManagerItemName = "Plugin Manager"; + private const string updatePluginsItemName = "Updates Available"; + private const string optimizerItemName = "Optimizer"; + + private readonly ICommandLineArgument[] arguments; + + private ListViewItem pluginManagerListViewItem; + private bool abortRequested; + private PluginManager pluginManager; + private SplashScreen splashScreen; + private bool updatesAvailable = false; + + /// + /// Initializes an instance of the starter form. + /// The starter form shows a splashscreen and initializes the plugin infrastructure. + /// + public StarterForm() + : base() { + InitializeComponent(); + largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); + largeImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); + smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.HeuristicLab.ToBitmap()); + smallImageList.Images.Add(HeuristicLab.PluginInfrastructure.Resources.UpdateAvailable.ToBitmap()); + Text = "HeuristicLab " + AssemblyHelpers.GetFileVersion(GetType().Assembly); + + string pluginPath = Path.GetFullPath(Application.StartupPath); + pluginManager = new PluginManager(pluginPath); + splashScreen = new SplashScreen(pluginManager, 1000); + splashScreen.VisibleChanged += new EventHandler(splashScreen_VisibleChanged); + splashScreen.Show(this, "Loading HeuristicLab..."); + + if (CheckSavedStarterFormSettings()) { + Location = Settings.Default.StarterFormLocation; + Size = Settings.Default.StarterFormSize; + WindowState = Settings.Default.StarterFormWindowState; + } + + pluginManager.DiscoverAndCheckPlugins(); + UpdateApplicationsList(); + + CheckUpdatesAvailableAsync(); + } + + /// + /// Creates a new StarterForm and passes the arguments in . + /// + /// The arguments that should be processed + public StarterForm(string[] args) + : this() { + arguments = CommandLineArgumentHandling.GetArguments(args); + } + + protected override void SetVisibleCore(bool value) { + value &= !(arguments.OfType().Any() || arguments.OfType().Any()); + if (!value) HandleArguments(); + base.SetVisibleCore(value); + } + + #region Events + private void StarterForm_Load(object sender, EventArgs e) { + HandleArguments(); + } + + private void StarterForm_FormClosing(object sender, FormClosingEventArgs e) { + splashScreen.Close(); + abortRequested = true; + + if (WindowState != FormWindowState.Minimized) + Settings.Default.StarterFormWindowState = WindowState; + if (WindowState != FormWindowState.Normal) { + Settings.Default.StarterFormLocation = RestoreBounds.Location; + Settings.Default.StarterFormSize = RestoreBounds.Size; + } else if (WindowState == FormWindowState.Normal) { + Settings.Default.StarterFormLocation = Location; + Settings.Default.StarterFormSize = Size; + } + + Settings.Default.Save(); + } + + private void applicationsListView_SelectedIndexChanged(object sender, EventArgs e) { + startButton.Enabled = applicationsListView.SelectedItems.Count > 0; + } + + private void applicationsListView_ItemActivate(object sender, EventArgs e) { + if (applicationsListView.SelectedItems.Count > 0) { + ListViewItem selected = applicationsListView.SelectedItems[0]; + if (selected.Text == pluginManagerItemName) { + if (pluginManager.Plugins.Any(x => x.PluginState == PluginState.Loaded)) { + MessageBox.Show("Installation Manager cannot be started while another HeuristicLab application is active." + Environment.NewLine + + "Please stop all active HeuristicLab applications and try again.", "Plugin Manager", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } else { + try { + Cursor = Cursors.AppStarting; + using (InstallationManagerForm form = new InstallationManagerForm(pluginManager)) { + form.ShowDialog(this); + } + UpdateApplicationsList(); + } + finally { + Cursor = Cursors.Arrow; + } + } + } else if (selected.Text == updatePluginsItemName) { + if (pluginManager.Plugins.Any(x => x.PluginState == PluginState.Loaded)) { + MessageBox.Show("Updating is not possible while another HeuristicLab application is active." + Environment.NewLine + + "Please stop all active HeuristicLab applications and try again.", "Update plugins", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } else { + try { + Cursor = Cursors.AppStarting; + using (PluginUpdaterForm form = new PluginUpdaterForm(pluginManager)) { + form.ShowDialog(this); + } + updatesAvailable = false; + CheckUpdatesAvailableAsync(); + UpdateApplicationsList(); + } + finally { + Cursor = Cursors.Arrow; + } + } + } else { + ApplicationDescription app = (ApplicationDescription)applicationsListView.SelectedItems[0].Tag; + StartApplication(app, arguments); + } + } + } + + private void largeIconsButton_Click(object sender, EventArgs e) { + applicationsListView.View = View.LargeIcon; + } + + private void detailsButton_Click(object sender, EventArgs e) { + applicationsListView.View = View.Details; + foreach (ColumnHeader column in applicationsListView.Columns) { + if (applicationsListView.Items.Count > 0) + column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); + else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); + } + } + + private void aboutButton_Click(object sender, EventArgs e) { + List plugins = new List(pluginManager.Plugins.OfType()); + using (var dialog = new AboutDialog(plugins)) { + dialog.ShowDialog(); + } + } + + private void splashScreen_VisibleChanged(object sender, EventArgs e) { + // close hidden starter form + if (!splashScreen.Visible && arguments != null && + (arguments.OfType().Any() || arguments.OfType().Any())) + Close(); + } + #endregion + + #region Helpers + private bool CheckSavedStarterFormSettings() { + var formArea = new Rectangle(Settings.Default.StarterFormLocation, Settings.Default.StarterFormSize); + var screenArea = Screen.FromRectangle(formArea).WorkingArea; + var overlappingArea = Rectangle.Intersect(formArea, screenArea); + bool offLimits = overlappingArea.IsEmpty || overlappingArea.Width * overlappingArea.Height < formArea.Width * formArea.Height * 0.25; + return !formArea.IsEmpty && !offLimits; + } + + private void UpdateApplicationsList() { + if (InvokeRequired) Invoke((Action)UpdateApplicationsList); + else { + applicationsListView.Items.Clear(); + AddPluginManagerItem(); + AddUpdatePluginsItem(); + + foreach (ApplicationDescription info in pluginManager.Applications) { + ListViewItem item = new ListViewItem(info.Name, 0); + item.Tag = info; + item.Group = applicationsListView.Groups["Applications"]; + item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Version.ToString())); + item.SubItems.Add(new ListViewItem.ListViewSubItem(item, info.Description)); + item.ToolTipText = info.Description; + applicationsListView.Items.Add(item); + } + foreach (ColumnHeader column in applicationsListView.Columns) { + if (applicationsListView.Items.Count > 0) + column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); + else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); + } + } + } + + private void AddPluginManagerItem() { + pluginManagerListViewItem = new ListViewItem(pluginManagerItemName, 0); + pluginManagerListViewItem.Group = applicationsListView.Groups["Plugin Management"]; + pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, AssemblyHelpers.GetFileVersion(GetType().Assembly))); + pluginManagerListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(pluginManagerListViewItem, "Install, upgrade or delete plugins")); + pluginManagerListViewItem.ToolTipText = "Install, upgrade or delete plugins"; + + applicationsListView.Items.Add(pluginManagerListViewItem); + } + + private void AddUpdatePluginsItem() { + if (updatesAvailable) { + var updateListViewItem = new ListViewItem(updatePluginsItemName, 1); + updateListViewItem.Group = applicationsListView.Groups["Plugin Management"]; + updateListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(updateListViewItem, "")); + updateListViewItem.SubItems.Add(new ListViewItem.ListViewSubItem(updateListViewItem, "Download and install updates")); + updateListViewItem.ToolTipText = "Download and install updates"; + + applicationsListView.Items.Add(updateListViewItem); + } + } + + private void CheckUpdatesAvailableAsync() { + string pluginPath = Path.GetFullPath(Application.StartupPath); + var task = Task.Factory.StartNew(() => { + var installationManager = new InstallationManager(pluginPath); + IEnumerable installedPlugins = pluginManager.Plugins.OfType(); + var remotePlugins = installationManager.GetRemotePluginList(); + // if there is a local plugin with same name and same major and minor version then it's an update + var pluginsToUpdate = from remotePlugin in remotePlugins + let matchingLocalPlugins = from installedPlugin in installedPlugins + where installedPlugin.Name == remotePlugin.Name + where installedPlugin.Version.Major == remotePlugin.Version.Major + where installedPlugin.Version.Minor == remotePlugin.Version.Minor + where Util.IsNewerThan(remotePlugin, installedPlugin) + select installedPlugin + where matchingLocalPlugins.Count() > 0 + select remotePlugin; + return pluginsToUpdate.Count() > 0; + }); + task.ContinueWith(t => { + try { + t.Wait(); + updatesAvailable = t.Result; + UpdateApplicationsList(); + } + catch (AggregateException ae) { + ae.Handle(ex => { + if (ex is InstallationManagerException) { + // this is expected when no internet connection is available => do nothing + return true; + } else { + return false; + } + }); + } + }); + } + + private void HandleArguments() { + try { + if (arguments.OfType().Any() && !arguments.OfType().Any()) { + InitiateApplicationStart(optimizerItemName); + } + foreach (var argument in arguments) { + if (argument is StartArgument) { + var arg = (StartArgument)argument; + InitiateApplicationStart(arg.Value); + } + } + } + catch (AggregateException ex) { + ErrorHandling.ShowErrorDialog(this, "One or more errors occurred while initializing the application.", ex); + } + } + + private void InitiateApplicationStart(string appName) { + var appDesc = (from desc in pluginManager.Applications + where desc.Name.Equals(appName) + select desc).SingleOrDefault(); + if (appDesc != null) { + StartApplication(appDesc, arguments); + } else { + MessageBox.Show("Cannot start application " + appName + ".", + "HeuristicLab", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + } + } + + private void StartApplication(ApplicationDescription app, ICommandLineArgument[] args) { + splashScreen.Show("Loading " + app.Name); + Thread t = new Thread(delegate() { + bool stopped = false; + do { + try { + if (!abortRequested) { + pluginManager.Run(app, args); + } + stopped = true; + } + catch (Exception ex) { + stopped = false; + ThreadPool.QueueUserWorkItem(delegate(object exception) { ErrorHandling.ShowErrorDialog(this, (Exception)exception); }, ex); + Thread.Sleep(5000); // sleep 5 seconds before autorestart + } + } while (!abortRequested && !stopped && app.AutoRestart); + }); + t.SetApartmentState(ApartmentState.STA); // needed for the AdvancedOptimizationFrontent + t.Start(); + } + #endregion + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/TypeExtensions.cs b/HeuristicLab.PluginInfrastructure.Views/3.3/TypeExtensions.cs new file mode 100644 index 0000000000..3caaf987e0 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/TypeExtensions.cs @@ -0,0 +1,129 @@ +#region License Information + +/* HeuristicLab + * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL) + * + * This file is part of HeuristicLab. + * + * HeuristicLab is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * HeuristicLab is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with HeuristicLab. If not, see . + */ + +#endregion + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace HeuristicLab.PluginInfrastructure { + internal static class TypeExtensions { + internal static bool IsNonDiscoverableType(this Type t) { + return t.GetCustomAttributes(typeof(NonDiscoverableTypeAttribute), false).Any(); + } + + /// + /// Constructs a concrete type from a given proto type. + /// + /// + /// + /// The constructed type, a generic type definition or null, if a type construction is not possible + /// This method does not work with nested generic types + internal static Type BuildType(this Type type, Type protoType) { + if (type == null || protoType == null) throw new ArgumentNullException(); + + if (!type.IsGenericTypeDefinition) return type; + if (protoType.IsGenericTypeDefinition) return type; + if (!protoType.IsGenericType) return type; + + var typeGenericArguments = type.GetGenericArguments(); + var protoTypeGenericArguments = protoType.GetGenericArguments(); + if (typeGenericArguments.Length != protoTypeGenericArguments.Length) return null; + + for (int i = 0; i < typeGenericArguments.Length; i++) { + var typeGenericArgument = typeGenericArguments[i]; + var protoTypeGenericArgument = protoTypeGenericArguments[i]; + + //check class contraint on generic type parameter + if (typeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.ReferenceTypeConstraint)) + if (!protoTypeGenericArgument.IsClass && !protoTypeGenericArgument.IsInterface && !protoType.IsArray) return null; + + //check default constructor constraint on generic type parameter + if (typeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint)) + if (!protoTypeGenericArgument.IsValueType && protoTypeGenericArgument.GetConstructor(Type.EmptyTypes) == null) return null; + + //check type restrictions on generic type parameter + foreach (var constraint in typeGenericArgument.GetGenericParameterConstraints()) + if (!constraint.IsAssignableFrom(protoTypeGenericArgument)) return null; + } + + try { + return type.MakeGenericType(protoTypeGenericArguments); + } + catch (Exception) { + return null; + } + } + + internal static bool IsSubTypeOf(this Type subType, Type baseType) { + if (baseType.IsAssignableFrom(subType)) return true; + if (!baseType.IsGenericType) return false; + + if (RecursiveCheckGenericTypes(baseType, subType)) return true; + IEnumerable implementedInterfaces = subType.GetInterfaces().Where(t => t.IsGenericType); + foreach (var implementedInterface in implementedInterfaces.Where(i => i.IsGenericType)) { + if (baseType.CheckGenericTypes(implementedInterface)) return true; + } + + return false; + } + + private static bool RecursiveCheckGenericTypes(Type baseType, Type subType) { + if (!baseType.IsGenericType) return false; + if (!subType.IsGenericType) return false; + if (baseType.CheckGenericTypes(subType)) return true; + if (subType.BaseType == null) return false; + + return RecursiveCheckGenericTypes(baseType, subType.BaseType); + } + + private static bool CheckGenericTypes(this Type baseType, Type subType) { + var baseTypeGenericTypeDefinition = baseType.GetGenericTypeDefinition(); + var subTypeGenericTypeDefinition = subType.GetGenericTypeDefinition(); + if (baseTypeGenericTypeDefinition != subTypeGenericTypeDefinition) return false; + var baseTypeGenericArguments = baseType.GetGenericArguments(); + var subTypeGenericArguments = subType.GetGenericArguments(); + + for (int i = 0; i < baseTypeGenericArguments.Length; i++) { + var baseTypeGenericArgument = baseTypeGenericArguments[i]; + var subTypeGenericArgument = subTypeGenericArguments[i]; + + if (baseTypeGenericArgument.IsGenericParameter ^ subTypeGenericArgument.IsGenericParameter) return false; + if (baseTypeGenericArgument == subTypeGenericArgument) continue; + if (!baseTypeGenericArgument.IsGenericParameter && !subTypeGenericArgument.IsGenericParameter) return false; + + if (baseTypeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.ReferenceTypeConstraint) && + !subTypeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.ReferenceTypeConstraint)) return false; + if (baseTypeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint) && + !subTypeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.DefaultConstructorConstraint)) return false; + if (baseTypeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.NotNullableValueTypeConstraint) && + !subTypeGenericArgument.GenericParameterAttributes.HasFlag(GenericParameterAttributes.NotNullableValueTypeConstraint)) return false; + + foreach (var baseTypeGenericParameterConstraint in baseTypeGenericArgument.GetGenericParameterConstraints()) { + if (!subTypeGenericArgument.GetGenericParameterConstraints().Any(t => baseTypeGenericParameterConstraint.IsAssignableFrom(t))) return false; + } + } + return true; + } + } +} diff --git a/HeuristicLab.PluginInfrastructure.Views/3.3/app.config b/HeuristicLab.PluginInfrastructure.Views/3.3/app.config new file mode 100644 index 0000000000..8e52aace91 --- /dev/null +++ b/HeuristicLab.PluginInfrastructure.Views/3.3/app.config @@ -0,0 +1,76 @@ + + + + +
+ + + + + + + anonymous + + + GetTheLab! + + + False + + + http://services.heuristiclab.com/Deployment-3.3/UpdateService.svc + + + http://services.heuristiclab.com/Deployment-3.3/AdminService.svc + + + 0, 0 + + + 0, 0 + + + Normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs b/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs index 5dca05a5d8..7c5bcbdecd 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs +++ b/HeuristicLab.PluginInfrastructure/3.3/ErrorHandling/ErrorHandling.cs @@ -20,7 +20,7 @@ #endregion using System; -using System.Windows.Forms; +//using System.Windows.Forms; namespace HeuristicLab.PluginInfrastructure { public static class ErrorHandling { @@ -43,7 +43,7 @@ public static string BuildErrorMessage(Exception exception) { return message; } } - + /* public static void ShowErrorDialog(Exception exception) { ShowErrorDialog(string.Empty, exception); } @@ -65,6 +65,6 @@ public static void ShowErrorDialog(Control owner, string message, Exception exce dialog.ShowDialog(owner); } } - } + }*/ } } diff --git a/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj b/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj index bea208728c..54c6bdfe61 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj +++ b/HeuristicLab.PluginInfrastructure/3.3/HeuristicLab.PluginInfrastructure-3.3.csproj @@ -1,27 +1,11 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {94186A6A-5176-4402-AE83-886557B53CCA} + netstandard2.0 Library - Properties HeuristicLab.PluginInfrastructure - HeuristicLab.PluginInfrastructure-3.3 - - + true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -37,309 +21,39 @@ false false true + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false + + + false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - false - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - - - - - - - - - - - - - - UserControl - - - AvailablePluginsView.cs - - - UserControl - - - BasicUpdateView.cs - - - Form - - - ConfirmationDialog.cs - - - Form - - - ConnectionSetupView.cs - - - Form - - - PluginUpdaterForm.cs - - - - - - - UserControl - - - EditProductsView.cs - - - UserControl - - - InstalledPluginsView.cs - - - Form - - - LicenseConfirmationDialog.cs - - - UserControl - - - UploadPluginsView.cs - - - - UserControl - - - InstallationManagerControl.cs - - - - - Form - - - InstallationManagerForm.cs - - - Code - - - Code - - - - Form - - - LicenseView.cs - - - Component - - - MultiSelectListView.cs - - - Form - - - PluginView.cs - - - - - - - - - - - - - - - - - - - - Form - - - ErrorDialog.cs - - - - - Form - - - FrameworkVersionErrorDialog.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - PublicSettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - True - True - Resources.resx - - - - Form - - - AboutDialog.cs - - - Form - - - SplashScreen.cs - - - Form - - - StarterForm.cs - - - - - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - - - - - - - - - - @@ -361,26 +75,4 @@ true - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.PluginInfrastructure/3.3/Manager/ApplicationDescription.cs b/HeuristicLab.PluginInfrastructure/3.3/Manager/ApplicationDescription.cs index c1cf3c0007..fd7fce7a89 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/Manager/ApplicationDescription.cs +++ b/HeuristicLab.PluginInfrastructure/3.3/Manager/ApplicationDescription.cs @@ -20,7 +20,9 @@ #endregion using System; +using System.Runtime.CompilerServices; +[assembly: InternalsVisibleTo("HeuristicLab.PluginInfrastructure.Extension-3.3, PublicKey=0024000004800000940000000602000000240000525341310004000001000100e3d38bc66a0dd8dd36f57285e34632ec04b3049866ab1e64cf230e95ffcbfbb90c437b4d11dfe74ba981f746274290bb03f3e636e139e685b501031dc6e0bc8409153f0c842721eb9e8e2a703c9e4d102283f3ddbdfab4078c08de51869715992a694d2f608d0fa865c9d17c06b8d6a9135004e982fd862cdb2277e4ad15a4a6")] namespace HeuristicLab.PluginInfrastructure.Manager { /// /// Class that provides information about an application. diff --git a/HeuristicLab.PluginInfrastructure/3.3/app.config b/HeuristicLab.PluginInfrastructure/3.3/app.config index 4de486498e..238db615ed 100644 --- a/HeuristicLab.PluginInfrastructure/3.3/app.config +++ b/HeuristicLab.PluginInfrastructure/3.3/app.config @@ -42,45 +42,35 @@ - - + + - + - - + + - + - + - + - + - + - + diff --git a/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj b/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj index 4465b11936..8f136b1cde 100644 --- a/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj +++ b/HeuristicLab.Problems.BinPacking.Views/3.3/HeuristicLab.Problems.BinPacking.Views-3.3.csproj @@ -70,12 +70,34 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -105,6 +127,7 @@ + @@ -157,6 +180,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.BinPacking.Views/3.3/packages.config b/HeuristicLab.Problems.BinPacking.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.BinPacking.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj b/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj index dd555bc427..f312771dde 100644 --- a/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj +++ b/HeuristicLab.Problems.BinPacking/3.3/HeuristicLab.Problems.BinPacking-3.3.csproj @@ -1,68 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {F8A55094-3CD5-4034-B0CA-5BD7FFB016D4} + netstandard2.0 Library - Properties HeuristicLab.Problems.BinPacking - HeuristicLab.Problems.BinPacking-3.3 - v4.7.2 - 512 - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - - + false ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - false - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt + + false true @@ -71,195 +16,28 @@ HeuristicLab.snk - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - Code - - - Code - - - - - - - - - - - False - ..\..\bin\HEAL.Attic.dll - False - + - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {ddfb14dd-2a85-493c-a52d-e69729bbaeb0} - HeuristicLab.Encodings.IntegerVectorEncoding-3.3 - False - - - {dbecb8b0-b166-4133-baf1-ed67c3fd7fca} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - + + + + + + + + + + + + + + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Binary/3.3/HeuristicLab.Problems.Binary-3.3.csproj b/HeuristicLab.Problems.Binary/3.3/HeuristicLab.Problems.Binary-3.3.csproj index 96de11261c..c3b8dba70a 100644 --- a/HeuristicLab.Problems.Binary/3.3/HeuristicLab.Problems.Binary-3.3.csproj +++ b/HeuristicLab.Problems.Binary/3.3/HeuristicLab.Problems.Binary-3.3.csproj @@ -1,33 +1,13 @@ - - - + - Debug - AnyCPU - {FC627BE5-0F93-47D8-BD2E-530EA2B8AA5F} + netstandard2.0 Library - Properties HeuristicLab.Problems.Binary - HeuristicLab.Problems.Binary-3.3 - v4.7.2 - 512 - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 + + false true @@ -35,157 +15,23 @@ HeuristicLab.snk - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {66d249c3-a01d-42a8-82a2-919bc8ec3d83} - HeuristicLab.Encodings.BinaryVectorEncoding-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {25087811-f74c-4128-bc86-8324271da13e} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views-3.4.csproj index deab438a03..83caeeb333 100644 --- a/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,18 +89,39 @@ pdbonly x86 prompt - AllRules.ruleset false False + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -157,6 +173,7 @@ SymbolicClassificationModelMathView.cs + @@ -237,6 +254,10 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -285,13 +306,6 @@ true - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj index d57dec8c09..f62016f7d1 100644 --- a/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,15 +89,36 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -153,6 +169,7 @@ VariableTrackbar.cs + @@ -238,6 +255,10 @@ HeuristicLab.Persistence-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -291,13 +312,6 @@ true - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/Plugin.cs.frame b/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/Plugin.cs.frame index b221839a1f..d60a224dbb 100644 --- a/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/Plugin.cs.frame +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/Plugin.cs.frame @@ -35,6 +35,7 @@ namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression { [PluginDependency("HeuristicLab.Data", "3.3")] [PluginDependency("HeuristicLab.Encodings.RealVectorEncoding", "3.3")] [PluginDependency("HeuristicLab.Encodings.SymbolicExpressionTreeEncoding", "3.4")] + [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter", "0.2")] [PluginDependency("HeuristicLab.Operators", "3.3")] [PluginDependency("HeuristicLab.Optimization", "3.3")] [PluginDependency("HeuristicLab.Parameters", "3.3")] diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4.csproj index 4bfb8537ee..f2a6374abe 100644 --- a/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,15 +89,36 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -129,6 +145,7 @@ SymbolicTimeSeriesPrognosisSolutionView.cs + @@ -201,6 +218,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/packages.config b/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj index af397ddbb8..117a3f8896 100644 --- a/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {07486E68-1517-4B9D-A58D-A38E99AE71AB} + netstandard2.0 Library - Properties HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis - HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,115 +20,19 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - False - ..\..\bin\ALGLIB-3.17.0.dll - False - - - ..\..\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.dll - False - - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - Code - - - - - - - - - - - - @@ -163,106 +52,29 @@ - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {06D4A186-9319-48A0-BADE-A2058D462EEA} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00} - HeuristicLab.Problems.DataAnalysis.Symbolic-3.4 - False - - - {DF87C13E-A889-46FF-8153-66DCAA8C5674} - HeuristicLab.Problems.DataAnalysis-3.4 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - + + + + + + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False + + + + + + ..\..\bin\ALGLIB-3.17.0.dll - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj index 91e336b6ee..4f97252770 100644 --- a/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -106,11 +100,33 @@ False + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -212,6 +228,7 @@ SymbolicExpressionTreeNodeInsertDialog.cs + @@ -284,6 +301,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/packages.config b/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj index 035824419f..ba6b4717b1 100644 --- a/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {3D28463F-EC96-4D82-AFEE-38BE91A0CA00} + netstandard2.0 Library - Properties HeuristicLab.Problems.DataAnalysis.Symbolic - HeuristicLab.Problems.DataAnalysis.Symbolic-3.4 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,301 +20,19 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - 7.3 - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - 7.3 - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - 7.3 - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - 7.3 - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - 7.3 - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - 7.3 + + false - - False - ..\..\bin\ALGLIB-3.17.0.dll - False - - - ..\..\bin\AutoDiff-1.0.dll - False - - - False - ..\..\bin\HEAL.Attic.dll - - - False - ..\..\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter-0.2.dll - False - - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -349,111 +52,37 @@ - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {06D4A186-9319-48A0-BADE-A2058D462EEA} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {DF87C13E-A889-46FF-8153-66DCAA8C5674} - HeuristicLab.Problems.DataAnalysis-3.4 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} - HeuristicLab.Selection-3.3 - + + + + + + + + + + + + + + + + + + + + + + + + + ..\..\bin\ALGLIB-3.17.0.dll + + + ..\..\bin\AutoDiff-1.0.dll + + + ..\..\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.NativeInterpreter-0.2.dll + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4.csproj index 99243fc809..5d1a4907dd 100644 --- a/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/HeuristicLab.Problems.DataAnalysis.Trading.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,15 +89,36 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -123,6 +139,7 @@ + @@ -190,6 +207,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186a6a-5176-4402-ae83-886557b53cca} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/packages.config b/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.DataAnalysis.Trading.Views/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj index 2de3500df7..2cf2cc5875 100644 --- a/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Trading/3.4/HeuristicLab.Problems.DataAnalysis.Trading-3.4.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {E4EE5AFB-D552-447B-8A16-6CBE7938AF32} + netstandard2.0 Library - Properties HeuristicLab.Problems.DataAnalysis.Trading - HeuristicLab.Problems.DataAnalysis.Trading-3.4 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,104 +20,16 @@ false false true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true + false ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -152,105 +49,22 @@ - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {06d4a186-9319-48a0-bade-a2058d462eea} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3d28463f-ec96-4d82-afee-38be91a0ca00} - HeuristicLab.Problems.DataAnalysis.Symbolic-3.4 - False - - - {df87c13e-a889-46ff-8153-66dcaa8c5674} - HeuristicLab.Problems.DataAnalysis-3.4 - False - - - {94C7714E-29D4-4D6D-B213-2C18D627AB75} - HeuristicLab.Problems.Instances.DataAnalysis-3.3 - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + + + + - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/AbstractFeatureCorrelationCalculator.cs b/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/AbstractFeatureCorrelationCalculator.cs index 1424a08ec9..4048786477 100644 --- a/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/AbstractFeatureCorrelationCalculator.cs +++ b/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/AbstractFeatureCorrelationCalculator.cs @@ -76,7 +76,7 @@ private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerComplet BackgroundWorker worker = (BackgroundWorker)sender; if (!e.Cancelled && !worker.CancellationPending) { if (e.Error != null) { - ErrorHandling.ShowErrorDialog(e.Error); + ErrorHandlingUI.ShowErrorDialog(e.Error); } else { OnCorrelationCalculationFinished((double[,])e.Result, bwInfo.Calculator, bwInfo.Partition, bwInfo.IgnoreMissingValues, bwInfo.Variable); } diff --git a/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj b/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj index 2e93de85ae..4f2bebcc7f 100644 --- a/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -103,15 +97,33 @@ ..\..\bin\ALGLIB-3.17.0.dll False - - False - ..\..\bin\HEAL.Attic.dll + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -500,6 +512,7 @@ TimeSeriesPrognosisSolutionErrorCharacteristicsCurveView.cs + @@ -585,6 +598,10 @@ HeuristicLab.Parameters.Views-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs b/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs index 64285db856..aa2ad768af 100644 --- a/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs +++ b/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs @@ -302,9 +302,9 @@ private IRegressionSolution CreateLinearSolution() { solution.Name = "Baseline (linear)"; return solution; } catch (NotSupportedException e) { - ErrorHandling.ShowErrorDialog("Could not create a linear regression solution.", e); + ErrorHandlingUI.ShowErrorDialog("Could not create a linear regression solution.", e); } catch (ArgumentException e) { - ErrorHandling.ShowErrorDialog("Could not create a linear regression solution.", e); + ErrorHandlingUI.ShowErrorDialog("Could not create a linear regression solution.", e); } return null; } diff --git a/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.cs b/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.cs index c9a4cb1e93..c7b2b73ee9 100644 --- a/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.cs +++ b/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/DataAnalysisSolutionView.cs @@ -146,9 +146,9 @@ protected virtual void loadProblemDataButton_Click(object sender, EventArgs e) { solution.Name += " with loaded problemData"; MainFormManager.MainForm.ShowContent(solution); } catch (InvalidOperationException invalidOperationException) { - ErrorHandling.ShowErrorDialog(this, invalidOperationException); + ErrorHandlingUI.ShowErrorDialog(this, invalidOperationException); } catch (ArgumentException argumentException) { - ErrorHandling.ShowErrorDialog(this, argumentException); + ErrorHandlingUI.ShowErrorDialog(this, argumentException); } } @@ -234,9 +234,9 @@ protected override void itemsListView_DragDrop(object sender, DragEventArgs e) { Content.Filename = string.Empty; MainFormManager.GetMainForm().UpdateTitle(); } catch (InvalidOperationException invalidOperationException) { - ErrorHandling.ShowErrorDialog(this, invalidOperationException); + ErrorHandlingUI.ShowErrorDialog(this, invalidOperationException); } catch (ArgumentException argumentException) { - ErrorHandling.ShowErrorDialog(this, argumentException); + ErrorHandlingUI.ShowErrorDialog(this, argumentException); } } #endregion diff --git a/HeuristicLab.Problems.DataAnalysis.Views/3.4/packages.config b/HeuristicLab.Problems.DataAnalysis.Views/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.DataAnalysis.Views/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj b/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj index c7f3312709..9eb856edf5 100644 --- a/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj +++ b/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {DF87C13E-A889-46FF-8153-66DCAA8C5674} + netstandard2.0 Library - Properties HeuristicLab.Problems.DataAnalysis - HeuristicLab.Problems.DataAnalysis-3.4 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,234 +20,19 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true + false $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - False - ..\..\bin\ALGLIB-3.17.0.dll - False - - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - Code - - - Code - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -282,89 +52,25 @@ - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - + + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False + + + + + + ..\..\bin\ALGLIB-3.17.0.dll - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.ExternalEvaluation.GP/3.5/HeuristicLab.Problems.ExternalEvaluation.GP-3.5.csproj b/HeuristicLab.Problems.ExternalEvaluation.GP/3.5/HeuristicLab.Problems.ExternalEvaluation.GP-3.5.csproj index 2045128de2..8d90bb5846 100644 --- a/HeuristicLab.Problems.ExternalEvaluation.GP/3.5/HeuristicLab.Problems.ExternalEvaluation.GP-3.5.csproj +++ b/HeuristicLab.Problems.ExternalEvaluation.GP/3.5/HeuristicLab.Problems.ExternalEvaluation.GP-3.5.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -96,7 +91,6 @@ prompt - AllRules.ruleset false diff --git a/HeuristicLab.Problems.ExternalEvaluation.Matlab/3.3/HeuristicLab.Problems.ExternalEvaluation.Matlab-3.3.csproj b/HeuristicLab.Problems.ExternalEvaluation.Matlab/3.3/HeuristicLab.Problems.ExternalEvaluation.Matlab-3.3.csproj index 1a0b08f981..ef125eb89e 100644 --- a/HeuristicLab.Problems.ExternalEvaluation.Matlab/3.3/HeuristicLab.Problems.ExternalEvaluation.Matlab-3.3.csproj +++ b/HeuristicLab.Problems.ExternalEvaluation.Matlab/3.3/HeuristicLab.Problems.ExternalEvaluation.Matlab-3.3.csproj @@ -45,7 +45,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset false @@ -55,7 +54,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -65,7 +63,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -75,17 +72,38 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + ..\..\bin\Interop.MLApp.dll True + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -101,6 +119,7 @@ + @@ -161,13 +180,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - diff --git a/HeuristicLab.Problems.ExternalEvaluation.Matlab/3.3/packages.config b/HeuristicLab.Problems.ExternalEvaluation.Matlab/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.ExternalEvaluation.Matlab/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.ExternalEvaluation.Scilab/3.3/HeuristicLab.Problems.ExternalEvaluation.Scilab-3.3.csproj b/HeuristicLab.Problems.ExternalEvaluation.Scilab/3.3/HeuristicLab.Problems.ExternalEvaluation.Scilab-3.3.csproj index a9d3f94889..a2bdd09b98 100644 --- a/HeuristicLab.Problems.ExternalEvaluation.Scilab/3.3/HeuristicLab.Problems.ExternalEvaluation.Scilab-3.3.csproj +++ b/HeuristicLab.Problems.ExternalEvaluation.Scilab/3.3/HeuristicLab.Problems.ExternalEvaluation.Scilab-3.3.csproj @@ -45,7 +45,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset false @@ -55,7 +54,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -65,7 +63,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -75,7 +72,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false @@ -84,14 +80,36 @@ ..\..\bin\DotNetScilab-1.0.dll False + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + False ..\..\bin\HeuristicLab.DotNetScilab-1.0.dll False + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -107,6 +125,7 @@ + @@ -167,13 +186,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - diff --git a/HeuristicLab.Problems.ExternalEvaluation.Scilab/3.3/packages.config b/HeuristicLab.Problems.ExternalEvaluation.Scilab/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.ExternalEvaluation.Scilab/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/EvaluationTCPChannelView.cs b/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/EvaluationTCPChannelView.cs index 6558d2e1cd..6c168ba914 100644 --- a/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/EvaluationTCPChannelView.cs +++ b/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/EvaluationTCPChannelView.cs @@ -113,7 +113,7 @@ private void connectButton_Click(object sender, EventArgs e) { Content.Open(); } catch (Exception ex) { - PluginInfrastructure.ErrorHandling.ShowErrorDialog(ex); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog(ex); } } private void disconnectButton_Click(object sender, EventArgs e) { @@ -121,7 +121,7 @@ private void disconnectButton_Click(object sender, EventArgs e) { Content.Close(); } catch (Exception ex) { - PluginInfrastructure.ErrorHandling.ShowErrorDialog(ex); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog(ex); } } #endregion diff --git a/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/HeuristicLab.Problems.ExternalEvaluation.Views-3.4.csproj b/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/HeuristicLab.Problems.ExternalEvaluation.Views-3.4.csproj index fd19f9bbd0..b97b74769a 100644 --- a/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/HeuristicLab.Problems.ExternalEvaluation.Views-3.4.csproj +++ b/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/HeuristicLab.Problems.ExternalEvaluation.Views-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -96,7 +91,6 @@ prompt - AllRules.ruleset false @@ -105,6 +99,9 @@ 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + 3.5 @@ -116,6 +113,7 @@ + UserControl @@ -202,6 +200,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186a6a-5176-4402-ae83-886557b53cca} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/packages.config b/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/packages.config new file mode 100644 index 0000000000..42e3ab5aa9 --- /dev/null +++ b/HeuristicLab.Problems.ExternalEvaluation.Views/3.4/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.ExternalEvaluation/3.4/HeuristicLab.Problems.ExternalEvaluation-3.4.csproj b/HeuristicLab.Problems.ExternalEvaluation/3.4/HeuristicLab.Problems.ExternalEvaluation-3.4.csproj index 622965e06c..bab86cd979 100644 --- a/HeuristicLab.Problems.ExternalEvaluation/3.4/HeuristicLab.Problems.ExternalEvaluation-3.4.csproj +++ b/HeuristicLab.Problems.ExternalEvaluation/3.4/HeuristicLab.Problems.ExternalEvaluation-3.4.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x86 prompt - AllRules.ruleset false @@ -76,7 +73,6 @@ prompt - AllRules.ruleset false @@ -86,7 +82,6 @@ full x64 prompt - AllRules.ruleset false @@ -96,7 +91,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -104,11 +98,30 @@ ..\..\bin\Google.ProtocolBuffers-2.4.1.473.dll False + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -120,6 +133,7 @@ + @@ -239,6 +253,10 @@ HeuristicLab.Parameters-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186a6a-5176-4402-ae83-886557b53cca} HeuristicLab.PluginInfrastructure-3.3 @@ -250,13 +268,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.GrammaticalEvolution/3.4/HeuristicLab.Problems.GrammaticalEvolution-3.4.csproj b/HeuristicLab.Problems.GrammaticalEvolution/3.4/HeuristicLab.Problems.GrammaticalEvolution-3.4.csproj index 73103907e3..ed5544a22e 100644 --- a/HeuristicLab.Problems.GrammaticalEvolution/3.4/HeuristicLab.Problems.GrammaticalEvolution-3.4.csproj +++ b/HeuristicLab.Problems.GrammaticalEvolution/3.4/HeuristicLab.Problems.GrammaticalEvolution-3.4.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {9372D115-D933-40D2-BD29-A2C1EAC35874} + netstandard2.0 Library - Properties HeuristicLab.Problems.GrammaticalEvolution - HeuristicLab.Problems.GrammaticalEvolution-3.4 - v4.7.2 - - - 512 True HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -39,104 +24,20 @@ False File OnBuildSuccess - False True - False obj\$(Configuration)\ False C:\Users\Sabine\AppData\Roaming\ICSharpCode/SharpDevelop4\Settings.SourceAnalysis - - - true - Full - False - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - prompt - AllRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - prompt - AllRules.ruleset - false - - - true + false ..\..\bin\ - DEBUG;TRACE - full - prompt - AllRules.ruleset - false - - ..\..\bin\ - TRACE - true - pdbonly - prompt - AllRules.ruleset - false + + false - - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -156,129 +57,27 @@ - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {0e27a536-1c4a-4624-a65e-dc4f4f23e3e1} - HeuristicLab.Common.Resources-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {ddfb14dd-2a85-493c-a52d-e69729bbaeb0} - HeuristicLab.Encodings.IntegerVectorEncoding-3.3 - False - - - {06d4a186-9319-48a0-bade-a2058d462eea} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {5ac82412-911b-4fa2-a013-edc5e3f3fcc2} - HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4 - False - - - {3d28463f-ec96-4d82-afee-38be91a0ca00} - HeuristicLab.Problems.DataAnalysis.Symbolic-3.4 - False - - - {df87c13e-a889-46ff-8153-66dcaa8c5674} - HeuristicLab.Problems.DataAnalysis-3.4 - False - - - {02cddbf5-42a7-4c40-ae6c-e5d29ac9ccec} - HeuristicLab.Problems.GeneticProgramming-3.3 - - - {3540e29e-4793-49e7-8ee2-fea7f61c3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + + + + + + + + + - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.GraphColoring/3.3/HeuristicLab.Problems.GraphColoring-3.3.csproj b/HeuristicLab.Problems.GraphColoring/3.3/HeuristicLab.Problems.GraphColoring-3.3.csproj index 6adc2927d5..8928981cba 100644 --- a/HeuristicLab.Problems.GraphColoring/3.3/HeuristicLab.Problems.GraphColoring-3.3.csproj +++ b/HeuristicLab.Problems.GraphColoring/3.3/HeuristicLab.Problems.GraphColoring-3.3.csproj @@ -1,34 +1,13 @@ - - - + - Debug - AnyCPU - {4B76E2CB-A990-4959-B080-1D81D418D325} + netstandard2.0 Library - Properties HeuristicLab.Problems.GraphColoring - HeuristicLab.Problems.GraphColoring-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 + + false true @@ -36,163 +15,25 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {0e27a536-1c4a-4624-a65e-dc4f4f23e3e1} - HeuristicLab.Common.Resources-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {be698769-975a-429e-828c-72bb2b6182c8} - HeuristicLab.Encodings.LinearLinkageEncoding-3.4 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {25087811-f74c-4128-bc86-8324271da13e} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540e29e-4793-49e7-8ee2-fea7f61c3994} - HeuristicLab.Problems.Instances-3.3 - False - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj b/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj index 4afb381190..a7c814c7b4 100644 --- a/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj +++ b/HeuristicLab.Problems.Instances.CordeauGQAP/3.3/HeuristicLab.Problems.Instances.CordeauGQAP-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {1F2718DA-BF13-40EE-A7FD-EEDB4912E64E} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.CordeauGQAP - HeuristicLab.Problems.Instances.CordeauGQAP-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,133 +16,53 @@ HeuristicLab.snk - true ..\..\bin\ - DEBUG;TRACE - full - x86 ..\..\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x86 ..\..\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - true ..\..\bin\ - DEBUG;TRACE - full - x64 ..\..\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x64 ..\..\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false - - - - - - - - - - - - - - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - + + + - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.DIMACS/3.3/HeuristicLab.Problems.Instances.DIMACS-3.3.csproj b/HeuristicLab.Problems.Instances.DIMACS/3.3/HeuristicLab.Problems.Instances.DIMACS-3.3.csproj index cd9df0e35c..5430e5de89 100644 --- a/HeuristicLab.Problems.Instances.DIMACS/3.3/HeuristicLab.Problems.Instances.DIMACS-3.3.csproj +++ b/HeuristicLab.Problems.Instances.DIMACS/3.3/HeuristicLab.Problems.Instances.DIMACS-3.3.csproj @@ -1,139 +1,29 @@ - - - - - Debug - AnyCPU - {9943FF23-8619-459C-B84A-E7FBDCBA04E6} - Library - Properties - HeuristicLab.Problems.Instances.DIMACS - HeuristicLab.Problems.Instances.DIMACS-3.3 - v4.7.2 - 512 - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - - - true - - - HeuristicLab.snk - - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540e29e-4793-49e7-8ee2-fea7f61c3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - + + + net6.0 + Library + HeuristicLab.Problems.Instances.DIMACS + false + ..\..\bin\ + + + false + + + true + + + HeuristicLab.snk + + + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj b/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj index 78e059b65c..ad1e45ab52 100644 --- a/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj +++ b/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj @@ -76,13 +76,35 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -148,6 +170,7 @@ RegressionInstanceProviderView.cs + @@ -189,6 +212,10 @@ {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2} HeuristicLab.Optimization.Views-3.3 + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/packages.config b/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj b/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj index f9c52da3fc..ff6d9232f3 100644 --- a/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj +++ b/HeuristicLab.Problems.Instances.DataAnalysis/3.3/HeuristicLab.Problems.Instances.DataAnalysis-3.3.csproj @@ -1,39 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {94C7714E-29D4-4D6D-B213-2C18D627AB75} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.DataAnalysis - HeuristicLab.Problems.Instances.DataAnalysis-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - 7.3 - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false - 7.3 + + false true @@ -42,72 +16,40 @@ HeuristicLab.snk - true ..\..\bin\ - DEBUG;TRACE - full - x86 ..\..\bin\HeuristicLab.Problems.Instances.DataAnalysis-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - 7.3 ..\..\bin\ - TRACE - true - pdbonly - x86 ..\..\bin\HeuristicLab.Problems.Instances.DataAnalysis-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false - 7.3 - true ..\..\bin\ - DEBUG;TRACE - full - x64 ..\..\bin\HeuristicLab.Problems.Instances.DataAnalysis-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - 7.3 ..\..\bin\ - TRACE - true - pdbonly - x64 ..\..\bin\HeuristicLab.Problems.Instances.DataAnalysis-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false - 7.3 @@ -115,360 +57,28 @@ ..\..\bin\ALGLIB-3.17.0.dll False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {DF87C13E-A889-46FF-8153-66DCAA8C5674} - HeuristicLab.Problems.DataAnalysis-3.4 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj b/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj index 554db0f8dc..464d7dbcc5 100644 --- a/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj +++ b/HeuristicLab.Problems.Instances.ElloumiCTAP/3.3/HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.csproj @@ -1,37 +1,15 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {CCF61DA0-B226-4C0F-8052-29ACC6BDE6EE} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.ElloumiCTAP - HeuristicLab.Problems.Instances.ElloumiCTAP-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false + ..\..\bin\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.dll.CodeAnalysisLog.xml + true - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -39,136 +17,15 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - ..\..\bin\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - ..\..\bin\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - ..\..\bin\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - ..\..\bin\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - - - - - - - - - - - - + + + - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.Orienteering/3.3/HeuristicLab.Problems.Instances.Orienteering-3.3.csproj b/HeuristicLab.Problems.Instances.Orienteering/3.3/HeuristicLab.Problems.Instances.Orienteering-3.3.csproj index e2bea07d11..fdd11a4da5 100644 --- a/HeuristicLab.Problems.Instances.Orienteering/3.3/HeuristicLab.Problems.Instances.Orienteering-3.3.csproj +++ b/HeuristicLab.Problems.Instances.Orienteering/3.3/HeuristicLab.Problems.Instances.Orienteering-3.3.csproj @@ -1,36 +1,13 @@ - - - + - Debug - AnyCPU - {B37BF2DD-752C-456A-9DEF-FF5B41FC3C77} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.Orienteering - HeuristicLab.Problems.Instances.Orienteering-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -38,97 +15,14 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - false - - - - - - - - - - - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - + + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.QAPLIB/3.3/HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj b/HeuristicLab.Problems.Instances.QAPLIB/3.3/HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj index 7a5f3d7302..3f12ef4462 100644 --- a/HeuristicLab.Problems.Instances.QAPLIB/3.3/HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj +++ b/HeuristicLab.Problems.Instances.QAPLIB/3.3/HeuristicLab.Problems.Instances.QAPLIB-3.3.csproj @@ -1,37 +1,15 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {73F29D43-5714-4069-8FAB-0D18FEB5F175} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.QAPLIB - HeuristicLab.Problems.Instances.QAPLIB-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false + ..\..\bin\HeuristicLab.Problems.Instances.QAPLIB-3.3.dll.CodeAnalysisLog.xml + true - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -39,88 +17,9 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - ..\..\bin\HeuristicLab.Problems.Instances.QAPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - ..\..\bin\HeuristicLab.Problems.Instances.QAPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - ..\..\bin\HeuristicLab.Problems.Instances.QAPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - ..\..\bin\HeuristicLab.Problems.Instances.QAPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - - - - - - - - - - @@ -129,55 +28,10 @@ - - - - - + + + - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.Scheduling/3.3/HeuristicLab.Problems.Instances.Scheduling-3.3.csproj b/HeuristicLab.Problems.Instances.Scheduling/3.3/HeuristicLab.Problems.Instances.Scheduling-3.3.csproj index fa70b10c4b..3c2962b68e 100644 --- a/HeuristicLab.Problems.Instances.Scheduling/3.3/HeuristicLab.Problems.Instances.Scheduling-3.3.csproj +++ b/HeuristicLab.Problems.Instances.Scheduling/3.3/HeuristicLab.Problems.Instances.Scheduling-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {9D792B6D-836B-46DC-9D69-50B4B1E7B87F} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.Scheduling - HeuristicLab.Problems.Instances.Scheduling-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,134 +16,50 @@ HeuristicLab.snk - true ..\..\bin\ - DEBUG;TRACE - full - x86 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x86 bin\Release\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - true ..\..\bin\ - DEBUG;TRACE - full - x64 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x64 bin\Release\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false - - ..\bin\HeuristicLab.PluginInfrastructure-3.3.dll - False - - - - - - - - - - - - - - - + + - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - - \ No newline at end of file + diff --git a/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/HeuristicLab.Problems.Instances.TSPLIB.Views-3.3.csproj b/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/HeuristicLab.Problems.Instances.TSPLIB.Views-3.3.csproj index ebba89e99b..62d0c96cdb 100644 --- a/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/HeuristicLab.Problems.Instances.TSPLIB.Views-3.3.csproj +++ b/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/HeuristicLab.Problems.Instances.TSPLIB.Views-3.3.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -83,7 +81,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -100,7 +97,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -108,9 +104,31 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -136,6 +154,7 @@ + @@ -165,6 +184,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/packages.config b/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Instances.TSPLIB.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj b/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj index a5bf88aea2..ff450afcc1 100644 --- a/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj +++ b/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj @@ -1,37 +1,15 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.TSPLIB - HeuristicLab.Problems.Instances.TSPLIB-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false + ..\..\bin\HeuristicLab.Problems.Instances.TSPLIB-3.3.dll.CodeAnalysisLog.xml + true - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -39,147 +17,19 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - ..\..\bin\HeuristicLab.Problems.Instances.TSPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - ..\..\bin\HeuristicLab.Problems.Instances.TSPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - ..\..\bin\HeuristicLab.Problems.Instances.TSPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - ..\..\bin\HeuristicLab.Problems.Instances.TSPLIB-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - - - - - - - - - - - - - - - - - - - + + + - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/HeuristicLab.Problems.Instances.VehicleRouting.Views-3.4.csproj b/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/HeuristicLab.Problems.Instances.VehicleRouting.Views-3.4.csproj index 76f70d92e3..d0e524652b 100644 --- a/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/HeuristicLab.Problems.Instances.VehicleRouting.Views-3.4.csproj +++ b/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/HeuristicLab.Problems.Instances.VehicleRouting.Views-3.4.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -83,7 +81,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -100,7 +97,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -108,9 +104,31 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -136,6 +154,7 @@ + @@ -165,6 +184,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/VRPInstanceProviderView.cs b/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/VRPInstanceProviderView.cs index 73c344cca1..213137f1ce 100644 --- a/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/VRPInstanceProviderView.cs +++ b/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/VRPInstanceProviderView.cs @@ -59,7 +59,7 @@ protected override void exportButton_Click(object sender, EventArgs e) { try { provider.Export(GenericExporter.Export(), saveFileDialog.FileName); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/packages.config b/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Instances.VehicleRouting.Views/3.4/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.VehicleRouting/3.4/HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj b/HeuristicLab.Problems.Instances.VehicleRouting/3.4/HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj index 4aec182276..d576032acb 100644 --- a/HeuristicLab.Problems.Instances.VehicleRouting/3.4/HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj +++ b/HeuristicLab.Problems.Instances.VehicleRouting/3.4/HeuristicLab.Problems.Instances.VehicleRouting-3.4.csproj @@ -1,37 +1,15 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {8C265E11-4F8D-4CED-9E6B-F400A0075C18} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances.VehicleRouting - HeuristicLab.Problems.Instances.VehicleRouting-3.4 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false + ..\..\bin\HeuristicLab.Problems.Instances.VehicleRouting-3.4.dll.CodeAnalysisLog.xml + true - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -39,107 +17,9 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - ..\..\bin\HeuristicLab.Problems.Instances.VehicleRouting-3.4.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - ..\..\bin\HeuristicLab.Problems.Instances.VehicleRouting-3.4.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - ..\..\bin\HeuristicLab.Problems.Instances.VehicleRouting-3.4.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - ..\..\bin\HeuristicLab.Problems.Instances.VehicleRouting-3.4.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - false - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -158,60 +38,11 @@ - - - - - + + + + - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {CE0F99D6-1C56-48A9-9B68-3E5B833703EF} - HeuristicLab.Problems.Instances.TSPLIB-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances.Views/3.3/HeuristicLab.Problems.Instances.Views-3.3.csproj b/HeuristicLab.Problems.Instances.Views/3.3/HeuristicLab.Problems.Instances.Views-3.3.csproj index e0c7293154..3a6be3b9d1 100644 --- a/HeuristicLab.Problems.Instances.Views/3.3/HeuristicLab.Problems.Instances.Views-3.3.csproj +++ b/HeuristicLab.Problems.Instances.Views/3.3/HeuristicLab.Problems.Instances.Views-3.3.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false @@ -83,7 +81,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -100,7 +97,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -108,9 +104,31 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -136,6 +154,7 @@ + @@ -180,6 +199,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs b/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs index a82a05d31f..f6f92e86bb 100644 --- a/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs +++ b/HeuristicLab.Problems.Instances.Views/3.3/ProblemInstanceProviderViewGeneric.cs @@ -129,14 +129,14 @@ protected virtual void instancesComboBox_SelectionChangeCommitted(object sender, try { data = Content.LoadData(descriptor); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(String.Format("Could not load the problem instance {0}", descriptor.Name), ex); + ErrorHandlingUI.ShowErrorDialog(String.Format("Could not load the problem instance {0}", descriptor.Name), ex); Progress.Hide(content); return; } try { GenericConsumer.Load(data); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(String.Format("This problem does not support loading the instance {0}", descriptor.Name), ex); + ErrorHandlingUI.ShowErrorDialog(String.Format("This problem does not support loading the instance {0}", descriptor.Name), ex); } finally { Progress.Hide(content); } @@ -172,7 +172,7 @@ protected virtual void exportButton_Click(object sender, EventArgs e) { try { Content.ExportData(GenericExporter.Export(), saveFileDialog.FileName); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Problems.Instances.Views/3.3/packages.config b/HeuristicLab.Problems.Instances.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Instances.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj b/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj index 097c6d8002..b708896af4 100644 --- a/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj +++ b/HeuristicLab.Problems.Instances/3.3/HeuristicLab.Problems.Instances-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} + netstandard2.0 Library - Properties HeuristicLab.Problems.Instances - HeuristicLab.Problems.Instances-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,150 +16,53 @@ HeuristicLab.snk - true ..\..\bin\ - DEBUG;TRACE - full - x64 ..\..\bin\HeuristicLab.Problems.Instances-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false ..\..\bin\ - TRACE - true - pdbonly - x64 ..\..\bin\HeuristicLab.Problems.Instances-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false false - false - true ..\..\bin\ - DEBUG;TRACE - full - x86 ..\..\bin\HeuristicLab.Problems.Instances-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false ..\..\bin\ - TRACE - true - pdbonly - x86 ..\..\bin\HeuristicLab.Problems.Instances-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Knapsack.Views/3.3/HeuristicLab.Problems.Knapsack.Views-3.3.csproj b/HeuristicLab.Problems.Knapsack.Views/3.3/HeuristicLab.Problems.Knapsack.Views-3.3.csproj index 53be7056b9..7ba04beac5 100644 --- a/HeuristicLab.Problems.Knapsack.Views/3.3/HeuristicLab.Problems.Knapsack.Views-3.3.csproj +++ b/HeuristicLab.Problems.Knapsack.Views/3.3/HeuristicLab.Problems.Knapsack.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,15 +89,36 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -125,6 +141,7 @@ + @@ -164,6 +181,10 @@ HeuristicLab.MainForm-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.Knapsack.Views/3.3/packages.config b/HeuristicLab.Problems.Knapsack.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Knapsack.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj b/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj index f0d4cd2e99..9b098f4bc5 100644 --- a/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj +++ b/HeuristicLab.Problems.Knapsack/3.3/HeuristicLab.Problems.Knapsack-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {E10F395F-C8A6-48AD-B470-9AA7A1F43809} + netstandard2.0 Library - Properties HeuristicLab.Problems.Knapsack - HeuristicLab.Problems.Knapsack-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,168 +20,34 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {66D249C3-A01D-42A8-82A2-919BC8EC3D83} - HeuristicLab.Encodings.BinaryVectorEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + + + + + + + + @@ -216,33 +67,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.LinearAssignment.Views/3.3/HeuristicLab.Problems.LinearAssignment.Views-3.3.csproj b/HeuristicLab.Problems.LinearAssignment.Views/3.3/HeuristicLab.Problems.LinearAssignment.Views-3.3.csproj index 9f634b1180..f51389f993 100644 --- a/HeuristicLab.Problems.LinearAssignment.Views/3.3/HeuristicLab.Problems.LinearAssignment.Views-3.3.csproj +++ b/HeuristicLab.Problems.LinearAssignment.Views/3.3/HeuristicLab.Problems.LinearAssignment.Views-3.3.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true @@ -82,7 +80,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -99,7 +96,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -108,13 +104,36 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + UserControl @@ -180,6 +199,10 @@ HeuristicLab.Operators-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.LinearAssignment.Views/3.3/packages.config b/HeuristicLab.Problems.LinearAssignment.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.LinearAssignment.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.LinearAssignment/3.3/HeuristicLab.Problems.LinearAssignment-3.3.csproj b/HeuristicLab.Problems.LinearAssignment/3.3/HeuristicLab.Problems.LinearAssignment-3.3.csproj index 8661d009cc..acd05aee13 100644 --- a/HeuristicLab.Problems.LinearAssignment/3.3/HeuristicLab.Problems.LinearAssignment-3.3.csproj +++ b/HeuristicLab.Problems.LinearAssignment/3.3/HeuristicLab.Problems.LinearAssignment-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {7250653F-DE83-4069-8D34-8050E8E45EA1} + netstandard2.0 Library - Properties HeuristicLab.Problems.LinearAssignment - HeuristicLab.Problems.LinearAssignment-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,192 +16,66 @@ HeuristicLab.snk - true ..\..\bin\ - DEBUG;TRACE - full - x86 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x86 bin\Release\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - true ..\..\bin\ - DEBUG;TRACE - full - x64 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x64 bin\Release\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false + + + ..\..\bin\HeuristicLab.PluginInfrastructure-3.3.dll False - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.NK/3.3/HeuristicLab.Problems.NK-3.3.csproj b/HeuristicLab.Problems.NK/3.3/HeuristicLab.Problems.NK-3.3.csproj index 6f773d4098..c603b38aed 100644 --- a/HeuristicLab.Problems.NK/3.3/HeuristicLab.Problems.NK-3.3.csproj +++ b/HeuristicLab.Problems.NK/3.3/HeuristicLab.Problems.NK-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {C3AD50E6-E717-490E-ABC7-32EF7FB03C97} + netstandard2.0 Library - Properties HeuristicLab.Problems.NK - HeuristicLab.Problems.NK-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,207 +16,62 @@ HeuristicLab.snk - true ..\..\bin\ - DEBUG;TRACE - full - x86 bin\Debug\HeuristicLab.Problems.NK.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x86 bin\Release\HeuristicLab.Problems.NK.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - true ..\..\bin\ - DEBUG;TRACE - full - x64 bin\Debug\HeuristicLab.Problems.NK.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\..\bin\ - TRACE - true - pdbonly - x64 bin\Release\HeuristicLab.Problems.NK.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {66d249c3-a01d-42a8-82a2-919bc8ec3d83} - HeuristicLab.Encodings.BinaryVectorEncoding-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {fc627be5-0f93-47d8-bd2e-530ea2b8aa5f} - HeuristicLab.Problems.Binary-3.3 - False - - - {f4539fb6-4708-40c9-be64-0a1390aea197} - HeuristicLab.Random-3.3 - False - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Orienteering.Views/3.3/HeuristicLab.Problems.Orienteering.Views-3.3.csproj b/HeuristicLab.Problems.Orienteering.Views/3.3/HeuristicLab.Problems.Orienteering.Views-3.3.csproj index 5d3a0b81ec..85089bc1cc 100644 --- a/HeuristicLab.Problems.Orienteering.Views/3.3/HeuristicLab.Problems.Orienteering.Views-3.3.csproj +++ b/HeuristicLab.Problems.Orienteering.Views/3.3/HeuristicLab.Problems.Orienteering.Views-3.3.csproj @@ -45,7 +45,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset false @@ -55,7 +54,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -65,7 +63,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -75,10 +72,15 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + False ..\..\bin\HeuristicLab.Data.Views-3.3.dll @@ -92,9 +94,25 @@ ..\..\bin\HeuristicLab.Problems.LinearAssignment-3.3.dll + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -115,7 +133,9 @@ + + @@ -160,6 +180,10 @@ {56F9106A-079F-4C61-92F6-86A84C2D84B7} HeuristicLab.Parameters-3.3 + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -173,7 +197,7 @@ HeuristicLab.Problems.LinearAssignment.Views-3.3 - {D1EFA4CC-909F-41D5-9C1F-C3AF1957A372} + {d1efa4cc-909f-41d5-9c1f-c3af1957a372} HeuristicLab.Problems.Orienteering-3.3 diff --git a/HeuristicLab.Problems.Orienteering.Views/3.3/app.config b/HeuristicLab.Problems.Orienteering.Views/3.3/app.config new file mode 100644 index 0000000000..d973f50179 --- /dev/null +++ b/HeuristicLab.Problems.Orienteering.Views/3.3/app.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Orienteering.Views/3.3/packages.config b/HeuristicLab.Problems.Orienteering.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Orienteering.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Orienteering/3.3/HeuristicLab.Problems.Orienteering-3.3.csproj b/HeuristicLab.Problems.Orienteering/3.3/HeuristicLab.Problems.Orienteering-3.3.csproj index efb382b339..67adc5f037 100644 --- a/HeuristicLab.Problems.Orienteering/3.3/HeuristicLab.Problems.Orienteering-3.3.csproj +++ b/HeuristicLab.Problems.Orienteering/3.3/HeuristicLab.Problems.Orienteering-3.3.csproj @@ -48,7 +48,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset false @@ -58,7 +57,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -68,7 +66,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset false @@ -78,14 +75,35 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -104,6 +122,7 @@ + @@ -189,13 +208,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - diff --git a/HeuristicLab.Problems.Orienteering/3.3/packages.config b/HeuristicLab.Problems.Orienteering/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Orienteering/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.PTSP.Views/3.3/HeuristicLab.Problems.PTSP.Views-3.3.csproj b/HeuristicLab.Problems.PTSP.Views/3.3/HeuristicLab.Problems.PTSP.Views-3.3.csproj index 6f401f92cc..86c5568d26 100644 --- a/HeuristicLab.Problems.PTSP.Views/3.3/HeuristicLab.Problems.PTSP.Views-3.3.csproj +++ b/HeuristicLab.Problems.PTSP.Views/3.3/HeuristicLab.Problems.PTSP.Views-3.3.csproj @@ -37,7 +37,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset $(SolutionDir)\bin\ @@ -46,7 +45,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset true @@ -55,7 +53,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset $(SolutionDir)\bin\ @@ -64,7 +61,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset @@ -122,6 +118,10 @@ HeuristicLab.Parameters-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -142,9 +142,31 @@ HeuristicLab.Random-3.3 False + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -170,6 +192,7 @@ + diff --git a/HeuristicLab.Problems.PTSP.Views/3.3/packages.config b/HeuristicLab.Problems.PTSP.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.PTSP.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.PTSP/3.3/HeuristicLab.Problems.PTSP-3.3.csproj b/HeuristicLab.Problems.PTSP/3.3/HeuristicLab.Problems.PTSP-3.3.csproj index 11816fa19e..24c7d1a629 100644 --- a/HeuristicLab.Problems.PTSP/3.3/HeuristicLab.Problems.PTSP-3.3.csproj +++ b/HeuristicLab.Problems.PTSP/3.3/HeuristicLab.Problems.PTSP-3.3.csproj @@ -1,34 +1,13 @@ - - - + - Debug - AnyCPU - {97198965-AFEA-496B-B3B1-316905C43FD6} + netstandard2.0 Library - Properties HeuristicLab.Problems.PTSP - HeuristicLab.Problems.PTSP-3.3 - v4.7.2 - 512 - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AnyCPU - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 + + false true @@ -36,205 +15,26 @@ HeuristicLab.snk - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set OutDir=$(OutDir) -set TargetDir=$(TargetDir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.ParameterOptimization/3.3/HeuristicLab.Problems.ParameterOptimization-3.3.csproj b/HeuristicLab.Problems.ParameterOptimization/3.3/HeuristicLab.Problems.ParameterOptimization-3.3.csproj index a240538bef..44771c283d 100644 --- a/HeuristicLab.Problems.ParameterOptimization/3.3/HeuristicLab.Problems.ParameterOptimization-3.3.csproj +++ b/HeuristicLab.Problems.ParameterOptimization/3.3/HeuristicLab.Problems.ParameterOptimization-3.3.csproj @@ -1,36 +1,13 @@ - - - + - Debug - AnyCPU - {D2C39FBA-A1D5-403A-9211-B0A299A76313} + netstandard2.0 Library - Properties HeuristicLab.Problems.ParameterOptimization - HeuristicLab.Problems.ParameterOptimization-3.3 - v4.7.2 - 512 - - - - true - full - false + false ..\..\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - false + + false true @@ -38,161 +15,23 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - false - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {bb6d334a-4bb6-4674-9883-31a6ebb32cab} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) - set ProjectDir=$(ProjectDir) - set SolutionDir=$(SolutionDir) - set Outdir=$(Outdir) - - call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) - export SolutionDir=$(SolutionDir) - - $SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Programmable.Views/3.3/HeuristicLab.Problems.Programmable.Views-3.3.csproj b/HeuristicLab.Problems.Programmable.Views/3.3/HeuristicLab.Problems.Programmable.Views-3.3.csproj index 2845ac5497..75960c74a0 100644 --- a/HeuristicLab.Problems.Programmable.Views/3.3/HeuristicLab.Problems.Programmable.Views-3.3.csproj +++ b/HeuristicLab.Problems.Programmable.Views/3.3/HeuristicLab.Problems.Programmable.Views-3.3.csproj @@ -45,7 +45,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset $(SolutionDir)\bin\ @@ -54,7 +53,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset true @@ -63,7 +61,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset $(SolutionDir)\bin\ @@ -72,7 +69,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset @@ -163,6 +159,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186a6a-5176-4402-ae83-886557b53cca} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.Programmable.Views/3.3/ProblemDefinitionScriptView.cs b/HeuristicLab.Problems.Programmable.Views/3.3/ProblemDefinitionScriptView.cs index 650b35406c..9bedd2f2b0 100644 --- a/HeuristicLab.Problems.Programmable.Views/3.3/ProblemDefinitionScriptView.cs +++ b/HeuristicLab.Problems.Programmable.Views/3.3/ProblemDefinitionScriptView.cs @@ -52,7 +52,7 @@ public override bool Compile() { try { base.Compile(); } catch (ProblemDefinitionScriptException e) { - PluginInfrastructure.ErrorHandling.ShowErrorDialog(e); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog(e); return false; } return true; diff --git a/HeuristicLab.Problems.Programmable/3.3/HeuristicLab.Problems.Programmable-3.3.csproj b/HeuristicLab.Problems.Programmable/3.3/HeuristicLab.Problems.Programmable-3.3.csproj index f443819cb6..8f92f8db1a 100644 --- a/HeuristicLab.Problems.Programmable/3.3/HeuristicLab.Problems.Programmable-3.3.csproj +++ b/HeuristicLab.Problems.Programmable/3.3/HeuristicLab.Problems.Programmable-3.3.csproj @@ -1,36 +1,16 @@ - - - + - Debug - AnyCPU - {EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9} + netstandard2.0 Library - Properties HeuristicLab.Problems.Programmable - HeuristicLab.Problems.Programmable-3.3 - v4.7.2 - 512 - - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true + false $(SolutionDir)\bin\ - TRACE - prompt - 4 - false + HeuristicLab.Problems.Programmable + HEAL + HeuristicLab + (c) HEAL + 3.3.0.0 + 3.3.16.8905 true @@ -38,164 +18,36 @@ HeuristicLab.snk - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - + True True ScriptTemplates.resx - - - - - - + ResXFileCodeGenerator ScriptTemplates.Designer.cs - - - - - - - {887425b4-4348-49ed-a457-b7d2c26ddbf9} - HeuristicLab.Analysis-3.3 - False - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {0e27a536-1c4a-4624-a65e-dc4f4f23e3e1} - HeuristicLab.Common.Resources-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {66d249c3-a01d-42a8-82a2-919bc8ec3d83} - HeuristicLab.Encodings.BinaryVectorEncoding-3.3 - - - {ddfb14dd-2a85-493c-a52d-e69729bbaeb0} - HeuristicLab.Encodings.IntegerVectorEncoding-3.3 - - - {be698769-975a-429e-828c-72bb2b6182c8} - HeuristicLab.Encodings.LinearLinkageEncoding-3.4 - False - - - {dbecb8b0-b166-4133-baf1-ed67c3fd7fca} - HeuristicLab.Encodings.PermutationEncoding-3.3 - - - {bb6d334a-4bb6-4674-9883-31a6ebb32cab} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - - - {06d4a186-9319-48a0-bade-a2058d462eea} - HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {21977cc3-1757-4b3b-87bd-ff817aaa900f} - HeuristicLab.Scripting-3.3 - False - + + + + + + + + + + + + + + + + + + @@ -204,7 +56,11 @@ False - + + + + + set Path=%25Path%25;$(ProjectDir);$(SolutionDir) @@ -221,11 +77,4 @@ $SolutionDir/PreBuildEvent.sh - \ No newline at end of file diff --git a/HeuristicLab.Problems.QuadraticAssignment.Algorithms/3.3/HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3.csproj b/HeuristicLab.Problems.QuadraticAssignment.Algorithms/3.3/HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3.csproj index 5efa6923ff..081e001be1 100644 --- a/HeuristicLab.Problems.QuadraticAssignment.Algorithms/3.3/HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3.csproj +++ b/HeuristicLab.Problems.QuadraticAssignment.Algorithms/3.3/HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {5B9B9E8C-2706-43C2-80B8-A08341E431F7} + netstandard2.0 Library - Properties HeuristicLab.Problems.QuadraticAssignment.Algorithms - HeuristicLab.Problems.QuadraticAssignment.Algorithms-3.3 - v4.7.2 - 512 - - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,175 +16,65 @@ HeuristicLab.snk - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 $(SolutionDir)\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 $(SolutionDir)\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false - - - - + - - - - - - + + + + + + + + + + + + + + + - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {79271BC8-4446-40E2-BB89-9BE4E17174FE} - HeuristicLab.Problems.QuadraticAssignment-3.3 - False - - - {F4539FB6-4708-40C9-BE64-0A1390AEA197} - HeuristicLab.Random-3.3 - False - - - - - False - ..\..\bin\HEAL.Attic.dll - False - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) set ProjectDir=$(ProjectDir) @@ -224,15 +90,5 @@ export SolutionDir=$(SolutionDir) $SolutionDir/PreBuildEvent.sh - - - - - + \ No newline at end of file diff --git a/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj b/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj index 54df3866d0..0c4e5dfebf 100644 --- a/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj +++ b/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj @@ -49,7 +49,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -66,7 +65,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true @@ -82,7 +80,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -99,7 +96,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -108,10 +104,32 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -136,6 +154,7 @@ QuadraticAssignmentProblemView.cs + @@ -200,6 +219,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/packages.config b/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.QuadraticAssignment/3.3/HeuristicLab.Problems.QuadraticAssignment-3.3.csproj b/HeuristicLab.Problems.QuadraticAssignment/3.3/HeuristicLab.Problems.QuadraticAssignment-3.3.csproj index 4d93303285..92e58d8f15 100644 --- a/HeuristicLab.Problems.QuadraticAssignment/3.3/HeuristicLab.Problems.QuadraticAssignment-3.3.csproj +++ b/HeuristicLab.Problems.QuadraticAssignment/3.3/HeuristicLab.Problems.QuadraticAssignment-3.3.csproj @@ -1,37 +1,13 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {79271BC8-4446-40E2-BB89-9BE4E17174FE} + netstandard2.0 Library - Properties HeuristicLab.Problems.QuadraticAssignment - HeuristicLab.Problems.QuadraticAssignment-3.3 - v4.7.2 - 512 - - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - false - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - false + + false true @@ -40,220 +16,66 @@ HeuristicLab.snk - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 $(SolutionDir)\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true - false - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 bin\Debug\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 $(SolutionDir)\bin\Plugin.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules true false - false - - - - - - - + - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-f74c-4128-bc86-8324271da13e} - HeuristicLab.Optimization.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - {7250653F-DE83-4069-8D34-8050E8E45EA1} - HeuristicLab.Problems.LinearAssignment-3.3 - + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + + + + + + - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.Scheduling.Views/3.3/HeuristicLab.Problems.Scheduling.Views-3.3.csproj b/HeuristicLab.Problems.Scheduling.Views/3.3/HeuristicLab.Problems.Scheduling.Views-3.3.csproj index 932adc3469..273d0f7620 100644 --- a/HeuristicLab.Problems.Scheduling.Views/3.3/HeuristicLab.Problems.Scheduling.Views-3.3.csproj +++ b/HeuristicLab.Problems.Scheduling.Views/3.3/HeuristicLab.Problems.Scheduling.Views-3.3.csproj @@ -43,7 +43,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false @@ -59,7 +58,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false @@ -76,7 +74,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false @@ -93,7 +90,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false @@ -107,10 +103,32 @@ HeuristicLab.snk + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -138,6 +156,7 @@ + @@ -196,6 +215,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.Scheduling.Views/3.3/packages.config b/HeuristicLab.Problems.Scheduling.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.Scheduling.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.Scheduling/3.3/HeuristicLab.Problems.Scheduling-3.3.csproj b/HeuristicLab.Problems.Scheduling/3.3/HeuristicLab.Problems.Scheduling-3.3.csproj index 8bfa764575..2d9bc19d16 100644 --- a/HeuristicLab.Problems.Scheduling/3.3/HeuristicLab.Problems.Scheduling-3.3.csproj +++ b/HeuristicLab.Problems.Scheduling/3.3/HeuristicLab.Problems.Scheduling-3.3.csproj @@ -1,37 +1,14 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {2BF1D639-1A74-44ED-AAAD-41ECD395AD93} + netstandard2.0 Library - Properties HeuristicLab.Problems.Scheduling - HeuristicLab.Problems.Scheduling-3.3 - v4.7.2 - 512 - - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - false + ..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Scheduling-3.3.dll.CodeAnalysisLog.xml - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - false + + false true @@ -39,206 +16,41 @@ HeuristicLab.snk - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - ..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Scheduling-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - ..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Scheduling-3.3.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets - ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - false - false - - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 ..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Scheduling-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false false - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 ..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.Scheduling-3.3.dll.CodeAnalysisLog.xml true GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false - - - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {DDFB14DD-2A85-493C-A52D-E69729BBAEB0} - HeuristicLab.Encodings.IntegerVectorEncoding-3.3 - False - - - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606} - HeuristicLab.Encodings.ScheduleEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.TestFunctions.MultiObjective/3.3/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3.csproj b/HeuristicLab.Problems.TestFunctions.MultiObjective/3.3/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3.csproj index 6b69137a4a..55ef855bb2 100644 --- a/HeuristicLab.Problems.TestFunctions.MultiObjective/3.3/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3.csproj +++ b/HeuristicLab.Problems.TestFunctions.MultiObjective/3.3/HeuristicLab.Problems.TestFunctions.MultiObjective-3.3.csproj @@ -1,35 +1,19 @@ - - - + - Debug - AnyCPU - {D53E8E48-CFAA-4F57-AC35-63BEF4476159} + netstandard2.0 Library - Properties HeuristicLab.Problems.TestFunctions.MultiObjective - HeuristicLab.Problems.TestFunctions.MultiObjective-3.3 - v4.7.2 - 512 + false + + + false - true - full - false ..\..\bin\ - DEBUG;TRACE - prompt - 4 false - MinimumRecommendedRules.ruleset - pdbonly - true ..\..\bin\ - TRACE - prompt - 4 true @@ -41,112 +25,23 @@ - true ..\..\bin\ CODE_ANALYSIS;DEBUG;TRACE - full - x64 true - prompt - MinimumRecommendedRules.ruleset ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true ..\..\bin\ CODE_ANALYSIS;DEBUG;TRACE - full - x86 true - prompt - MinimumRecommendedRules.ruleset ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -164,100 +59,24 @@ - - - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {0e27a536-1c4a-4624-a65e-dc4f4f23e3e1} - HeuristicLab.Common.Resources-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {bbab9df5-5ef3-4ba8-ade9-b36e82114937} - HeuristicLab.Data-3.3 - False - - - {bb6d334a-4bb6-4674-9883-31a6ebb32cab} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - False - - - {23da7ff4-d5b8-41b6-aa96-f0561d24f3ee} - HeuristicLab.Operators-3.3 - False - - - {14ab8d24-25bc-400c-a846-4627aa945192} - HeuristicLab.Optimization-3.3 - False - - - {56f9106a-079f-4c61-92f6-86a84c2d84b7} - HeuristicLab.Parameters-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540e29e-4793-49e7-8ee2-fea7f61c3994} - HeuristicLab.Problems.Instances-3.3 - False - + + + + + + + + + + + + - - False - ..\..\bin\HEAL.Attic.dll - False - + + + - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - - export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.TestFunctions.Views/3.3/HeuristicLab.Problems.TestFunctions.Views-3.3.csproj b/HeuristicLab.Problems.TestFunctions.Views/3.3/HeuristicLab.Problems.TestFunctions.Views-3.3.csproj index e1c96ebb64..0db9d806bc 100644 --- a/HeuristicLab.Problems.TestFunctions.Views/3.3/HeuristicLab.Problems.TestFunctions.Views-3.3.csproj +++ b/HeuristicLab.Problems.TestFunctions.Views/3.3/HeuristicLab.Problems.TestFunctions.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x86 prompt - AllRules.ruleset false @@ -94,15 +89,36 @@ pdbonly x86 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -129,6 +145,7 @@ SingleObjectiveTestFunctionSolutionView.cs + @@ -193,6 +210,10 @@ HeuristicLab.Optimization-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.TestFunctions.Views/3.3/packages.config b/HeuristicLab.Problems.TestFunctions.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.TestFunctions.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.TestFunctions/3.3/HeuristicLab.Problems.TestFunctions-3.3.csproj b/HeuristicLab.Problems.TestFunctions/3.3/HeuristicLab.Problems.TestFunctions-3.3.csproj index 19116e5c6b..83e4526048 100644 --- a/HeuristicLab.Problems.TestFunctions/3.3/HeuristicLab.Problems.TestFunctions-3.3.csproj +++ b/HeuristicLab.Problems.TestFunctions/3.3/HeuristicLab.Problems.TestFunctions-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {88B9B0E3-344E-4196-82A3-0F9732506FE8} + netstandard2.0 Library - Properties HeuristicLab.Problems.TestFunctions - HeuristicLab.Problems.TestFunctions-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,211 +20,35 @@ false false true - - - true - full - false - $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - true + false $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - AllRules.ruleset - false - - - true - $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - AllRules.ruleset - false + + false - - - 3.5 - - - + 3.5 - + 3.5 - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {BB6D334A-4BB6-4674-9883-31A6EBB32CAB} - HeuristicLab.Encodings.RealVectorEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540e29e-4793-49e7-8ee2-fea7f61c3994} - HeuristicLab.Problems.Instances-3.3 - False - + + + + + + + + + + + + + + @@ -259,33 +68,7 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs b/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs index a16a739f54..1152ef0cf6 100644 --- a/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs +++ b/HeuristicLab.Problems.TestFunctions/3.3/SingleObjectiveTestFunctionProblem.cs @@ -320,7 +320,7 @@ private void ParameterizeEvaluator() { BestKnownSolutionParameter.Value = Evaluator.GetBestKnownSolution(ProblemSize.Value); } catch (ArgumentException e) { - ErrorHandling.ShowErrorDialog(e); + //ErrorHandlingUI.ShowErrorDialog(e); ProblemSize.Value = Evaluator.MinimumProblemSize; } } diff --git a/HeuristicLab.Problems.TravelingSalesman.Views/3.3/HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj b/HeuristicLab.Problems.TravelingSalesman.Views/3.3/HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj index 9d5698b169..de1bfc863b 100644 --- a/HeuristicLab.Problems.TravelingSalesman.Views/3.3/HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj +++ b/HeuristicLab.Problems.TravelingSalesman.Views/3.3/HeuristicLab.Problems.TravelingSalesman.Views-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -56,7 +55,6 @@ 4 - AllRules.ruleset false @@ -66,7 +64,6 @@ full x86 prompt - AllRules.ruleset false @@ -78,7 +75,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -88,7 +84,6 @@ full x64 prompt - AllRules.ruleset false @@ -100,15 +95,36 @@ pdbonly x64 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -137,6 +153,7 @@ + @@ -213,6 +230,10 @@ HeuristicLab.Parameters-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 diff --git a/HeuristicLab.Problems.TravelingSalesman.Views/3.3/packages.config b/HeuristicLab.Problems.TravelingSalesman.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Problems.TravelingSalesman.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Problems.TravelingSalesman/3.3/HeuristicLab.Problems.TravelingSalesman-3.3.csproj b/HeuristicLab.Problems.TravelingSalesman/3.3/HeuristicLab.Problems.TravelingSalesman-3.3.csproj index 42d40448da..fd258587dc 100644 --- a/HeuristicLab.Problems.TravelingSalesman/3.3/HeuristicLab.Problems.TravelingSalesman-3.3.csproj +++ b/HeuristicLab.Problems.TravelingSalesman/3.3/HeuristicLab.Problems.TravelingSalesman-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {D767C38D-8014-46B0-9A32-03A3AECCE34A} + netstandard2.0 Library - Properties HeuristicLab.Problems.TravelingSalesman - HeuristicLab.Problems.TravelingSalesman-3.3 true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -35,202 +20,46 @@ false false true - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - - - AllRules.ruleset - false - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - false - AllRules.ruleset - false + + false - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {887425B4-4348-49ED-A457-B7D2C26DDBF9} - HeuristicLab.Analysis-3.3 - False - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} - HeuristicLab.Common.Resources-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA} - HeuristicLab.Encodings.PermutationEncoding-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {25087811-F74C-4128-BC86-8324271DA13E} - HeuristicLab.Optimization.Operators-3.3 - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - {3540E29E-4793-49E7-8EE2-FEA7F61C3994} - HeuristicLab.Problems.Instances-3.3 - False - - - - - - + + + + + + + + + + + + + + @@ -250,33 +79,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs b/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs index 2326853b87..d088b93155 100644 --- a/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs +++ b/HeuristicLab.Problems.TravelingSalesman/3.3/TravelingSalesmanProblem.cs @@ -271,7 +271,8 @@ private void ParameterizeSolutionCreator() { if (Evaluator is ITSPDistanceMatrixEvaluator) error += Environment.NewLine + "Please review that the " + DistanceMatrixParameter.Name + " parameter is defined or choose another evaluator."; else error += Environment.NewLine + "Please review that the " + CoordinatesParameter.Name + " parameter is defined or choose another evaluator."; - PluginInfrastructure.ErrorHandling.ShowErrorDialog(error, null); + throw new Exception(error); + //PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog(error, null); } SolutionCreator.LengthParameter.Hidden = SolutionCreator.LengthParameter.Value != null; SolutionCreator.PermutationTypeParameter.Value = new PermutationType(PermutationTypes.RelativeUndirected); diff --git a/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj b/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj index 601a7c6c56..21e157f1b9 100644 --- a/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj +++ b/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj @@ -43,7 +43,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -55,7 +54,6 @@ 4 - AllRules.ruleset false @@ -65,7 +63,6 @@ full x86 prompt - AllRules.ruleset false @@ -77,7 +74,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -87,7 +83,6 @@ full x64 prompt - AllRules.ruleset false @@ -98,15 +93,36 @@ pdbonly x64 prompt - AllRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -182,6 +198,7 @@ + @@ -274,6 +291,10 @@ HeuristicLab.Parameters-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {94186A6A-5176-4402-AE83-886557B53CCA} HeuristicLab.PluginInfrastructure-3.3 @@ -290,13 +311,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - - - - - \ No newline at end of file diff --git a/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs b/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs index 9f1ee39cf1..12ee25e6cf 100644 --- a/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs +++ b/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs @@ -355,7 +355,8 @@ public void ImportSolution(string solutionFileName) { } if (cities != ProblemInstance.Coordinates.Rows - 1) - ErrorHandling.ShowErrorDialog(new Exception("The optimal solution does not seem to correspond with the problem data")); + throw new Exception("The optimal solution does not seem to correspond with the problem data"); + //ErrorHandlingUI.ShowErrorDialog(new Exception("The optimal solution does not seem to correspond with the problem data")); else { VRPSolution solution = new VRPSolution(ProblemInstance, encoding, new DoubleValue(0)); BestKnownSolutionParameter.Value = solution; diff --git a/HeuristicLab.Random/3.3/HeuristicLab.Random-3.3.csproj b/HeuristicLab.Random/3.3/HeuristicLab.Random-3.3.csproj index 10491bd8aa..35cf050d51 100644 --- a/HeuristicLab.Random/3.3/HeuristicLab.Random-3.3.csproj +++ b/HeuristicLab.Random/3.3/HeuristicLab.Random-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {F4539FB6-4708-40C9-BE64-0A1390AEA197} + netstandard2.0 Library - Properties HeuristicLab.Random - HeuristicLab.Random-3.3 true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -35,153 +20,40 @@ false false true - - - true - full - false + false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - - - AllRules.ruleset - false - - pdbonly - true - $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - false - AllRules.ruleset - false + + false - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - - Code - - - Code - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - + + + + + + + + @@ -201,33 +73,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Scripting.Views/3.3/ExecutableScriptView.cs b/HeuristicLab.Scripting.Views/3.3/ExecutableScriptView.cs index c43394c0af..2c116caefd 100644 --- a/HeuristicLab.Scripting.Views/3.3/ExecutableScriptView.cs +++ b/HeuristicLab.Scripting.Views/3.3/ExecutableScriptView.cs @@ -93,7 +93,7 @@ protected virtual void ContentOnScriptExecutionFinished(object sender, EventArgs UpdateInfoTextLabel(ScriptExecutionCanceledMessage, Color.DarkOrange); } else { UpdateInfoTextLabel(ScriptExecutionFailedMessage, Color.DarkRed); - PluginInfrastructure.ErrorHandling.ShowErrorDialog(this, ex); + PluginInfrastructure.ErrorHandlingUI.ShowErrorDialog(this, ex); } } } diff --git a/HeuristicLab.Scripting.Views/3.3/HeuristicLab.Scripting.Views-3.3.csproj b/HeuristicLab.Scripting.Views/3.3/HeuristicLab.Scripting.Views-3.3.csproj index f2e8df283d..8031d5cb17 100644 --- a/HeuristicLab.Scripting.Views/3.3/HeuristicLab.Scripting.Views-3.3.csproj +++ b/HeuristicLab.Scripting.Views/3.3/HeuristicLab.Scripting.Views-3.3.csproj @@ -21,7 +21,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -46,7 +45,6 @@ full x64 prompt - AllRules.ruleset false @@ -56,7 +54,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset false @@ -66,7 +63,6 @@ full x86 prompt - AllRules.ruleset false @@ -76,13 +72,34 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -90,6 +107,7 @@ + UserControl @@ -158,6 +176,10 @@ HeuristicLab.Core-3.3 False + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + {21977cc3-1757-4b3b-87bd-ff817aaa900f} HeuristicLab.Scripting-3.3 @@ -184,13 +206,6 @@ False - - - False - ..\..\bin\HEAL.Attic.dll - False - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) diff --git a/HeuristicLab.Scripting.Views/3.3/VariableStoreView.cs b/HeuristicLab.Scripting.Views/3.3/VariableStoreView.cs index cee250aaf2..9577b44ad2 100644 --- a/HeuristicLab.Scripting.Views/3.3/VariableStoreView.cs +++ b/HeuristicLab.Scripting.Views/3.3/VariableStoreView.cs @@ -154,7 +154,7 @@ protected virtual object CreateItem() { try { return (object)typeSelectorDialog.TypeSelector.CreateInstanceOfSelectedType(); } catch (Exception ex) { - ErrorHandling.ShowErrorDialog(this, ex); + ErrorHandlingUI.ShowErrorDialog(this, ex); } } return null; diff --git a/HeuristicLab.Scripting.Views/3.3/packages.config b/HeuristicLab.Scripting.Views/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Scripting.Views/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Scripting/3.3/HeuristicLab.Scripting-3.3.csproj b/HeuristicLab.Scripting/3.3/HeuristicLab.Scripting-3.3.csproj index 7086e94a96..359aa79d06 100644 --- a/HeuristicLab.Scripting/3.3/HeuristicLab.Scripting-3.3.csproj +++ b/HeuristicLab.Scripting/3.3/HeuristicLab.Scripting-3.3.csproj @@ -1,37 +1,15 @@ - - - + - Debug - AnyCPU - {21977CC3-1757-4B3B-87BD-FF817AAA900F} + netstandard2.0 Library - Properties HeuristicLab.Scripting - HeuristicLab.Scripting-3.3 - v4.7.2 - 512 - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - false + HeuristicLab.Scripting + HeuristicLab + (c) HEAL + 3.3.0.0 + 3.3.16.8883 true @@ -39,125 +17,40 @@ HeuristicLab.snk - - true - ..\..\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - true - ..\..\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false - - - ..\..\bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - false - - - - - - - - - - - - - - - - + True True ScriptTemplates.resx - - - - - - - - - - - - - {958b43bc-cc5c-4fa2-8628-2b3b01d890b6} - HeuristicLab.Collections-3.3 - False - - - {0e27a536-1c4a-4624-a65e-dc4f4f23e3e1} - HeuristicLab.Common.Resources-3.3 - False - - - {a9ad58b9-3ef9-4cc1-97e5-8d909039ff5c} - HeuristicLab.Common-3.3 - False - - - {c36bd924-a541-4a00-afa8-41701378ddc5} - HeuristicLab.Core-3.3 - False - - - {102bc7d3-0ef9-439c-8f6d-96ff0fdb8e1b} - HeuristicLab.Persistence-3.3 - False - - - {94186a6a-5176-4402-ae83-886557b53cca} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + - + ResXFileCodeGenerator ScriptTemplates.Designer.cs HeuristicLab.Scripting - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + + + + + + - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) set ProjectDir=$(ProjectDir) @@ -173,11 +66,4 @@ export SolutionDir=$(SolutionDir) $SolutionDir/PreBuildEvent.sh - \ No newline at end of file diff --git a/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj b/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj index 9c4ed8b11e..edee71f07d 100644 --- a/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj +++ b/HeuristicLab.Selection/3.3/HeuristicLab.Selection-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {2C36CD4F-E5F5-43A4-801A-201EA895FE17} + netstandard2.0 Library - Properties HeuristicLab.Selection - HeuristicLab.Selection-3.3 true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -35,166 +20,47 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - false - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {958B43BC-CC5C-4FA2-8628-2B3B01D890B6} - HeuristicLab.Collections-3.3 - False - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} - HeuristicLab.Data-3.3 - False - - - {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} - HeuristicLab.Operators-3.3 - False - - - {14AB8D24-25BC-400C-A846-4627AA945192} - HeuristicLab.Optimization-3.3 - False - - - {56F9106A-079F-4C61-92F6-86A84C2D84B7} - HeuristicLab.Parameters-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + + + + + + @@ -214,33 +80,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.SequentialEngine/3.3/HeuristicLab.SequentialEngine-3.3.csproj b/HeuristicLab.SequentialEngine/3.3/HeuristicLab.SequentialEngine-3.3.csproj index b00a9591eb..c25bf372c9 100644 --- a/HeuristicLab.SequentialEngine/3.3/HeuristicLab.SequentialEngine-3.3.csproj +++ b/HeuristicLab.SequentialEngine/3.3/HeuristicLab.SequentialEngine-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {DC3D7072-7999-4719-B65D-3997744D5DC1} + netstandard2.0 Library - Properties HeuristicLab.SequentialEngine - HeuristicLab.SequentialEngine-3.3 true HeuristicLab.snk - - - 3.5 - - - v4.7.2 - - publish\ true Disk @@ -35,114 +20,42 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - false - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x86 - prompt - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - - - true - pdbonly - x64 - prompt - AllRules.ruleset - false + - - + 3.5 - - - - - - - - - - - - - - {A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C} - HeuristicLab.Common-3.3 - False - - - {C36BD924-A541-4A00-AFA8-41701378DDC5} - HeuristicLab.Core-3.3 - False - - - {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} - HeuristicLab.Persistence-3.3 - False - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - + + + + @@ -162,33 +75,6 @@ - - False - ..\..\bin\HEAL.Attic.dll - False - + - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - \ No newline at end of file diff --git a/HeuristicLab.Services.Access.DataAccess/3.3/HeuristicLab.Services.Access.DataAccess-3.3.csproj b/HeuristicLab.Services.Access.DataAccess/3.3/HeuristicLab.Services.Access.DataAccess-3.3.csproj index df2916a0a2..ebed5fa200 100644 --- a/HeuristicLab.Services.Access.DataAccess/3.3/HeuristicLab.Services.Access.DataAccess-3.3.csproj +++ b/HeuristicLab.Services.Access.DataAccess/3.3/HeuristicLab.Services.Access.DataAccess-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj b/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj index ffa23d33db..348be033fc 100644 --- a/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj +++ b/HeuristicLab.Services.Access/3.3/HeuristicLab.Services.Access-3.3.csproj @@ -24,7 +24,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -36,7 +35,6 @@ 4 - AllRules.ruleset false @@ -46,7 +44,6 @@ full x86 prompt - AllRules.ruleset false @@ -58,7 +55,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -68,7 +64,6 @@ full x64 prompt - AllRules.ruleset false @@ -80,7 +75,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.Deployment.DataAccess/3.3/HeuristicLab.Services.Deployment.DataAccess-3.3.csproj b/HeuristicLab.Services.Deployment.DataAccess/3.3/HeuristicLab.Services.Deployment.DataAccess-3.3.csproj index 706714907d..35a939039a 100644 --- a/HeuristicLab.Services.Deployment.DataAccess/3.3/HeuristicLab.Services.Deployment.DataAccess-3.3.csproj +++ b/HeuristicLab.Services.Deployment.DataAccess/3.3/HeuristicLab.Services.Deployment.DataAccess-3.3.csproj @@ -44,7 +44,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -54,7 +53,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -64,7 +62,6 @@ full x86 prompt - AllRules.ruleset false @@ -74,7 +71,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -84,7 +80,6 @@ full x64 prompt - AllRules.ruleset false @@ -94,7 +89,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.Deployment/3.3/HeuristicLab.Services.Deployment-3.3.csproj b/HeuristicLab.Services.Deployment/3.3/HeuristicLab.Services.Deployment-3.3.csproj index 3a8623e576..c97371a787 100644 --- a/HeuristicLab.Services.Deployment/3.3/HeuristicLab.Services.Deployment-3.3.csproj +++ b/HeuristicLab.Services.Deployment/3.3/HeuristicLab.Services.Deployment-3.3.csproj @@ -30,7 +30,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -40,7 +39,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -50,7 +48,6 @@ full x86 prompt - AllRules.ruleset false @@ -60,7 +57,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -70,7 +66,6 @@ full x64 prompt - AllRules.ruleset false @@ -80,7 +75,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.Deployment/3.3/Tests/HeuristicLab.Services.Deployment-3.3.Tests.csproj b/HeuristicLab.Services.Deployment/3.3/Tests/HeuristicLab.Services.Deployment-3.3.Tests.csproj index 23220aaae5..a5b45a7ae0 100644 --- a/HeuristicLab.Services.Deployment/3.3/Tests/HeuristicLab.Services.Deployment-3.3.Tests.csproj +++ b/HeuristicLab.Services.Deployment/3.3/Tests/HeuristicLab.Services.Deployment-3.3.Tests.csproj @@ -42,7 +42,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -52,7 +51,6 @@ TRACE prompt 4 - AllRules.ruleset false @@ -62,7 +60,6 @@ full x64 prompt - AllRules.ruleset false @@ -72,7 +69,6 @@ pdbonly x64 prompt - AllRules.ruleset false @@ -82,7 +78,6 @@ full x86 prompt - AllRules.ruleset false @@ -92,7 +87,6 @@ pdbonly x86 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.Hive.DataAccess/3.3/HeuristicLab.Services.Hive.DataAccess-3.3.csproj b/HeuristicLab.Services.Hive.DataAccess/3.3/HeuristicLab.Services.Hive.DataAccess-3.3.csproj index 44a6301792..f0411adbdf 100644 --- a/HeuristicLab.Services.Hive.DataAccess/3.3/HeuristicLab.Services.Hive.DataAccess-3.3.csproj +++ b/HeuristicLab.Services.Hive.DataAccess/3.3/HeuristicLab.Services.Hive.DataAccess-3.3.csproj @@ -22,7 +22,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -34,7 +33,6 @@ 4 - AllRules.ruleset false @@ -44,7 +42,6 @@ full x86 prompt - AllRules.ruleset false @@ -56,7 +53,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset false @@ -78,7 +73,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.Hive.JanitorService/3.3/HeuristicLab.Services.Hive.JanitorService-3.3.csproj b/HeuristicLab.Services.Hive.JanitorService/3.3/HeuristicLab.Services.Hive.JanitorService-3.3.csproj index d66465fe40..2b942282de 100644 --- a/HeuristicLab.Services.Hive.JanitorService/3.3/HeuristicLab.Services.Hive.JanitorService-3.3.csproj +++ b/HeuristicLab.Services.Hive.JanitorService/3.3/HeuristicLab.Services.Hive.JanitorService-3.3.csproj @@ -23,7 +23,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -35,7 +34,6 @@ 4 - AllRules.ruleset false @@ -45,7 +43,6 @@ full x86 prompt - AllRules.ruleset false @@ -57,7 +54,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -67,7 +63,6 @@ full x64 prompt - AllRules.ruleset false @@ -79,7 +74,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj b/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj index 9b62f01456..f5ae2b3be4 100644 --- a/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj +++ b/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj @@ -23,7 +23,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -35,7 +34,6 @@ 4 - AllRules.ruleset false @@ -45,7 +43,6 @@ full x86 prompt - AllRules.ruleset false @@ -57,7 +54,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -67,7 +63,6 @@ full x64 prompt - AllRules.ruleset false @@ -79,7 +74,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj b/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj index 09f72c337b..8424115643 100644 --- a/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj +++ b/HeuristicLab.Services.OKB.DataAccess/3.3/HeuristicLab.Services.OKB.DataAccess-3.3.csproj @@ -41,7 +41,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -53,7 +52,6 @@ 4 - AllRules.ruleset false @@ -63,7 +61,6 @@ full x86 prompt - AllRules.ruleset false @@ -75,7 +72,6 @@ pdbonly x86 prompt - AllRules.ruleset false @@ -85,7 +81,6 @@ full x64 prompt - AllRules.ruleset false @@ -97,7 +92,6 @@ pdbonly x64 prompt - AllRules.ruleset false diff --git a/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj b/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj index 22acd9906f..d3622e104c 100644 --- a/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj +++ b/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj @@ -24,7 +24,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -36,7 +35,6 @@ 4 - AllRules.ruleset false @@ -46,7 +44,6 @@ full x86 prompt - AllRules.ruleset bin\Release\ @@ -57,7 +54,6 @@ pdbonly x86 prompt - AllRules.ruleset true @@ -66,7 +62,6 @@ full x64 prompt - AllRules.ruleset bin\Release\ @@ -77,7 +72,6 @@ pdbonly x64 prompt - AllRules.ruleset true @@ -95,7 +89,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -112,7 +105,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -130,7 +122,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -147,7 +138,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules diff --git a/HeuristicLab.Services.WebApp.Maintenance/3.3/HeuristicLab.Services.WebApp.Maintenance-3.3.csproj b/HeuristicLab.Services.WebApp.Maintenance/3.3/HeuristicLab.Services.WebApp.Maintenance-3.3.csproj index 97bfd6f0d4..dc9c09e9ec 100644 --- a/HeuristicLab.Services.WebApp.Maintenance/3.3/HeuristicLab.Services.WebApp.Maintenance-3.3.csproj +++ b/HeuristicLab.Services.WebApp.Maintenance/3.3/HeuristicLab.Services.WebApp.Maintenance-3.3.csproj @@ -43,7 +43,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset bin\x64\Release\ @@ -52,7 +51,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset true @@ -61,7 +59,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset bin\x86\Release\ @@ -70,7 +67,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset diff --git a/HeuristicLab.Services.WebApp.Statistics/3.3/HeuristicLab.Services.WebApp.Statistics-3.3.csproj b/HeuristicLab.Services.WebApp.Statistics/3.3/HeuristicLab.Services.WebApp.Statistics-3.3.csproj index f487525eca..330d440140 100644 --- a/HeuristicLab.Services.WebApp.Statistics/3.3/HeuristicLab.Services.WebApp.Statistics-3.3.csproj +++ b/HeuristicLab.Services.WebApp.Statistics/3.3/HeuristicLab.Services.WebApp.Statistics-3.3.csproj @@ -44,7 +44,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset bin\x64\Release\ @@ -53,7 +52,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset true @@ -62,7 +60,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset bin\x86\Release\ @@ -71,7 +68,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset diff --git a/HeuristicLab.Services.WebApp.Status/3.3/HeuristicLab.Services.WebApp.Status-3.3.csproj b/HeuristicLab.Services.WebApp.Status/3.3/HeuristicLab.Services.WebApp.Status-3.3.csproj index 4b5afbab81..e0f74041af 100644 --- a/HeuristicLab.Services.WebApp.Status/3.3/HeuristicLab.Services.WebApp.Status-3.3.csproj +++ b/HeuristicLab.Services.WebApp.Status/3.3/HeuristicLab.Services.WebApp.Status-3.3.csproj @@ -44,7 +44,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset bin\x64\Release\ @@ -52,7 +51,6 @@ true x64 prompt - MinimumRecommendedRules.ruleset true @@ -61,7 +59,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset bin\x86\Release\ @@ -69,7 +66,6 @@ true x86 prompt - MinimumRecommendedRules.ruleset diff --git a/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj b/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj index db305eeb1a..364c7d203a 100644 --- a/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj +++ b/HeuristicLab.Services.WebApp/3.3/HeuristicLab.Services.WebApp-3.3.csproj @@ -284,7 +284,6 @@ full x86 prompt - MinimumRecommendedRules.ruleset bin\ @@ -293,7 +292,6 @@ pdbonly x86 prompt - MinimumRecommendedRules.ruleset true @@ -302,7 +300,6 @@ full x64 prompt - MinimumRecommendedRules.ruleset bin\ @@ -311,7 +308,6 @@ pdbonly x64 prompt - MinimumRecommendedRules.ruleset diff --git a/HeuristicLab.Tests/App.config b/HeuristicLab.Tests/App.config new file mode 100644 index 0000000000..f4dc008fc6 --- /dev/null +++ b/HeuristicLab.Tests/App.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs b/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs index 09ce37a74e..8bd67a3112 100644 --- a/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs +++ b/HeuristicLab.Tests/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4/SymbolicDataAnalysisExpressionTreeInterpreterTest.cs @@ -328,7 +328,7 @@ public void NativeInterpreterTestParameterOptimization() { Console.WriteLine(); var summary = new SolverSummary(); - var parameters = ParameterOptimizer.OptimizeTree(tree, ds, rows, "y", Enumerable.Empty(), nodesToOptimize, options, ref summary); + var parameters = ParameterOptimizer.OptimizeTree(tree, nodesToOptimize, ds, "y", rows, Enumerable.Empty(),options, ref summary); Console.Write("Optimized parameters: "); foreach (var t in parameters) { @@ -394,7 +394,7 @@ public void ParameterOptimizationConsistency() { var summary = new SolverSummary(); - var params1 = ParameterOptimizer.OptimizeTree(tree, ds, rows, "y", Enumerable.Empty(), new HashSet(nodesToOptimize), options, ref summary); + var params1 = ParameterOptimizer.OptimizeTree(tree, new HashSet(nodesToOptimize), ds, "y", rows, Enumerable.Empty(), options, ref summary); SymbolicRegressionParameterOptimizationEvaluator.OptimizeParameters(interpreter, tree, new RegressionProblemData(ds, new[] { "x1", "x2", "x3" }, "y"), rows, applyLinearScaling: false, maxIterations: 10, updateVariableWeights: false); @@ -468,7 +468,7 @@ public void NativeInterpreterTestParameterOptimizationVarPro() { Console.WriteLine(); var coeff = new double[trees.Length + 1]; - var parameters = ParameterOptimizer.OptimizeTree(trees, ds, rows, "y", Enumerable.Empty(), nodesToOptimize, options, coeff, ref summary); + var parameters = ParameterOptimizer.OptimizeTerms(trees, coeff, nodesToOptimize, ds, "y", rows, Enumerable.Empty(), options, ref summary); Console.Write("Optimized parameters: "); foreach (var t in parameters) { Console.Write(t.Value + " "); @@ -525,7 +525,7 @@ public void NativeInterpreterTestParameterOptimizationVarProNoParameters() { Console.WriteLine(); var coeff = new double[trees.Length + 1]; - var parameters = ParameterOptimizer.OptimizeTree(trees, ds, rows, "y", Enumerable.Empty(), nodesToOptimize, options, coeff, ref summary); + var parameters = ParameterOptimizer.OptimizeTerms(trees, coeff, nodesToOptimize, ds, "y", rows, Enumerable.Empty(), options, ref summary); Console.Write("Optimized parameters: "); foreach (var t in parameters) { Console.Write(t.Value + " "); diff --git a/HeuristicLab.Tests/HeuristicLab.Tests.csproj b/HeuristicLab.Tests/HeuristicLab.Tests.csproj index 8caa46050e..c63796ff1e 100644 --- a/HeuristicLab.Tests/HeuristicLab.Tests.csproj +++ b/HeuristicLab.Tests/HeuristicLab.Tests.csproj @@ -1,39 +1,9 @@ - - + - Debug - AnyCPU - - - 2.0 - {B62872C1-6752-4758-9823-751A2D28C388} + net6.0 Library - Properties - HeuristicLab.Tests - HeuristicLab.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true + false ..\bin\ - TRACE - prompt - 4 - false true @@ -42,71 +12,38 @@ HeuristicLab.snk - true ..\bin\ - DEBUG;TRACE - full - x64 bin\Debug\HeuristicLab.Tests.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\bin\ - TRACE - true - pdbonly - x64 bin\Release\HeuristicLab.Tests.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false - true ..\bin\ - DEBUG;TRACE - full - x86 bin\Debug\HeuristicLab.Tests.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules false - false ..\bin\ - TRACE - true - pdbonly - x86 bin\Release\HeuristicLab.Tests.dll.CodeAnalysisLog.xml - true - GlobalSuppressions.cs - prompt - MinimumRecommendedRules.ruleset ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules - false + + + ..\bin\ALGLIB-3.17.0.dll @@ -218,19 +155,6 @@ ..\bin\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.dll False - - False - ..\bin\HeuristicLab.IGraph-0.8.0-pre.dll - False - - - ..\bin\HeuristicLab.MainForm-3.3.dll - False - - - ..\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll - False - ..\bin\HeuristicLab.Operators-3.3.dll False @@ -243,14 +167,6 @@ ..\bin\HeuristicLab.Optimization.Operators-3.3.dll False - - ..\bin\HeuristicLab.Optimization.Views-3.3.dll - False - - - ..\bin\HeuristicLab.Optimizer-3.3.dll - False - ..\bin\HeuristicLab.ParallelEngine-3.3.dll False @@ -304,26 +220,6 @@ ..\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis-3.4.dll False - - False - ..\bin\HeuristicLab.Problems.DataAnalysis.Symbolic.Views-3.4.dll - False - - - False - ..\bin\HeuristicLab.Problems.ExternalEvaluation-3.4.dll - False - - - False - ..\bin\HeuristicLab.Problems.ExternalEvaluation.GP-3.5.dll - False - - - False - ..\bin\HeuristicLab.Problems.ExternalEvaluation.Views-3.4.dll - False - False ..\bin\HeuristicLab.Problems.GeneticProgramming-3.3.dll @@ -346,11 +242,6 @@ ..\bin\HeuristicLab.Problems.Instances.DataAnalysis-3.3.dll False - - False - ..\bin\HeuristicLab.Problems.Instances.DIMACS-3.3.dll - False - ..\bin\HeuristicLab.Problems.Instances.ElloumiCTAP-3.3.dll False @@ -375,19 +266,8 @@ ..\bin\HeuristicLab.Problems.LinearAssignment-3.3.dll False - - False + ..\bin\HeuristicLab.Problems.Programmable-3.3.dll - False - - - False - ..\bin\HeuristicLab.Problems.Programmable.Views-3.3.dll - False - - - ..\bin\HeuristicLab.Problems.Orienteering-3.3.dll - False False @@ -425,7 +305,6 @@ ..\bin\HeuristicLab.Scripting-3.3.dll - False ..\bin\HeuristicLab.Selection-3.3.dll @@ -439,17 +318,6 @@ ..\bin\LibSVM-3.12.dll False - - - false - - - - 3.5 - - - - @@ -457,253 +325,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - ScriptSources.resx - - - - - - + Always - + Always - + Always - + Always - + Always - + Always - + Always - - + Designer - - + PreserveNewest - + PreserveNewest - + PreserveNewest @@ -719,26 +373,10 @@ - - ResXFileCodeGenerator - ScriptSources.Designer.cs - HeuristicLab.Tests - - - - - False - ..\..\bin\HEAL.Attic.dll - False - + + + + + - - - \ No newline at end of file diff --git a/HeuristicLab.Tracing/3.3/HeuristicLab.Tracing-3.3.csproj b/HeuristicLab.Tracing/3.3/HeuristicLab.Tracing-3.3.csproj index 04ade4f3f8..7c3e8190d9 100644 --- a/HeuristicLab.Tracing/3.3/HeuristicLab.Tracing-3.3.csproj +++ b/HeuristicLab.Tracing/3.3/HeuristicLab.Tracing-3.3.csproj @@ -1,25 +1,10 @@ - - + - Debug - AnyCPU - 9.0.30729 - 2.0 - {EE2034D9-6E27-48A1-B855-42D45F69A4FC} + netstandard2.0 Library - Properties HeuristicLab.Tracing - HeuristicLab.Tracing-3.3 - v4.7.2 - - - 512 true HeuristicLab.snk - - - 3.5 - publish\ true Disk @@ -35,105 +20,42 @@ false false true + false + + + false - true - full - false $(SolutionDir)\bin\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - pdbonly - true $(SolutionDir)\bin\ - TRACE - prompt - 4 - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x64 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x64 - prompt - - - AllRules.ruleset - false + - true $(SolutionDir)\bin\ - DEBUG;TRACE - full - x86 - prompt - AllRules.ruleset - false $(SolutionDir)\bin\ - TRACE - true - pdbonly - x86 - prompt - - - AllRules.ruleset - false + - - - 3.5 - - + 3.5 - + 3.5 - - - - - - - - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - - - - - + @@ -152,27 +74,7 @@ true - - - - set Path=%25Path%25;$(ProjectDir);$(SolutionDir) -set ProjectDir=$(ProjectDir) -set SolutionDir=$(SolutionDir) -set Outdir=$(Outdir) - -call PreBuildEvent.cmd - - -export ProjectDir=$(ProjectDir) -export SolutionDir=$(SolutionDir) - -$SolutionDir/PreBuildEvent.sh - - + + + \ No newline at end of file diff --git a/HeuristicLab.Visualization.ChartControlsExtensions/3.3/HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj b/HeuristicLab.Visualization.ChartControlsExtensions/3.3/HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj index 0009163fc5..7b36171b01 100644 --- a/HeuristicLab.Visualization.ChartControlsExtensions/3.3/HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj +++ b/HeuristicLab.Visualization.ChartControlsExtensions/3.3/HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj @@ -50,7 +50,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -67,7 +66,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -84,7 +82,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets true ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -101,7 +98,6 @@ true GlobalSuppressions.cs prompt - MinimumRecommendedRules.ruleset ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets false ;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules @@ -109,9 +105,31 @@ false + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -144,6 +162,7 @@ + diff --git a/HeuristicLab.Visualization.ChartControlsExtensions/3.3/packages.config b/HeuristicLab.Visualization.ChartControlsExtensions/3.3/packages.config new file mode 100644 index 0000000000..64621f9b83 --- /dev/null +++ b/HeuristicLab.Visualization.ChartControlsExtensions/3.3/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/HeuristicLab/3.3/HeuristicLab-3.3.csproj b/HeuristicLab/3.3/HeuristicLab-3.3.csproj index a33314fc73..d4f69fd49d 100644 --- a/HeuristicLab/3.3/HeuristicLab-3.3.csproj +++ b/HeuristicLab/3.3/HeuristicLab-3.3.csproj @@ -48,7 +48,6 @@ DEBUG;TRACE prompt 4 - AllRules.ruleset false @@ -60,7 +59,6 @@ 4 - AllRules.ruleset false @@ -70,7 +68,6 @@ full x86 prompt - AllRules.ruleset false @@ -82,7 +79,6 @@ prompt - AllRules.ruleset false @@ -92,7 +88,6 @@ full x64 prompt - AllRules.ruleset false @@ -104,17 +99,38 @@ prompt - AllRules.ruleset false app.manifest + + ..\..\packages\Google.Protobuf.3.15.0\lib\net45\Google.Protobuf.dll + + + ..\..\packages\HEAL.Attic.1.7.0\lib\net461\HEAL.Attic.dll + + + ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + 3.5 + + ..\..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll + + + ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + 3.5 @@ -147,6 +163,7 @@ Designer + SettingsSingleFileGenerator @@ -158,13 +175,6 @@ True - - - {94186A6A-5176-4402-AE83-886557B53CCA} - HeuristicLab.PluginInfrastructure-3.3 - False - - Always @@ -191,6 +201,12 @@ true + + + {d2b1d7d0-cbef-4640-9449-b1dd88b3639a} + HeuristicLab.PluginInfrastructure.Extension-3.3 + +