From 6f841a15bfd1be8ad2f15627a317327924b74753 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Wed, 26 Aug 2015 16:02:21 +0200
Subject: [PATCH] created Console project

---
 VECTO.sln                                     |  10 +
 VectoConsole/12t Delivery Truck.vecto         |  56 +++++
 VectoConsole/24tCoach.vecto                   |  56 +++++
 VectoConsole/40t_Long_Haul_Truck.vecto        |  56 +++++
 VectoConsole/App.config                       |   6 +
 VectoConsole/Program.cs                       |  48 ++++
 VectoConsole/Properties/AssemblyInfo.cs       |  36 +++
 VectoConsole/VECTO.ico                        | Bin 0 -> 4286 bytes
 VectoConsole/VectoConsole.csproj              | 217 ++++++++++++++++++
 .../DeclarationModeSimulationDataReader.cs    |   2 +-
 10 files changed, 486 insertions(+), 1 deletion(-)
 create mode 100644 VectoConsole/12t Delivery Truck.vecto
 create mode 100644 VectoConsole/24tCoach.vecto
 create mode 100644 VectoConsole/40t_Long_Haul_Truck.vecto
 create mode 100644 VectoConsole/App.config
 create mode 100644 VectoConsole/Program.cs
 create mode 100644 VectoConsole/Properties/AssemblyInfo.cs
 create mode 100644 VectoConsole/VECTO.ico
 create mode 100644 VectoConsole/VectoConsole.csproj

diff --git a/VECTO.sln b/VECTO.sln
index 25ccec6999..8967ee3a3d 100644
--- a/VECTO.sln
+++ b/VECTO.sln
@@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoCoreTest", "VectoCoreT
 EndProject
 Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "DeclarationConverter", "DeclarationConverter\DeclarationConverter.pyproj", "{E23B3A9B-62E7-4476-849E-EEF1C3804A2F}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoConsole", "VectoConsole\VectoConsole.csproj", "{60AD4DF0-6648-4374-83CB-C7A162EFB391}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -63,6 +65,14 @@ Global
 		{E23B3A9B-62E7-4476-849E-EEF1C3804A2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{E23B3A9B-62E7-4476-849E-EEF1C3804A2F}.Release|x64.ActiveCfg = Release|Any CPU
 		{E23B3A9B-62E7-4476-849E-EEF1C3804A2F}.Release|x86.ActiveCfg = Release|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|Any CPU.Build.0 = Release|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|x64.ActiveCfg = Release|Any CPU
+		{60AD4DF0-6648-4374-83CB-C7A162EFB391}.Release|x86.ActiveCfg = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/VectoConsole/12t Delivery Truck.vecto b/VectoConsole/12t Delivery Truck.vecto
new file mode 100644
index 0000000000..7ff3e67b32
--- /dev/null
+++ b/VectoConsole/12t Delivery Truck.vecto	
@@ -0,0 +1,56 @@
+{
+  "Header": {
+    "CreatedBy": " ()",
+    "Date": "3/4/2015 2:09:13 PM",
+    "AppVersion": "2.0.4-beta3",
+    "FileVersion": 2
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "VehicleFile": "Components/24t Coach.vveh",
+    "EngineFile": "Components/24t Coach.veng",
+    "GearboxFile": "Components/24t Coach.vgbx",
+    "Cycles": [
+      "Cycles/Coach_24t_xshort.vdri"
+    ],
+    "Aux": [
+      {
+        "ID": "ALT1",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      },
+      {
+        "ID": "ALT2",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      },
+      {
+        "ID": "ALT3",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      }
+    ],
+    "VACC": "Components/Coach.vacc",
+    "EngineOnlyMode": false,
+    "StartStop": {
+      "Enabled": false,
+      "MaxSpeed": 5.0,
+      "MinTime": 0.0,
+      "Delay": 0
+    },
+    "LAC": {
+      "Enabled": true,
+      "Dec": -0.5,
+      "MinSpeed": 50.0
+    },
+    "OverSpeedEcoRoll": {
+      "Mode": "OverSpeed",
+      "MinSpeed": 70.0,
+      "OverSpeed": 5.0,
+      "UnderSpeed": 5.0
+    }
+  }
+}
\ No newline at end of file
diff --git a/VectoConsole/24tCoach.vecto b/VectoConsole/24tCoach.vecto
new file mode 100644
index 0000000000..7ff3e67b32
--- /dev/null
+++ b/VectoConsole/24tCoach.vecto
@@ -0,0 +1,56 @@
+{
+  "Header": {
+    "CreatedBy": " ()",
+    "Date": "3/4/2015 2:09:13 PM",
+    "AppVersion": "2.0.4-beta3",
+    "FileVersion": 2
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "VehicleFile": "Components/24t Coach.vveh",
+    "EngineFile": "Components/24t Coach.veng",
+    "GearboxFile": "Components/24t Coach.vgbx",
+    "Cycles": [
+      "Cycles/Coach_24t_xshort.vdri"
+    ],
+    "Aux": [
+      {
+        "ID": "ALT1",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      },
+      {
+        "ID": "ALT2",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      },
+      {
+        "ID": "ALT3",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      }
+    ],
+    "VACC": "Components/Coach.vacc",
+    "EngineOnlyMode": false,
+    "StartStop": {
+      "Enabled": false,
+      "MaxSpeed": 5.0,
+      "MinTime": 0.0,
+      "Delay": 0
+    },
+    "LAC": {
+      "Enabled": true,
+      "Dec": -0.5,
+      "MinSpeed": 50.0
+    },
+    "OverSpeedEcoRoll": {
+      "Mode": "OverSpeed",
+      "MinSpeed": 70.0,
+      "OverSpeed": 5.0,
+      "UnderSpeed": 5.0
+    }
+  }
+}
\ No newline at end of file
diff --git a/VectoConsole/40t_Long_Haul_Truck.vecto b/VectoConsole/40t_Long_Haul_Truck.vecto
new file mode 100644
index 0000000000..7ff3e67b32
--- /dev/null
+++ b/VectoConsole/40t_Long_Haul_Truck.vecto
@@ -0,0 +1,56 @@
+{
+  "Header": {
+    "CreatedBy": " ()",
+    "Date": "3/4/2015 2:09:13 PM",
+    "AppVersion": "2.0.4-beta3",
+    "FileVersion": 2
+  },
+  "Body": {
+    "SavedInDeclMode": false,
+    "VehicleFile": "Components/24t Coach.vveh",
+    "EngineFile": "Components/24t Coach.veng",
+    "GearboxFile": "Components/24t Coach.vgbx",
+    "Cycles": [
+      "Cycles/Coach_24t_xshort.vdri"
+    ],
+    "Aux": [
+      {
+        "ID": "ALT1",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      },
+      {
+        "ID": "ALT2",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      },
+      {
+        "ID": "ALT3",
+        "Type": "Alternator",
+        "Path": "Components/24t_Coach_ALT.vaux",
+        "Technology": ""
+      }
+    ],
+    "VACC": "Components/Coach.vacc",
+    "EngineOnlyMode": false,
+    "StartStop": {
+      "Enabled": false,
+      "MaxSpeed": 5.0,
+      "MinTime": 0.0,
+      "Delay": 0
+    },
+    "LAC": {
+      "Enabled": true,
+      "Dec": -0.5,
+      "MinSpeed": 50.0
+    },
+    "OverSpeedEcoRoll": {
+      "Mode": "OverSpeed",
+      "MinSpeed": 70.0,
+      "OverSpeed": 5.0,
+      "UnderSpeed": 5.0
+    }
+  }
+}
\ No newline at end of file
diff --git a/VectoConsole/App.config b/VectoConsole/App.config
new file mode 100644
index 0000000000..8e15646352
--- /dev/null
+++ b/VectoConsole/App.config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>
\ No newline at end of file
diff --git a/VectoConsole/Program.cs b/VectoConsole/Program.cs
new file mode 100644
index 0000000000..7b9065187b
--- /dev/null
+++ b/VectoConsole/Program.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.Models.Simulation.Data;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+
+namespace VectoConsole
+{
+	internal static class Program
+	{
+		private static int Main(string[] args)
+		{
+			try {
+				if (!args.Any()) {
+					Console.Write("Usage: vecto.exe FILE1.vecto [FILE2.vecto ...]");
+					return 1;
+				}
+
+				if (args.Contains("-v")) {
+					Trace.Listeners.Add(new ConsoleTraceListener(true));
+				}
+
+				var fileList = args.Where(a => a != "-v").ToList().ToList();
+
+				var sumWriter =
+					new SummaryFileWriter(Path.GetFileNameWithoutExtension(fileList.First()) + Constants.FileExtensions.SumFile);
+				var jobContainer = new JobContainer(sumWriter);
+
+				foreach (var file in fileList.Where(f => Path.GetExtension(f) == Constants.FileExtensions.VectoJobFile)) {
+					var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode);
+					runsFactory.DataReader.SetJobFile(file);
+					jobContainer.AddRuns(runsFactory);
+				}
+
+				jobContainer.Execute();
+			} catch (Exception e) {
+				Console.Error.WriteLine(e.Message);
+				Trace.TraceError(e.ToString());
+				Environment.ExitCode = Environment.ExitCode != 0 ? Environment.ExitCode : 1;
+			} finally {
+				Console.Read();
+			}
+			return Environment.ExitCode;
+		}
+	}
+}
\ No newline at end of file
diff --git a/VectoConsole/Properties/AssemblyInfo.cs b/VectoConsole/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..c1e386aefa
--- /dev/null
+++ b/VectoConsole/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+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("VectoConsole")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("VectoConsole")]
+[assembly: AssemblyCopyright("Copyright ©  2015")]
+[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("29bc5a9a-40b4-4e43-a86b-cee6298b6a73")]
+
+// 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.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/VectoConsole/VECTO.ico b/VectoConsole/VECTO.ico
new file mode 100644
index 0000000000000000000000000000000000000000..6de7e5cd7ef1e97f70d64cb3eeaa2b7fcc8d604f
GIT binary patch
literal 4286
zcmdUy3s6*57{|{pB$X7Fuz-eAW5`R?VtFTNfHICbR>n9rHCZeOVj)ChW1wNCj;2ix
z&d@{D5JQa+3WsbW1cf^iBuM#)7D$vN-j8MXKKh@#dzY2HGR_FhbeTWr-gD1Azwi6b
zcOFZK0)OuAg#IVTrV*kdgm^-zBF{p!{!W)52;~1Hj^mWtn^&jsJg=N=yTMd6YU`%$
z$W5C!Fw{2<e8pti0RGf3i$95sNcPxvuHh%YNsfV{qr2VX&7I3X4~loK*z?WiH5|t}
zOqT!fbxKL~$wgs_v(5*`xpb{g4?U^9am^R}$;bnR-k?`ye3h6SpmA;jpACw0t<5`=
z9Syr4nD7`N*BhE@<}XY2{T}>5h=*<_?TgvnJJ9V8{)FZse6-I#wd)17MpYl6QE^}k
z&~SLt<7H*FB|&&^JApA!-s-yH_4@Y6T(!ojJ3!+Ewu*|z;PS^uQr}`Z_EFd{Au&L|
zcE#t8EeT0*y$}%R#6n;jrH*y(U%Bb&@2>vcI1lY6A`cZhz0URh?AT3ejbk&|yvQH1
z0b`;1?a=AZo(KQI@g4)}Q|;BN1yL!UCEyQ1f|*ZkfIS$Kj=0?`4|MhYJ7>J}5PbWr
zf{$MEkDcBCHb?m~HW;2+?^b!{LSY!%-#3miP~Pmk?(<6K;(T?iW3R-PN{cuk29AGz
zn6n|t!0MgGD+chzuJCMbWKg`zujt?GyTqrZWCQL8mcQp$^t-lhJ{_}hh=D>kJTx=y
zz#Hj^eJlE>K8mp)U7BoweNOdX6z^FD{?vQrQy*$BS1yc5ezFui-Du|MXKDlLI@j)q
zKG@OIKKEY70DSxX-)36n-Ds}mGi+c(6J}PIR2^S}@9(ER(6b81k1d&4Dcd?)eAaAT
zbR4novt*2Q4?Z2EW~>$4uva{Hxusrhtp?N?b)~gIeWmr1dNiNfUQm8GDlkqZn|J=2
z=`_}|`2ZW}ST#p%^r*!dg^5U>%S0x7GLajpyqKsIZ)Rz#53>x4e%F^l&N8?0c|kF#
z8*od_dMy*aUzg)x?d^YYbD$RQ`|;i?CutlYtcz6QUPbpS4tut!;CNRqWZeudBw;2O
zw%(1i<nscrWE#t#TJp}EAJM;D-Wisrc-7>Te7Ze+gL^&rR`U{U^Sm_fQ{rAJfG-MX
zCjoo`d?7UPG2lne-^i7R_U5O@fPG1(ZyxK=t#x}=Wwo?7t-yYmhju-8h=I`t^Iqu;
zHkFG&`N6V$UfKH3Up_Bqgq`q@b(G6H9=wZKk5?eCo%iLZuQu6fl?&z=Sn%nYL5hJK
zpXS|(vV%*JceOIU({bjo&R3tkSQ>z~w&iuF1M$qrwY^(D9RpMR6$85dSsVAix*a~X
zp-(HHP&XK}C9J5uv&|3R*r4>q94$b-RUVG;u||tAkaEBn1Id4hPuGg7OFu7M{Pq*2
zi2b0+Cz@N5SlD%KYfjPzmSt7oD=-F+?95GDi~2v%j-_pJFSZAt6D7_8IuD#pbHF$c
zkOSs9K>bJF+3d~#zz^RXf~p{9l&Y~09l^Tb4_n1O7Nt!oQ?LMQ-eI(@mfB<dn80`o
z#W^z=cLwKW23#gMeg*@-8RR|_mgpwVf1Irqztol37gl`j4XNdXGnjX0Z->1gjGXiO
z279Lda6Vt=n_ToEr=#jq6;S0-bx~!WsA0X%^7k*@JI9h`Tj_qR_ILA+==4Ko;Ww4o
zuVtNdPi?(ThGC+I3<f=9AO_YzkROEhfiWdm&xl^Hw-Oz53*pvu8Bq2?Jtk>UQk79<
o7_}u_5U2>%Y*9RM0LejMi5*0UPLeGl-47e3MX8-_lwfiF2k>`06aWAK

literal 0
HcmV?d00001

diff --git a/VectoConsole/VectoConsole.csproj b/VectoConsole/VectoConsole.csproj
new file mode 100644
index 0000000000..f15867a559
--- /dev/null
+++ b/VectoConsole/VectoConsole.csproj
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{60AD4DF0-6648-4374-83CB-C7A162EFB391}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>VectoConsole</RootNamespace>
+    <AssemblyName>VectoConsole</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject>VectoConsole.Program</StartupObject>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ApplicationIcon>VECTO.ico</ApplicationIcon>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="24tCoach.vecto">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="40t_Long_Haul_Truck.vecto">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="12t Delivery Truck.vecto">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="App.config" />
+    <None Include="Components\12t Delivery Truck.veng">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\12t Delivery Truck.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\12t Delivery Truck.vgbx">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\12t Delivery Truck.vmap">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\12t Delivery Truck.vveh">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\24t Coach.veng">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\24t Coach.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\24t Coach.vgbx">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\24t Coach.vmap">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\24t Coach.vveh">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\24t CoachInterpolated.vmap">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\24t_Coach_ALT.vaux">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\40t_Long_Haul_Truck.veng">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\40t_Long_Haul_Truck.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\40t_Long_Haul_Truck.vgbx">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\40t_Long_Haul_Truck.vmap">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\40t_Long_Haul_Truck.vveh">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\Axle.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\Coach.vacc">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\Direct Gear.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\FullLoadCurve insufficient columns.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\FullLoadCurve insufficient entries.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\FullLoadCurve no header.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\FullLoadCurve wrong header.vfld">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\Indirect Gear.vtlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\Retarder.vrlm">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\ShiftPolygons.vgbs">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Components\Truck.vacc">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach Engine Only FullLoad.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach Engine Only Paux.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach Engine Only Paux_var-dt.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach Engine Only short.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach Engine Only.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach First Cycle only.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach time based short.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach time based.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Coach_24t_xshort.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Cycle time field missing.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Engine Only1.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Engine Only2.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\Engine Only3.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\EngineOnly_FullLoad.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\LongHaul_short.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="Cycles\LOT2_rural Engine Only.vmod">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\VectoCore\VectoCore.csproj">
+      <Project>{cd36938a-add9-4c65-96da-b397cdeea90a}</Project>
+      <Name>VectoCore</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="VECTO.ico" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs
index 79491e59b4..85bdb10d96 100644
--- a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs
+++ b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs
@@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl
 			switch (fileInfo.Version) {
 				case 2:
 					Job = JsonConvert.DeserializeObject<VectoJobFileV2Declaration>(json);
-					Job.BasePath = Path.GetDirectoryName(file) + Path.DirectorySeparatorChar;
+					Job.BasePath = Path.GetDirectoryName(Path.GetFullPath(file)) + Path.DirectorySeparatorChar;
 					Job.JobFile = Path.GetFileName(file);
 					break;
 				default:
-- 
GitLab