some changes in CLIApplication.cs to reduce unnecessary allocation of string objects
renamed AppTest to ConsoleOptimizer and fixed race condition
replaced enum RunnerJob with class RunnerMessage for more control of saved data
changed usage of BinaryFormatter with HEAL.Attic, following types are now Storable:
ConsoleOptimizer
InspectApplication
ApplicationBase
ApplicationRunner
AssemblyInfo
Runner
UniPath
RunnerMessage
switched QuietMode from ApplicationRunner to IRunner
DockerRunnerHost can now automatically build docker images for linux and windows containers (also identifies which container type is active) -> removes the condition to have the image preinstalled
to achieve this, there are two new folders DockerLinuxBuild and DockerWindowsBuild included in build output, which include Dockerfiles to build images for linux and windows container
added NuGet package System.CodeDom to project HeuristicLab.Scripting-3.3
added method Send(RunnerMessage) to IRunnerHost and transferred methods Pause and Resume to IRunner
added internal reference of RunnerHost in Runner
added abstract method SendMessage(RunnerMessage) in RunnerHost which gets called from method Send(RunnerMessage)
because of a Google.Protobuf "bug", RunnerMessages cannot get serialized/deserialized directly on stream -> workaround with a byte array, which gets written and read
additionally, the length of the array gets sent first (length as integer -> 4 bytes)
static method in RunnerMessage to read a message from a stream
the method SendMessage(RunnerMessage) in RunnerHost implements this functionality