Index: /branches/3076_IA_evaluators_analyzers/Build.cmd
===================================================================
--- /branches/3076_IA_evaluators_analyzers/Build.cmd	(revision 17608)
+++ /branches/3076_IA_evaluators_analyzers/Build.cmd	(revision 17608)
@@ -0,0 +1,2 @@
+@ECHO OFF
+powershell.exe .\Build.ps1
Index: /branches/3076_IA_evaluators_analyzers/Build.ps1
===================================================================
--- /branches/3076_IA_evaluators_analyzers/Build.ps1	(revision 17608)
+++ /branches/3076_IA_evaluators_analyzers/Build.ps1	(revision 17608)
@@ -0,0 +1,114 @@
+﻿# find ms build
+$programFilesX86Dir = ($Env:ProgramFiles, ${Env:ProgramFiles(x86)})[[bool]${Env:ProgramFiles(x86)}]
+$locations = @(
+  [System.IO.Path]::Combine($programFilesX86Dir, "Microsoft Visual Studio", "2017", "Enterprise", "MSBuild", "15.0", "Bin", "amd64")
+  [System.IO.Path]::Combine($programFilesX86Dir, "Microsoft Visual Studio", "2017", "Enterprise", "MSBuild", "15.0", "Bin")
+  [System.IO.Path]::Combine($programFilesX86Dir, "Microsoft Visual Studio", "2017", "Community", "MSBuild", "15.0", "Bin", "amd64")
+  [System.IO.Path]::Combine($programFilesX86Dir, "Microsoft Visual Studio", "2017", "Community", "MSBuild", "15.0", "Bin")
+  [System.IO.Path]::Combine($programFilesX86Dir, "Microsoft Visual Studio", "2017", "BuildTools", "MSBuild", "15.0", "Bin", "amd64"),
+  [System.IO.Path]::Combine($programFilesX86Dir, "Microsoft Visual Studio", "2017", "BuildTools", "MSBuild", "15.0", "Bin")
+)
+
+$msBuildPath = $undefined
+Foreach ($loc in $locations) {
+  $loc = [System.IO.Path]::Combine($loc, "MSBuild.exe")
+  If ([System.IO.File]::Exists($loc)) {
+    $msBuildPath = $loc
+    Break;
+  }
+}
+
+if ($msBuildPath -eq $undefined) {
+  "Could not locate MSBuild, ABORTING ..."
+} else {
+  $curPath = $MyInvocation.MyCommand.Path
+  $curDir = Split-Path $curPath
+
+  $slnFiles = Get-ChildItem $curDir -Filter *.sln
+
+  "Found the following solutions:"
+
+  ""
+
+  $slnFiles | % { $i = 0 } { ("  {0}. `"{1}`"" -f ($i + 1), $_.Name); $i++ }
+
+  ""
+
+  $success = $false
+
+  # query solution to build
+  $slnIndex = -1
+  $slnIndices = @()
+  Do {
+      $input = Read-Host "Which solution(s) to build? {1..$($slnFiles.Count)}"
+      $inputParts = $input -Split " "
+
+      Foreach ($part in $inputParts) {
+        If ($part -eq "") { Continue }
+
+        $success = [int]::TryParse($part, [ref]$slnIndex) -and ($slnIndex -gt 0) -and ($slnIndex -le $slnFiles.Count)
+
+        If ($success) {
+          $slnIndices += $slnIndex - 1
+        } Else {
+          $slnIndices = @()
+          Break
+        }
+      }
+  } While (-Not $success)
+
+  $slnIndices = $slnIndices | Select-Object -Unique
+
+  # query configuration to build
+  $config = "Release"
+  $input = Read-Host "Which configuration to build? [$($config)]"
+  $config = ($config, $input)[[bool]$input]
+
+  # query platform to build
+  $platform = "Any CPU"
+  $input = Read-Host "Which platform to build? [$($platform)]"
+  $platform = ($platform, $input)[[bool]$input]
+
+  # query clean desire
+  $clean = $false
+  Do {
+      $input = Read-Host "Would you like to clean before building? [y/N]"
+      $input = ([string]("n", $input)[[bool]$input]).ToLowerInvariant()
+      $success = $input -eq "n" -or ($clean = $input -eq "y")
+  } While (-Not $success)
+
+  ""
+
+  if ($clean) {
+    Foreach ($slnIndex in $slnIndices) {
+      $solution = $slnFiles[$slnIndex]
+      "Cleaning `"$($solution.Name)`" ..."
+      $args = @(
+        $solution.FullName,
+        "/t:Clean",
+        "/p:Configuration=`"$config`",Platform=`"$platform`"",
+        "/m", "/nologo", "/verbosity:q", "/clp:ErrorsOnly"
+      )
+      & $msBuildPath $args
+      "===== CLEAN FINISHED ====="
+    }
+  }
+
+  Foreach ($slnIndex in $slnIndices) {
+    $solution = $slnFiles[$slnIndex]
+    "Building `"$($solution.Name)`" ($config|$platform) ..."
+    $args = @(
+      $solution.FullName,
+      "/t:Build",
+      "/p:Configuration=`"$config`",Platform=`"$platform`"",
+      "/m", "/nologo", "/verbosity:q", "/clp:ErrorsOnly"
+    )
+    & $msBuildPath $args
+    "===== BUILD FINISHED ====="
+  }
+}
+
+""
+
+Write-Host -NoNewline "Press any key to continue ... "
+[void][System.Console]::ReadKey($true)
Index: /branches/3076_IA_evaluators_analyzers/Clean.cmd
===================================================================
--- /branches/3076_IA_evaluators_analyzers/Clean.cmd	(revision 17608)
+++ /branches/3076_IA_evaluators_analyzers/Clean.cmd	(revision 17608)
@@ -0,0 +1,30 @@
+@ECHO OFF
+
+ECHO Clean starting...
+
+FOR /F "tokens=*" %%G IN ('DIR /AD /B') DO (
+  FOR /F "tokens=*" %%T IN ('DIR /AD /B %%G') DO (
+    IF EXIST "%%G\%%T\bin" (
+      ECHO Cleaning "bin" in %%G in version %%T ...
+      RMDIR /S /Q "%%G\%%T\bin"
+    )
+    IF EXIST "%%G\%%T\obj" (
+      ECHO Cleaning "obj" in %%G in version %%T ...
+      RMDIR /S /Q "%%G\%%T\obj"
+    )
+  )
+)
+
+IF EXIST bin (
+  ECHO Cleaning "bin" in current directory ...
+  RMDIR /S /Q bin
+)
+
+IF EXIST TestResults (
+  ECHO Cleaning "TestResults" in current directory ...
+  RMDIR /S /Q TestResults
+)
+
+ECHO Clean finished.
+
+PAUSE
Index: /branches/3076_IA_evaluators_analyzers/IAEvaluatorsAnalyzers.sln
===================================================================
--- /branches/3076_IA_evaluators_analyzers/IAEvaluatorsAnalyzers.sln	(revision 17608)
+++ /branches/3076_IA_evaluators_analyzers/IAEvaluatorsAnalyzers.sln	(revision 17608)
@@ -0,0 +1,13 @@
+﻿
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.168
+MinimumVisualStudioVersion = 10.0.40219.1
+Global
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {EA03B742-34EC-426B-BE76-E1FE4BDA332A}
+	EndGlobalSection
+EndGlobal
Index: /branches/3076_IA_evaluators_analyzers/PreBuildEvent.cmd
===================================================================
--- /branches/3076_IA_evaluators_analyzers/PreBuildEvent.cmd	(revision 17608)
+++ /branches/3076_IA_evaluators_analyzers/PreBuildEvent.cmd	(revision 17608)
@@ -0,0 +1,11 @@
+IF EXIST "%ProjectDir%\Properties\AssemblyInfo.cs.frame" SubWCRev "%ProjectDir%\" "%ProjectDir%\Properties\AssemblyInfo.cs.frame" "%ProjectDir%\Properties\AssemblyInfo.cs"
+IF %ERRORLEVEL% NEQ 0 GOTO Error_Handling
+IF EXIST "%ProjectDir%\Plugin.cs.frame" SubWCRev "%ProjectDir%\" "%ProjectDir%\Plugin.cs.frame" "%ProjectDir%\Plugin.cs"
+IF %ERRORLEVEL% NEQ 0 GOTO Error_Handling
+GOTO Done
+
+:Error_Handling
+ECHO There was an error while running subwcrev. Please verify that the *.cs.frame files have been correctly converted to *.cs files, otherwise HeuristicLab won't build. 
+exit 0
+
+:Done
Index: /branches/3076_IA_evaluators_analyzers/PreBuildEvent.sh
===================================================================
--- /branches/3076_IA_evaluators_analyzers/PreBuildEvent.sh	(revision 17608)
+++ /branches/3076_IA_evaluators_analyzers/PreBuildEvent.sh	(revision 17608)
@@ -0,0 +1,29 @@
+export AIFile=$ProjectDir/Properties/AssemblyInfo.cs.frame
+export PluginFile=$ProjectDir/Plugin.cs.frame
+
+command_exists () {
+    command -v "$1" 
+}
+
+if command_exists svnwcrev ; then   
+	if [ -f $AIFile ];
+	then
+	  svnwcrev $ProjectDir $AIFile $ProjectDir/Properties/AssemblyInfo.cs
+	fi
+
+	if [ -f $PluginFile ];
+	then
+	  svnwcrev $ProjectDir $PluginFile $ProjectDir/Plugin.cs
+	fi
+else
+	if [ -f $AIFile ];
+	then
+	  sed 's/\$WCREV\$/'0'/g' $AIFile > $ProjectDir/Properties/AssemblyInfo.cs 
+	fi
+
+	if [ -f $PluginFile ];
+	then
+	 sed 's/\$WCREV\$/'0'/g' $PluginFile > $ProjectDir/Plugin.cs
+	fi
+fi
+
Index: /branches/3076_IA_evaluators_analyzers/Test.cmd
===================================================================
--- /branches/3076_IA_evaluators_analyzers/Test.cmd	(revision 17608)
+++ /branches/3076_IA_evaluators_analyzers/Test.cmd	(revision 17608)
@@ -0,0 +1,32 @@
+@ECHO OFF
+
+SET /P BUILDBEFORETEST=Should the test project be rebuilt [n]:
+
+SET TESTCATEGORY=%~1
+
+IF "%TESTCATEGORY%"=="" SET TESTCATEGORY=Essential
+SET /P USERCATEGORY=Which category do you want to run  [%TESTCATEGORY%]:
+IF "%USERCATEGORY%" NEQ "" SET TESTCATEGORY=%USERCATEGORY%
+
+set /P TESTPLATFORM=Which platform to run the tests [x64]:
+IF "%TESTPLATFORM%"=="" SET TESTPLATFORM=x64
+
+FOR /F "tokens=1,3 delims=	 " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0"') DO (
+  IF "%%A"=="MSBuildToolsPath" SET MSBUILDPATH=%%B)
+
+IF "%BUILDBEFORETEST%" NEQ "" (
+  ECHO Building tests project ...
+  %MSBUILDPATH%msbuild.exe "HeuristicLab 3.3 Tests.sln" /target:Rebuild /p:Configuration="Debug",Platform="%TESTPLATFORM%" /m:2 /nologo /verbosity:q /clp:ErrorsOnly
+)
+
+ECHO Test starting for category %TESTCATEGORY%...
+
+FOR /F "tokens=1,2,* delims=	 " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7"') DO (
+  IF "%%A"=="14.0" (SET VSPATH=%%C) & GOTO :run_tests
+  IF "%%A"=="12.0" (SET VSPATH=%%C) & GOTO :run_tests
+)
+
+:run_tests
+"%VSPATH%Common7\IDE\CommonExtensions\Microsoft\TestWindow\VSTest.Console.exe" bin\HeuristicLab.Tests.dll /Framework:framework40 /Platform:%TESTPLATFORM% /TestCaseFilter:"TestCategory=%TESTCATEGORY%"
+
+PAUSE
