diff --git a/.gitignore b/.gitignore
index 5c48cf62f21bca0f46210f68a359504ee38a4334..72796d4a54028f06a6353940ef47c94715dda9fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,4 @@
-VECTO/bin/
-VECTO/obj/
-
+Deploy/
 ## From github on 15/5/2014: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
 
 ## Ignore Visual Studio temporary files, build results, and
diff --git a/Directory.Build.props b/Directory.Build.props
index 3060a912ecdac3e011def47647c8645dc8de38a2..66aad6e011287d7d8d5410ddfd21a658c71c572d 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -21,6 +21,7 @@
     <Deterministic>true</Deterministic>
     <PublishTrimmed>true</PublishTrimmed>
     <IsTrimmable>true</IsTrimmable>
+    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
   </PropertyGroup>
 
   <PropertyGroup>
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 609a97e68f9dd312ebb78bba3649c371153a11a6..ea10e09d417edc72bd23e20ae2535b92fcb725cd 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -1,48 +1,5 @@
 <Project DefaultTargets = "Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
-	<!--<Target Name="VersionMessage" AfterTargets="build">
-        <Message Text="$(AssemblyName) -> $(Version)" importance="high"/>
-    </Target>-->
-	<UsingTask TaskName="Zip" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
-		<ParameterGroup>
-			<OutputFilename ParameterType="System.String" Required="true" />
-			<Files ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
-			<SourcePath ParameterType="System.String" Required="true"/>
-			<DestinationPath ParameterType="System.String" Required="true"/>
-		</ParameterGroup>
-		<Task>
-			<Reference Include="System.IO.Compression" />
-			<Using Namespace="System.IO.Compression" />
-			<Code Type="Fragment" Language="cs">
-				<![CDATA[
-      try
-      {
-        using (Stream zipStream = new FileStream(Path.GetFullPath(OutputFilename), FileMode.Create, FileAccess.Write))
-        using (ZipArchive archive = new ZipArchive(zipStream, ZipArchiveMode.Create))
-        {
-            foreach (ITaskItem fileItem in Files)
-            {
-                string filename = fileItem.ItemSpec;
-                using (Stream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
-				using (Stream fileStreamInZip = archive.CreateEntry(fileItem.ItemSpec.Replace(SourcePath, DestinationPath)).Open())
-                    fileStream.CopyTo(fileStreamInZip);
-            }
-        }
-        return true;
-      }
-      catch (Exception ex)
-      {
-        Log.LogErrorFromException(ex);
-        return false;
-      }
-    ]]>
-			</Code>
-		</Task>
-	</UsingTask>
-
-	<Target Name="GenerateReleasenotesPDF" BeforeTargets="AfterBuild"  Condition="$(Configuration) == 'Deploy'">
-		<Message Text="Generating Release Notes PDF"/>
-		<Exec Command="cscript &quot;$(solutiondir)documentation\user manual source\convertpptxtopdf.vbs&quot; &quot;$(solutiondir)documentation\user manual source\release notes vecto3.x.pptx&quot; &quot;$(solutiondir)documentation\user manual source\release notes vecto3.x.pdf&quot;"/>
-	</Target>
+	
 	<!-- 
 <Target Name="GenerateHelpHTML" BeforeTargets="AfterBuild"  Condition="$(Configuration) == 'Deploy'">
 	<Message Text="Generating Help"/>
@@ -51,21 +8,95 @@
  </Target>   
  -->
 
-	<Target Name="AfterBuild" Condition="$(Configuration) == 'Deploy'">
+	<Target Name="AfterBuild" Condition="'$(Configuration)'=='Deploy'">
+
+		<Exec Command="cscript &quot;$(solutiondir)documentation\user manual source\convertpptxtopdf.vbs&quot; &quot;$(solutiondir)documentation\user manual source\release notes vecto3.x.pptx&quot; &quot;$(solutiondir)documentation\user manual source\release notes vecto3.x.pdf&quot;"/>
+		<PropertyGroup>
+			<CurrentDate>$([System.DateTime]::Now.ToString(yyy_MM_dd))</CurrentDate>
+			<DeployPath>$(SolutionDir)Deploy\</DeployPath>
+		</PropertyGroup>
+  	<RemoveDir Directories="$(SolutionDir)Deploy" Condition="Exists('$(SolutionDir)Deploy')"/>
+		<MakeDir Directories="$(DeployPath)"/>
+
+		<ItemGroup>
+			<!-- All files for net45 -->
+			<Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\*.exe*"/>
+			<Net45VECTO Include="$(SolutionDir)VECTO\bin\Release\net45\*.dll*"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.exe*"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\*.dll*"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.exe*"/>
+			<Net45HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\*.dll*"/>
+			<Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\*.exe*"/>
+			<Net45VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\*.dll*"/>
+		</ItemGroup>
+		<Copy SourceFiles="@(Net45VectoCommandLine)" DestinationFolder="$(DeployPath)net45"/>
+		<Copy SourceFiles="@(Net45HashingTool)" DestinationFolder="$(DeployPath)net45"/>
+		<Copy SourceFiles="@(Net45VECTO)" DestinationFolder="$(DeployPath)net45"/>
+
+		<ItemGroup>
+			<!-- All files for net48 -->
+			<Net48VECTO Include="$(SolutionDir)VECTO\bin\Release\net48\*.exe*"/>
+			<Net48VECTO Include="$(SolutionDir)VECTO\bin\Release\net48\*.dll*"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.exe*"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net48\*.dll*"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.exe*"/>
+			<Net48HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net48\*.dll*"/>
+			<Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net48\*.exe*"/>
+			<Net48VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net48\*.dll*"/>
+			<Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net48\*.exe*"/>
+			<Net48VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net48\*.dll*"/>
+		</ItemGroup>
+		<Copy SourceFiles="@(Net48VectoCommandLine)" DestinationFolder="$(DeployPath)net48"/>
+		<Copy SourceFiles="@(Net48HashingTool)" DestinationFolder="$(DeployPath)net48"/>
+		<Copy SourceFiles="@(Net48VectoMultistage)" DestinationFolder="$(DeployPath)net48"/>
+		<Copy SourceFiles="@(Net48VECTO)" DestinationFolder="$(DeployPath)net48"/>
+
+		<ItemGroup>
+			<!-- All files for net5.0 -->
+			<Vecto Include="$(SolutionDir)VECTO\bin\Release\net5.0-windows\VECTO.*" Exclude="*.dev.json"/>
+			<Vecto Include="$(SolutionDir)VECTO\bin\Release\net5.0-windows\*.dll"/>
+			<Vecto Include="$(SolutionDir)VECTO\bin\Release\net5.0-windows\runtimes\**\*.*"/>
+			<VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net5.0\vectocmd.*" Exclude="*.dev.json"/>
+			<VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net5.0\*.dll"/>
+			<VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net5.0\runtimes\**\*.*"/>
+			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net5.0-windows\HashingTool.*" Exclude="*.dev.json"/>
+			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net5.0-windows\*.dll"/>
+			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net5.0-windows\runtimes\**\*.*"/>
+			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net5.0\hashingcmd.*" Exclude="*.dev.json"/>
+			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net5.0\*.dll"/>
+			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net5.0\runtimes\**\*.*"/>
+			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net5.0-windows\VECTOMultistage.*" Exclude="*.dev.json"/>
+			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net5.0-windows\*.dll"/>
+			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net5.0-windows\runtimes\**\*.*"/>
+		</ItemGroup>
+		<Copy SourceFiles="@(HashingTool)" DestinationFolder="$(DeployPath)net50"/>
+		<Copy SourceFiles="@(VectoMultistage)" DestinationFolder="$(DeployPath)net50"/>
+		<Copy SourceFiles="@(VectoCommandLine)" DestinationFolder="$(DeployPath)net50"/>
+		<Copy SourceFiles="@(Vecto)" DestinationFolder="$(DeployPath)net50"/>
+
 		<ItemGroup>
-			<VectoCoreAssembly Include="$(OutputPath)VectoCore.dll" />
-			<VectoCommandLine Include="$(SolutionDir)VectoConsole\bin\Release\net45\vectocmd.exe*"/>
+			<!-- All files for the VECTO starters -->
+			<VectoStart Include="$(SolutionDir)Tools\VECTOStart\bin\Deploy\net45\VECTO.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\VECTOMultistageStart\bin\Release\net45\VECTOMultistage.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\HashingCmdStart\bin\Release\net45\hashingcmd.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\HashingToolStart\bin\Release\net45\HashingTool.exe" />
+			<VectoStart Include="$(SolutionDir)Tools\VECTOConsoleStart\bin\Release\net45\vectocmd.exe" />
+		</ItemGroup>
+		<Copy SourceFiles="@(VectoStart)" DestinationFolder="$(DeployPath)"/>
 
+		<ItemGroup>
+			<!-- General Files -->
+			<VectoConfigurationSample Include="$(SolutionDir)VECTO\install.ini"/>
 			<GenericVehicles Include="$(SolutionDir)Generic Vehicles\**\*.*" Exclude="$(SolutionDir)**\*.vmod;$(SolutionDir)**\*.vsum;$(SolutionDir)**\*RSLT_*.xml;$(SolutionDir)**\*.pdf"/>
 			<MissionProfiles Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.csv" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.vacc" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.apac" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.aenv" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.aaux" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.ahsm" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.acmp" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
-			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**/*.vmap" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.csv" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.vacc" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.apac" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.aenv" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.aaux" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.ahsm" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.acmp" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
+			<DeclarationData Include="$(SolutionDir)VectoCore\VectoCore\Resources\Declaration\**\*.vmap" Exclude="$(SolutionDir)**\MissionCycles\**\*.*"/>
 			<VectoXSD Include="$(SolutionDir)VectoCore\VectoCore\Resources\XSD\**\*.*" Exclude="$(SolutionDir)**\*Engineering*"/>
 			<VectoXMLExamples Include="$(SolutionDir)VectoCore\VectoCoreTest\TestData\XML\XMLReaderDeclaration\*-sample.xml"/>
 			<UserManual Include="$(SolutionDir)Documentation\User Manual\help.html"/>
@@ -75,70 +106,22 @@
 			<UserManual Include="$(SolutionDir)Documentation\User Manual Source\JIRA Quick Start Guide.pdf"/>
 			<UserManual Include="$(SolutionDir)Documentation\Cdv_Generator_VECTO3.2.xlsx"/>
 			<ReleaseNotes Include="$(SolutionDir)Documentation\User Manual Source\Release Notes Vecto3.x.pdf"/>
-
-			<HashingTool Include="$(SolutionDir)HashingTool\bin\Release\net45\HashingTool.exe"/>
-			<HashingTool Include="$(SolutionDir)HashingCmd\bin\Release\net45\hashingcmd.exe"/>
-
-			<VectoConfigurationSample Include="$(SolutionDir)VECTO\install.ini"/>
-
-			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net5.0-windows\VECTOMultistage.exe*"/>
-			<VectoMultistage Include="$(SolutionDir)VECTO3GUI2020\bin\Release\net5.0-windows\*.dll"/>
 		</ItemGroup>
-
-		<Message Text="@(VectoCommandLine)"/>
-		<Copy SourceFiles="@(VectoCommandLine)" DestinationFolder="$(OutputPath)"/>
-		<Copy SourceFiles="@(VectoMultistage)" DestinationFolder="$(OutputPath)"/>
-		<Copy SourceFiles="@(HashingTool)" DestinationFolder="$(OutputPath)"/>
-		<Copy SourceFiles="@(GenericVehicles)" DestinationFiles="@(GenericVehicles->'$(OutputPath)\Generic Vehicles\%(RecursiveDir)%(Filename)%(Extension)')" />
-		<Copy SourceFiles="@(DeclarationData)" DestinationFolder="$(OutputPath)\Declaration" />
-		<Copy SourceFiles="@(MissionProfiles)" DestinationFolder="$(OutputPath)\Mission Profiles" />
-		<Copy SourceFiles="@(VectoXMLExamples)" DestinationFolder="$(OutputPath)\XML\Examples" />
-		<Copy SourceFiles="@(VectoXSD)" DestinationFolder="$(OutputPath)\XML\XSD" />
-		<Copy SourceFiles="@(UserManual)" DestinationFolder="$(OutputPath)\User Manual" />
-		<Copy SourceFiles="@(ReleaseNotes)" DestinationFiles="$(OutputPath)\User Manual\Release Notes.pdf" />
-		<Copy SourceFiles="@(VectoConfigurationSample)" DestinationFolder="$(OutputPath)"/>
-		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Mission Profiles Directory.txt" DestinationFiles="$(OutputPath)\Mission Profiles\!! README !!.TXT"/>
-		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Declaration Directory.txt" DestinationFiles="$(OutputPath)\Declaration\!! README !!.TXT"/>
-		<ItemGroup>
-			<ZipFiles Include="$(OutputPath)Declaration\**\*.*" />
-			<ZipFiles Include="$(OutputPath)Generic Vehicles\**\*.*" />
-			<ZipFiles Include="$(OutputPath)Mission Profiles\**\*.*" />
-			<ZipFiles Include="$(OutputPath)User Manual\**\*.*" />
-			<ZipFiles Include="$(OutputPath)XML\**\*.*" />
-		</ItemGroup>
-
-		<GetAssemblyIdentity  AssemblyFiles="@(VectoCoreAssembly)">
-			<Output  TaskParameter="Assemblies"  ItemName="VectoAssemblyIdentities"  />
-		</GetAssemblyIdentity>
-		<ItemGroup>
-			<ZipFiles Include="$(OutputPath)*.dll" />
-			<ZipFiles Include="$(OutputPath)*.ini" />
-			<ZipFiles Include="$(OutputPath)VECTO.exe*" />
-			<ZipFiles Include="$(OutputPath)VECTOMultistage.exe*" />
-			<ZipFiles Include="$(OutputPath)vectocmd.exe*"/>
-			<!-- <ZipFiles Include="$(OutputPath)VECTO3.exe*" /> -->
-			<ZipFiles Include="$(OutputPath)HashingTool.exe*"/>
-			<ZipFiles Include="$(OutputPath)hashingcmd.exe*"/>
-		</ItemGroup>
-		<PropertyGroup>
-			<CurrentDate>$([System.DateTime]::Now.ToString(yyy_MM_dd))</CurrentDate>
-		</PropertyGroup>
-		<Message Text="Creating ZIP, CurrentDate: $(CurrentDate)"/>
-		<Zip OutputFilename="$(SolutionDir)$(CurrentDate)-VECTO-%(VectoAssemblyIdentities.Version)-$(TargetFramework).zip" Files="@(ZipFiles)" SourcePath="$(OutputPath)" DestinationPath="$(CurrentDate)-VECTO-%(VectoAssemblyIdentities.Version)\"/>
+		<Copy SourceFiles="@(GenericVehicles)" DestinationFiles="@(GenericVehicles->'$(DeployPath)Generic Vehicles\%(RecursiveDir)%(Filename)%(Extension)')" />
+		<Copy SourceFiles="@(DeclarationData)" DestinationFolder="$(DeployPath)Declaration" />
+		<Copy SourceFiles="@(MissionProfiles)" DestinationFolder="$(DeployPath)Mission Profiles" />
+		<Copy SourceFiles="@(VectoXMLExamples)" DestinationFolder="$(DeployPath)XML\Examples" />
+		<Copy SourceFiles="@(VectoXSD)" DestinationFolder="$(DeployPath)XML\XSD" />
+		<Copy SourceFiles="@(UserManual)" DestinationFolder="$(DeployPath)User Manual" />
+		<Copy SourceFiles="@(ReleaseNotes)" DestinationFiles="$(DeployPath)User Manual\Release Notes.pdf" />
+		<Copy SourceFiles="@(VectoConfigurationSample)" DestinationFolder="$(DeployPath)"/>
+		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Mission Profiles Directory.txt" DestinationFiles="$(DeployPath)Mission Profiles\!! README !!.TXT"/>
+		<Copy SourceFiles="$(SolutionDir)\Documentation\User Manual Source\README for Declaration Directory.txt" DestinationFiles="$(DeployPath)Declaration\!! README !!.TXT"/>
+		<ZipDirectory SourceDirectory="$(DeployPath)" DestinationFile="$(SolutionDir)$(CurrentDate)-VECTO-$(Version).zip" Overwrite="true"/>
 	</Target>
 
-	<Target Name="CleanVectoDeploy" AfterTargets="AfterClean">
-		<ItemGroup>
-			<CustomFilesToClean Include="$(OutputPath)Declaration\**\*.*" />
-			<CustomFilesToClean Include="$(OutputPath)Generic Vehicles\**\*.*" />
-			<CustomFilesToClean Include="$(OutputPath)Mission Profiles\**\*.*" />
-			<CustomFilesToClean Include="$(OutputPath)User Manual\**\*.*" />
-			<CustomFilesToClean Include="$(OutputPath)XML\**\*.*" />
-			<CustomFoldersToClean Include="%(CustomFilesToClean.RootDir)%(CustomFilesToClean.Directory)"/>
-		</ItemGroup>
-		<!-- <Message Text="@(CustomFilesToClean)" Importance="normal"/> -->
-		<!-- <Message Text="@(CustomFoldersToClean)" Importance="normal"/> -->
-		<Delete Files="@CustomFilesToClean"/>
-		<RemoveDir Directories="@(CustomFoldersToClean)"/>
+	<Target Name="CleanVectoDeploy" AfterTargets="Clean">
+		<RemoveDir Directories="$(SolutionDir)Deploy" Condition="Exists('$(SolutionDir)Deploy')"/>
+		<Delete Files="$(SolutionDir)$(CurrentDate)-VECTO-$(Version).zip" Condition="Exists('$(SolutionDir)$(CurrentDate)-VECTO-$(Version).zip')"/>
 	</Target>
 </Project>
\ No newline at end of file
diff --git a/VECTOStart/VECTOStart.csproj b/Tools/HashingCmdStart/HashingCmdStart.csproj
similarity index 73%
rename from VECTOStart/VECTOStart.csproj
rename to Tools/HashingCmdStart/HashingCmdStart.csproj
index 7147ab5c96ddcb7fc49ccd479786bfb3012a278d..013a946dd3d53283987ca56f629d0986c0658944 100644
--- a/VECTOStart/VECTOStart.csproj
+++ b/Tools/HashingCmdStart/HashingCmdStart.csproj
@@ -4,11 +4,12 @@
     <OutputType>Exe</OutputType>
     <TargetFrameworks />
     <TargetFramework>net45</TargetFramework>
-    <AssemblyName>VECTO</AssemblyName>
-    <ApplicationIcon>Icon2.ico</ApplicationIcon>
+    <AssemblyName>hashingcmd</AssemblyName>
+    <ApplicationIcon></ApplicationIcon>
     <PackageIconUrl />
     <RootNamespace>TUGraz.VECTO</RootNamespace>
-    <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
+    <ApplicationIcon>Icon2.ico</ApplicationIcon>
+    <StartupObject />
   </PropertyGroup>
 
 </Project>
diff --git a/VECTOStart/Icon2.ico b/Tools/HashingCmdStart/Icon2.ico
similarity index 100%
rename from VECTOStart/Icon2.ico
rename to Tools/HashingCmdStart/Icon2.ico
diff --git a/VECTOStart/Program.cs b/Tools/HashingCmdStart/Program.cs
similarity index 53%
rename from VECTOStart/Program.cs
rename to Tools/HashingCmdStart/Program.cs
index 98ffa01c5717c3e5c277e3e13360e94991c6bbad..f2b7ce9a75fcc600e171ea34fdd016e4923ea334 100644
--- a/VECTOStart/Program.cs
+++ b/Tools/HashingCmdStart/Program.cs
@@ -1,6 +1,8 @@
 using System;
 using Microsoft.Win32;
 using System.Diagnostics;
+using System.Reflection;
+using System.IO;
 
 namespace TUGraz.VECTO
 {
@@ -9,21 +11,18 @@ namespace TUGraz.VECTO
 		static void Main()
 		{
 			var version = GetHighestNETVersion();
-			try {
-				Process.Start(new ProcessStartInfo($"{version}\\VECTO.exe") { CreateNoWindow = true });
-			} catch (Exception e) {
-				Console.WriteLine($"Could not start VECTO with {version}: {e.Message}");
-				Console.ReadKey();
-			}
+			Process.Start(new ProcessStartInfo($"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe") {
+				WorkingDirectory = Directory.GetCurrentDirectory()
+			});
 		}
 
 		private static string GetHighestNETVersion()
 		{
 			if (SupportsNet50()) {
-				return "net5.0";
-			} 
-			
-			if (SupportsNET48()) {
+				return "net50";
+			}
+
+			if (SupportsNet48()) {
 				return "net48";
 			}
 
@@ -32,20 +31,25 @@ namespace TUGraz.VECTO
 
 		private static bool SupportsNet50()
 		{
-			var p = Process.Start(new ProcessStartInfo("dotnet", "--list-runtimes") {
-				CreateNoWindow = true,
-				UseShellExecute = false,
-				RedirectStandardError = true,
-				RedirectStandardOutput = true
+			try {
+				var p = Process.Start(new ProcessStartInfo("dotnet", "--list-runtimes") {
+					CreateNoWindow = true,
+					UseShellExecute = false,
+					RedirectStandardError = true,
+					RedirectStandardOutput = true
+				});
+
+				p.WaitForExit();
+				var output = p.StandardOutput.ReadToEnd();
+				return output.Contains("Microsoft.WindowsDesktop.App 5.0");
+			} catch (Exception e) {
+				Console.WriteLine(e);
 			}
-			);
 
-			p.WaitForExit();
-			var output = p.StandardOutput.ReadToEnd();
-			return output.Contains("Microsoft.WindowsDesktop.App 5.0");
+			return false;
 		}
 
-		private static bool SupportsNET48()
+		private static bool SupportsNet48()
 		{
 			const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
 			using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) {
diff --git a/Tools/HashingToolStart/HashingToolStart.csproj b/Tools/HashingToolStart/HashingToolStart.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..e1ab2b9c979c018f53bf7777cef43762b1d4c60d
--- /dev/null
+++ b/Tools/HashingToolStart/HashingToolStart.csproj
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFrameworks />
+    <TargetFramework>net45</TargetFramework>
+    <AssemblyName>HashingTool</AssemblyName>
+    <ApplicationIcon>Icon2.ico</ApplicationIcon>
+    <PackageIconUrl />
+    <RootNamespace>TUGraz.VECTO</RootNamespace>
+    <StartupObject />
+  </PropertyGroup>
+
+</Project>
diff --git a/Tools/HashingToolStart/Icon2.ico b/Tools/HashingToolStart/Icon2.ico
new file mode 100644
index 0000000000000000000000000000000000000000..6de7e5cd7ef1e97f70d64cb3eeaa2b7fcc8d604f
Binary files /dev/null and b/Tools/HashingToolStart/Icon2.ico differ
diff --git a/Tools/HashingToolStart/Program.cs b/Tools/HashingToolStart/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f2b7ce9a75fcc600e171ea34fdd016e4923ea334
--- /dev/null
+++ b/Tools/HashingToolStart/Program.cs
@@ -0,0 +1,65 @@
+using System;
+using Microsoft.Win32;
+using System.Diagnostics;
+using System.Reflection;
+using System.IO;
+
+namespace TUGraz.VECTO
+{
+	class Program
+	{
+		static void Main()
+		{
+			var version = GetHighestNETVersion();
+			Process.Start(new ProcessStartInfo($"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe") {
+				WorkingDirectory = Directory.GetCurrentDirectory()
+			});
+		}
+
+		private static string GetHighestNETVersion()
+		{
+			if (SupportsNet50()) {
+				return "net50";
+			}
+
+			if (SupportsNet48()) {
+				return "net48";
+			}
+
+			return "net45";
+		}
+
+		private static bool SupportsNet50()
+		{
+			try {
+				var p = Process.Start(new ProcessStartInfo("dotnet", "--list-runtimes") {
+					CreateNoWindow = true,
+					UseShellExecute = false,
+					RedirectStandardError = true,
+					RedirectStandardOutput = true
+				});
+
+				p.WaitForExit();
+				var output = p.StandardOutput.ReadToEnd();
+				return output.Contains("Microsoft.WindowsDesktop.App 5.0");
+			} catch (Exception e) {
+				Console.WriteLine(e);
+			}
+
+			return false;
+		}
+
+		private static bool SupportsNet48()
+		{
+			const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
+			using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) {
+				if (ndpKey != null && ndpKey.GetValue("Release") != null) {
+					var releaseKey = (int)ndpKey.GetValue("Release");
+					return releaseKey >= 528040;
+				}
+
+				return false;
+			}
+		}
+	}
+}
diff --git a/Tools/VECTOConsoleStart/Icon2.ico b/Tools/VECTOConsoleStart/Icon2.ico
new file mode 100644
index 0000000000000000000000000000000000000000..6de7e5cd7ef1e97f70d64cb3eeaa2b7fcc8d604f
Binary files /dev/null and b/Tools/VECTOConsoleStart/Icon2.ico differ
diff --git a/Tools/VECTOConsoleStart/Program.cs b/Tools/VECTOConsoleStart/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..f2b7ce9a75fcc600e171ea34fdd016e4923ea334
--- /dev/null
+++ b/Tools/VECTOConsoleStart/Program.cs
@@ -0,0 +1,65 @@
+using System;
+using Microsoft.Win32;
+using System.Diagnostics;
+using System.Reflection;
+using System.IO;
+
+namespace TUGraz.VECTO
+{
+	class Program
+	{
+		static void Main()
+		{
+			var version = GetHighestNETVersion();
+			Process.Start(new ProcessStartInfo($"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe") {
+				WorkingDirectory = Directory.GetCurrentDirectory()
+			});
+		}
+
+		private static string GetHighestNETVersion()
+		{
+			if (SupportsNet50()) {
+				return "net50";
+			}
+
+			if (SupportsNet48()) {
+				return "net48";
+			}
+
+			return "net45";
+		}
+
+		private static bool SupportsNet50()
+		{
+			try {
+				var p = Process.Start(new ProcessStartInfo("dotnet", "--list-runtimes") {
+					CreateNoWindow = true,
+					UseShellExecute = false,
+					RedirectStandardError = true,
+					RedirectStandardOutput = true
+				});
+
+				p.WaitForExit();
+				var output = p.StandardOutput.ReadToEnd();
+				return output.Contains("Microsoft.WindowsDesktop.App 5.0");
+			} catch (Exception e) {
+				Console.WriteLine(e);
+			}
+
+			return false;
+		}
+
+		private static bool SupportsNet48()
+		{
+			const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
+			using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) {
+				if (ndpKey != null && ndpKey.GetValue("Release") != null) {
+					var releaseKey = (int)ndpKey.GetValue("Release");
+					return releaseKey >= 528040;
+				}
+
+				return false;
+			}
+		}
+	}
+}
diff --git a/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj b/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..982de63cbee3d26c830d20db16f7b8e4d74dd93a
--- /dev/null
+++ b/Tools/VECTOConsoleStart/VECTOConsoleStart.csproj
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFrameworks />
+    <TargetFramework>net45</TargetFramework>
+    <AssemblyName>vectocmd</AssemblyName>
+    <ApplicationIcon>Icon2.ico</ApplicationIcon>
+    <PackageIconUrl />
+    <RootNamespace>TUGraz.VECTO</RootNamespace>
+    <StartupObject />
+  </PropertyGroup>
+
+</Project>
diff --git a/Tools/VECTOMultistageStart/Icon2.ico b/Tools/VECTOMultistageStart/Icon2.ico
new file mode 100644
index 0000000000000000000000000000000000000000..6de7e5cd7ef1e97f70d64cb3eeaa2b7fcc8d604f
Binary files /dev/null and b/Tools/VECTOMultistageStart/Icon2.ico differ
diff --git a/Tools/VECTOMultistageStart/Program.cs b/Tools/VECTOMultistageStart/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..d200b44ac9db780dc3c801eefe0fa0768a147a1a
--- /dev/null
+++ b/Tools/VECTOMultistageStart/Program.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
+
+namespace TUGraz.VECTO
+{
+	class Program
+	{
+		static void Main()
+		{
+			var version = GetHighestNETVersion();
+			Process.Start(new ProcessStartInfo($"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe") {
+				WorkingDirectory = Directory.GetCurrentDirectory()
+			});
+		}
+
+		private static string GetHighestNETVersion()
+		{
+			if (SupportsNet50()) {
+				return "net50";
+			}
+
+			return "net48";
+		}
+
+		private static bool SupportsNet50()
+		{
+			try {
+				var p = Process.Start(new ProcessStartInfo("dotnet", "--list-runtimes") {
+					CreateNoWindow = true,
+					UseShellExecute = false,
+					RedirectStandardError = true,
+					RedirectStandardOutput = true
+				});
+
+				p.WaitForExit();
+				var output = p.StandardOutput.ReadToEnd();
+				return output.Contains("Microsoft.WindowsDesktop.App 5.0");
+			} catch (Exception e) {
+				Console.WriteLine(e);
+			}
+
+			return false;
+		}
+	}
+}
diff --git a/Tools/VECTOMultistageStart/VECTOMultistage.csproj b/Tools/VECTOMultistageStart/VECTOMultistage.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..54da44a4285db2c2d8b57e5163f55f2d4526a7f0
--- /dev/null
+++ b/Tools/VECTOMultistageStart/VECTOMultistage.csproj
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFrameworks />
+    <TargetFramework>net45</TargetFramework>
+    <AssemblyName>VECTOMultistage</AssemblyName>
+    <ApplicationIcon>Icon2.ico</ApplicationIcon>
+    <PackageIconUrl />
+    <RootNamespace>TUGraz.VECTO</RootNamespace>
+    <StartupObject />
+  </PropertyGroup>
+
+</Project>
diff --git a/Tools/VECTOStart/Icon2.ico b/Tools/VECTOStart/Icon2.ico
new file mode 100644
index 0000000000000000000000000000000000000000..6de7e5cd7ef1e97f70d64cb3eeaa2b7fcc8d604f
Binary files /dev/null and b/Tools/VECTOStart/Icon2.ico differ
diff --git a/Tools/VECTOStart/Program.cs b/Tools/VECTOStart/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0cd67d633c0af56ac581968532f8afb20a43c079
--- /dev/null
+++ b/Tools/VECTOStart/Program.cs
@@ -0,0 +1,65 @@
+using System;
+using Microsoft.Win32;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
+
+namespace TUGraz.VECTO
+{
+	class Program
+	{
+		static void Main()
+		{
+			var version = GetHighestNETVersion();
+			Process.Start(new ProcessStartInfo($"{version}\\{Assembly.GetExecutingAssembly().GetName().Name}.exe") {
+				WorkingDirectory = Directory.GetCurrentDirectory()
+			});
+		}
+
+		private static string GetHighestNETVersion()
+		{
+			if (SupportsNet50()) {
+				return "net50";
+			}
+
+			if (SupportsNet48()) {
+				return "net48";
+			}
+
+			return "net45";
+		}
+
+		private static bool SupportsNet50()
+		{
+			try {
+				var p = Process.Start(new ProcessStartInfo("dotnet", "--list-runtimes") {
+					CreateNoWindow = true,
+					UseShellExecute = false,
+					RedirectStandardError = true,
+					RedirectStandardOutput = true
+				});
+
+				p.WaitForExit();
+				var output = p.StandardOutput.ReadToEnd();
+				return output.Contains("Microsoft.WindowsDesktop.App 5.0");
+			} catch (Exception e) {
+				Console.WriteLine(e);
+			}
+
+			return false;
+		}
+
+		private static bool SupportsNet48()
+		{
+			const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
+			using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey)) {
+				if (ndpKey != null && ndpKey.GetValue("Release") != null) {
+					var releaseKey = (int)ndpKey.GetValue("Release");
+					return releaseKey >= 528040;
+				}
+
+				return false;
+			}
+		}
+	}
+}
diff --git a/Tools/VECTOStart/VECTOStart.csproj b/Tools/VECTOStart/VECTOStart.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..b9d120f92629d486212300e9d1cce29d81fb482f
--- /dev/null
+++ b/Tools/VECTOStart/VECTOStart.csproj
@@ -0,0 +1,15 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>WinExe</OutputType>
+    <TargetFrameworks />
+    <TargetFramework>net45</TargetFramework>
+    <AssemblyName>VECTO</AssemblyName>
+    <ApplicationIcon>Icon2.ico</ApplicationIcon>
+    <PackageIconUrl />
+    <RootNamespace>TUGraz.VECTO</RootNamespace>
+    <Configurations>Debug;Release;Deploy</Configurations>
+    <StartupObject />
+  </PropertyGroup>
+
+</Project>
diff --git a/VECTO.sln b/VECTO.sln
index b779b7c3095969771925e50303e5df7f82fddd72..1d76fea814b93e823b575d10b4901861112dbbba 100644
--- a/VECTO.sln
+++ b/VECTO.sln
@@ -54,7 +54,50 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ParameterDocumentationTest"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ParameterDocumentation", "..\vecto-SchemaDocumentation\ParameterDocumentation\ParameterDocumentation.csproj", "{165739A9-C28D-4B82-96A9-8D063BEC22B9}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOStart", "VECTOStart\VECTOStart.csproj", "{A151C75E-471A-42EB-8FE2-296C8D9FB8F9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOStart", "Tools\VECTOStart\VECTOStart.csproj", "{D47DF5C7-CD92-4388-A18F-1620630DB437}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE} = {C5A75A10-0726-4FCA-B350-2F1694E1EABE}
+		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA} = {EF99431D-4227-44C3-B2BD-DE8AE3E672CA}
+		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C} = {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {4977BE2A-CB80-4FC0-8D1A-30EC094011B4}
+		{B673E12F-D323-4C4C-8805-9915B2C72D3D} = {B673E12F-D323-4C4C-8805-9915B2C72D3D}
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352} = {AAC0F132-0A9F-45B3-B682-77AC9B24B352}
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}
+		{9FD67139-5120-4E64-9210-DD0A070903EA} = {9FD67139-5120-4E64-9210-DD0A070903EA}
+		{083F6B3C-9529-448F-AF1D-D0889852B918} = {083F6B3C-9529-448F-AF1D-D0889852B918}
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2} = {6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}
+		{E8B0B447-1A54-4BEC-A160-AF0017000781} = {E8B0B447-1A54-4BEC-A160-AF0017000781}
+		{760C1C5B-A767-463E-BA85-F0BCFC23A550} = {760C1C5B-A767-463E-BA85-F0BCFC23A550}
+		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6} = {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}
+		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB} = {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}
+		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A} = {CD36938A-ADD9-4C65-96DA-B397CDEEA90A}
+		{33F9848E-9257-4BE2-915F-68E748AEB204} = {33F9848E-9257-4BE2-915F-68E748AEB204}
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5} = {7C364099-9B85-473A-8A42-BBEBE4798FF5}
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9} = {165739A9-C28D-4B82-96A9-8D063BEC22B9}
+		{79A066AD-69A9-4223-90F6-6ED5D2D084F4} = {79A066AD-69A9-4223-90F6-6ED5D2D084F4}
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D} = {6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}
+		{7E9172D4-07E3-4077-814E-7117AB2B3E22} = {7E9172D4-07E3-4077-814E-7117AB2B3E22}
+		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4} = {6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391}
+	EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOConsoleStart", "Tools\VECTOConsoleStart\VECTOConsoleStart.csproj", "{9FD67139-5120-4E64-9210-DD0A070903EA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391} = {60AD4DF0-6648-4374-83CB-C7A162EFB391}
+	EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HashingToolStart", "Tools\HashingToolStart\HashingToolStart.csproj", "{083F6B3C-9529-448F-AF1D-D0889852B918}"
+	ProjectSection(ProjectDependencies) = postProject
+		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A} = {E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}
+	EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HashingCmdStart", "Tools\HashingCmdStart\HashingCmdStart.csproj", "{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}"
+	ProjectSection(ProjectDependencies) = postProject
+		{33F9848E-9257-4BE2-915F-68E748AEB204} = {33F9848E-9257-4BE2-915F-68E748AEB204}
+	EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VECTOMultistage", "Tools\VECTOMultistageStart\VECTOMultistage.csproj", "{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -65,8 +108,8 @@ Global
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.ActiveCfg = Deploy|Any CPU
-		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.Build.0 = Deploy|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Deploy|Any CPU.Build.0 = Release|Any CPU
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{AAC0F132-0A9F-45B3-B682-77AC9B24B352}.Release|Any CPU.Build.0 = Release|Any CPU
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -77,12 +120,12 @@ Global
 		{CD36938A-ADD9-4C65-96DA-B397CDEEA90A}.Release|Any CPU.Build.0 = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6F31F8B2-6AB3-4F85-8AC9-D09ADCA6432D}.Release|Any CPU.Build.0 = Release|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6A27F93E-4A58-48F6-B00B-3908C5D3D5A2}.Release|Any CPU.Build.0 = Release|Any CPU
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -93,17 +136,17 @@ Global
 		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|Any CPU.Build.0 = Release|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{6589CAEC-ECC9-4BCC-9699-DE3F22BBCBD4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E8B0B447-1A54-4BEC-A160-AF0017000781}.Release|Any CPU.Build.0 = Release|Any CPU
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -114,12 +157,14 @@ Global
 		{79A066AD-69A9-4223-90F6-6ED5D2D084F4}.Release|Any CPU.Build.0 = Release|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.Release|Any CPU.Build.0 = Release|Any CPU
 		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7C364099-9B85-473A-8A42-BBEBE4798FF5}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
@@ -128,7 +173,7 @@ Global
 		{B673E12F-D323-4C4C-8805-9915B2C72D3D}.Release|Any CPU.Build.0 = Release|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550}.Release|Any CPU.Build.0 = Release|Any CPU
 		{E14FC935-30EA-4BE6-AA8A-85CB76FEBA6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -151,7 +196,7 @@ Global
 		{7E9172D4-07E3-4077-814E-7117AB2B3E22}.Release|Any CPU.Build.0 = Release|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
+		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.Release|Any CPU.Build.0 = Release|Any CPU
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -162,22 +207,46 @@ Global
 		{EF99431D-4227-44C3-B2BD-DE8AE3E672CA}.Release|Any CPU.Build.0 = Release|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
-		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.Build.0 = Debug|Any CPU
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Deploy|Any CPU.Build.0 = Release|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE}.Release|Any CPU.Build.0 = Release|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
-		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.Build.0 = Debug|Any CPU
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Deploy|Any CPU.Build.0 = Release|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A151C75E-471A-42EB-8FE2-296C8D9FB8F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A151C75E-471A-42EB-8FE2-296C8D9FB8F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A151C75E-471A-42EB-8FE2-296C8D9FB8F9}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU
-		{A151C75E-471A-42EB-8FE2-296C8D9FB8F9}.Deploy|Any CPU.Build.0 = Debug|Any CPU
-		{A151C75E-471A-42EB-8FE2-296C8D9FB8F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A151C75E-471A-42EB-8FE2-296C8D9FB8F9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Deploy|Any CPU.ActiveCfg = Deploy|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Deploy|Any CPU.Build.0 = Deploy|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D47DF5C7-CD92-4388-A18F-1620630DB437}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9FD67139-5120-4E64-9210-DD0A070903EA}.Release|Any CPU.Build.0 = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{083F6B3C-9529-448F-AF1D-D0889852B918}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Deploy|Any CPU.ActiveCfg = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Deploy|Any CPU.Build.0 = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -195,6 +264,11 @@ Global
 		{760C1C5B-A767-463E-BA85-F0BCFC23A550} = {73A5BF70-6168-456F-95E5-A1402BFA488C}
 		{C5A75A10-0726-4FCA-B350-2F1694E1EABE} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
 		{165739A9-C28D-4B82-96A9-8D063BEC22B9} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
+		{D47DF5C7-CD92-4388-A18F-1620630DB437} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
+		{9FD67139-5120-4E64-9210-DD0A070903EA} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
+		{083F6B3C-9529-448F-AF1D-D0889852B918} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
+		{4977BE2A-CB80-4FC0-8D1A-30EC094011B4} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
+		{D78AD145-DD1F-45E7-89DA-4BF58F8F2D3E} = {351FF7E8-B56B-445E-8E98-A61E07C990DA}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {B38F3172-132E-43F7-9C4B-5FDC3A28C051}
diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index 3819e88f52d9c82be36946696ff07bd7f8725894..641e216b9d5d48a37c4e68512a5d791c1248b2fa 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -10,17 +10,13 @@
     <OptionStrict>On</OptionStrict>
     <UseWindowsForms>true</UseWindowsForms>
     <MyType>WindowsForms</MyType>
-    <Configurations>Debug;Release;Deploy</Configurations>
     <DefineDebug>false</DefineDebug>
     <DefineTrace>false</DefineTrace>
     <TargetFrameworks>net45;net48;net5.0-windows</TargetFrameworks>
+    <!--<TargetFrameworks />
+    <TargetFramework>net5.0-windows</TargetFramework>-->
   </PropertyGroup>
   
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
-    <DefineDebug>false</DefineDebug>
-    <DefineTrace>false</DefineTrace>
-  </PropertyGroup>
-
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
     <PackageReference Include="NLog" Version="4.7.13" />
@@ -42,11 +38,9 @@
     <Reference Include="System.Windows.Forms.DataVisualization" />
   </ItemGroup>
 
-
-
   <ItemGroup Condition="'$(TargetFramework)'=='net5.0-windows'">
     <PackageReference Include="System.Drawing.Common" Version="6.0.0" />
-    <Reference Include="System.Windows.Forms">
+    <Reference Include="System.Windows.Forms" NoWarn="NU1701">
       <HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Windows.Forms.dll</HintPath>
     </Reference>
     <Reference Include="System.Windows.Forms.DataVisualization">
diff --git a/VECTO/app.config b/VECTO/app.config
index 041469abdf17c36835cd1316595b056778c19cea..49b939ba25f80d51440ce081d6cee91c67bf198b 100644
--- a/VECTO/app.config
+++ b/VECTO/app.config
@@ -1,22 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <configuration>
 	<configSections>
 		<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
 	</configSections>
-	<runtime>
-		<loadFromRemoteSources enabled="true" />
-		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
-			<dependentAssembly>
-				<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
-				<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
-			</dependentAssembly>
-			<dependentAssembly>
-				<assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
-				<bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
-			</dependentAssembly>
-		</assemblyBinding>
-	</runtime>
 	<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="false" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
 		<targets async="true">
 			<target xsi:type="Console" name="ConsoleLogger" error="true" />
@@ -34,12 +20,9 @@
 	</nlog>
 	<system.diagnostics>
 		<sources>
-			<!-- Dieser Abschnitt definiert die Protokollierungskonfiguration für My.Application.Log -->
 			<source name="DefaultSource" switchName="DefaultSwitch">
 				<listeners>
 					<add name="FileLog" />
-					<!-- Auskommentierung des nachfolgenden Abschnitts aufheben, um in das Anwendungsereignisprotokoll zu schreiben -->
-					<!--<add name="EventLog"/>-->
 				</listeners>
 			</source>
 		</sources>
@@ -48,11 +31,6 @@
 		</switches>
 		<sharedListeners>
 			<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter" />
-			<!-- Auskommentierung des nachfolgenden Abschnitts aufheben und APPLICATION_NAME durch den Namen der Anwendung ersetzen, um in das Anwendungsereignisprotokoll zu schreiben -->
-			<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
 		</sharedListeners>
 	</system.diagnostics>
-	<startup>
-		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
-	</startup>
 </configuration>
\ No newline at end of file
diff --git a/VECTO3GUI/VECTO3GUI.csproj b/VECTO3GUI/VECTO3GUI.csproj
index b25f473425d883b22b475c4a4e53eaf4730fbb31..1f614921ce838271f0793e7c7addfafc1a39c2df 100644
--- a/VECTO3GUI/VECTO3GUI.csproj
+++ b/VECTO3GUI/VECTO3GUI.csproj
@@ -13,7 +13,6 @@
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <WarningLevel>4</WarningLevel>
-    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -651,9 +650,6 @@
     </None>
     <AppDesigner Include="Properties\" />
   </ItemGroup>
-  <ItemGroup>
-    <None Include="App.config" />
-  </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="..\VectoCommon\VectoCommon\VectoCommon.csproj">
       <Project>{79a066ad-69a9-4223-90f6-6ed5d2d084f4}</Project>
diff --git a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj
index 0a447b85ac5b404a58d0f57c23af169d787d73d3..aea32a189de970d1ffbd8a52e234bb46c9806385 100644
--- a/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj
+++ b/Vecto3GUI2020Test/Vecto3GUI2020Test.csproj
@@ -6,7 +6,7 @@
 
   <ItemGroup>
     <PackageReference Include="Appium.WebDriver" Version="4.3.1" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
     <PackageReference Include="Microsoft.Toolkit.Mvvm" Version="7.1.2" />
     <PackageReference Include="Moq" Version="4.16.1" />
     <PackageReference Include="Ninject" Version="3.3.4" />
diff --git a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
index 4931318bca836f766ccd7a117827604e04f10b3b..7631c22a20524c4bae690357424ba31b40f87be3 100644
--- a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
+++ b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
@@ -16,7 +16,7 @@
     <PackageReference Include="Ninject.Extensions.Factory" Version="3.3.3" />
     <PackageReference Include="NUnit" Version="3.13.2" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
     <PackageReference Include="System.Security.Cryptography.Xml" Version="6.0.0" />
   </ItemGroup>
 
diff --git a/VectoConsole/App.config b/VectoConsole/App.config
index 5f6645457280551ad79226bed655e31773493ed4..8ef55200ef768a6f524eb6abb8e17dc9059a5294 100644
--- a/VectoConsole/App.config
+++ b/VectoConsole/App.config
@@ -1,12 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <configuration>
 	<configSections>
 		<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
 	</configSections>
-	<startup>
-		<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
-	</startup>
 	<runtime>
 		<loadFromRemoteSources enabled="true" />
 		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
diff --git a/VectoConsole/Program.cs b/VectoConsole/Program.cs
index 435e2835c8fd4aa2f40a78e2232c5a92ea418d40..9019335655d7860fd03c48f629bc4363587f2a97 100644
--- a/VectoConsole/Program.cs
+++ b/VectoConsole/Program.cs
@@ -107,7 +107,7 @@ Examples:
 
 		private static int Main(string[] args)
 		{
-			
+
 			_kernel = new StandardKernel(new VectoNinjectModule());
 			try {
 				// on -h display help and terminate.
@@ -145,6 +145,12 @@ Examples:
 				}
 
 				var config = LogManager.Configuration;
+				if (config is null) {
+					// in .net5.0 the app is exported as dll, therefore the default config lookup of nlog doesn't work.
+					LogManager.LoadConfiguration($"{Assembly.GetExecutingAssembly().GetName().Name}.dll.config");
+					config = LogManager.Configuration;
+				}
+
 				config.LoggingRules.Add(new LoggingRule("*", logLevel, config.FindTargetByName("LogFile")));
 
 				if (logLevel > LogLevel.Warn) {
diff --git a/VectoCore/ModelbasedTests/ModelbasedTests.csproj b/VectoCore/ModelbasedTests/ModelbasedTests.csproj
index 874d9a7474be3796becf2c8b45a776ce7fc4d44a..8e82aae326bd50abfc11ed6c129a0fab56ca70ea 100644
--- a/VectoCore/ModelbasedTests/ModelbasedTests.csproj
+++ b/VectoCore/ModelbasedTests/ModelbasedTests.csproj
@@ -10,7 +10,7 @@
   <ItemGroup>
     <PackageReference Include="NUnit" Version="3.13.2" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
   </ItemGroup>
   
   <ItemGroup>
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 9126ebc0188e693233e45742442b7dcbb028857d..ab3a0dcb3d4030397de432e525e729c36ae4ce67 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -10,7 +10,7 @@
   <ItemGroup>
     <PackageReference Include="NUnit" Version="3.13.2" />
     <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
     <PackageReference Include="Ninject" Version="3.3.4" />
     <PackageReference Include="NLog" Version="4.7.13" />