diff --git a/.gitignore b/.gitignore
index efccce79d1..50c65f5468 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,4 +45,5 @@ src/*/x64/Release/
src/AspNetCore/aspnetcore_msg.h
src/AspNetCore/aspnetcore_msg.rc
-src/AspNetCore/version.h
\ No newline at end of file
+src/AspNetCore/version.h
+.build
\ No newline at end of file
diff --git a/build.cmd b/build.cmd
index 0d744a8940..7d4894cb4a 100644
--- a/build.cmd
+++ b/build.cmd
@@ -1 +1,2 @@
-msbuild "%~dp0\Build\build.msbuild" /v:minimal /maxcpucount /nodeReuse:false %*
\ No newline at end of file
+@ECHO OFF
+PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0build.ps1' %*; exit $LASTEXITCODE"
\ No newline at end of file
diff --git a/build.ps1 b/build.ps1
new file mode 100644
index 0000000000..8f2f99691a
--- /dev/null
+++ b/build.ps1
@@ -0,0 +1,67 @@
+$ErrorActionPreference = "Stop"
+
+function DownloadWithRetry([string] $url, [string] $downloadLocation, [int] $retries)
+{
+ while($true)
+ {
+ try
+ {
+ Invoke-WebRequest $url -OutFile $downloadLocation
+ break
+ }
+ catch
+ {
+ $exceptionMessage = $_.Exception.Message
+ Write-Host "Failed to download '$url': $exceptionMessage"
+ if ($retries -gt 0) {
+ $retries--
+ Write-Host "Waiting 10 seconds before retrying. Retries left: $retries"
+ Start-Sleep -Seconds 10
+
+ }
+ else
+ {
+ $exception = $_.Exception
+ throw $exception
+ }
+ }
+ }
+}
+
+cd $PSScriptRoot
+
+$repoFolder = $PSScriptRoot
+$env:REPO_FOLDER = $repoFolder
+
+$koreBuildZip="https://github.com/aspnet/KoreBuild/archive/dev.zip"
+if ($env:KOREBUILD_ZIP)
+{
+ $koreBuildZip=$env:KOREBUILD_ZIP
+}
+
+$buildFolder = ".build"
+$buildFile="$buildFolder\KoreBuild.ps1"
+
+if (!(Test-Path $buildFolder)) {
+ Write-Host "Downloading KoreBuild from $koreBuildZip"
+
+ $tempFolder=$env:TEMP + "\KoreBuild-" + [guid]::NewGuid()
+ New-Item -Path "$tempFolder" -Type directory | Out-Null
+
+ $localZipFile="$tempFolder\korebuild.zip"
+
+ DownloadWithRetry -url $koreBuildZip -downloadLocation $localZipFile -retries 6
+
+ Add-Type -AssemblyName System.IO.Compression.FileSystem
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($localZipFile, $tempFolder)
+
+ New-Item -Path "$buildFolder" -Type directory | Out-Null
+ copy-item "$tempFolder\**\build\*" $buildFolder -Recurse
+
+ # Cleanup
+ if (Test-Path $tempFolder) {
+ Remove-Item -Recurse -Force $tempFolder
+ }
+}
+
+&"$buildFile" $args
\ No newline at end of file
diff --git a/src/AspNetCore/AspNetCore.vcxproj b/src/AspNetCore/AspNetCore.vcxproj
index e3d552cc05..fb903b5862 100644
--- a/src/AspNetCore/AspNetCore.vcxproj
+++ b/src/AspNetCore/AspNetCore.vcxproj
@@ -32,27 +32,27 @@
DynamicLibrary
true
- v120
+ v140
Unicode
DynamicLibrary
true
- v120
+ v140
Unicode
false
DynamicLibrary
false
- v120
+ v140
true
Unicode
DynamicLibrary
false
- v120
+ v140
true
Unicode
diff --git a/src/IISLib/IISLib.vcxproj b/src/IISLib/IISLib.vcxproj
index eeaf5e04f5..5f6181152e 100644
--- a/src/IISLib/IISLib.vcxproj
+++ b/src/IISLib/IISLib.vcxproj
@@ -28,26 +28,26 @@
StaticLibrary
true
- v120
+ v140
Unicode
StaticLibrary
true
- v120
+ v140
Unicode
StaticLibrary
false
- v120
+ v140
true
Unicode
StaticLibrary
false
- v120
+ v140
true
Unicode