diff --git a/run.ps1 b/run.ps1
index 95f7f2246ffb24adab4a3bf94f92da426381bd2c..60e533097c14b99df7d3eb8bd5e6650c68359b56 100644
--- a/run.ps1
+++ b/run.ps1
@@ -201,6 +201,7 @@ if (Test-Path $ConfigFile) {
 
 if (!$DotNetHome) {
     $DotNetHome = if ($env:DOTNET_HOME) { $env:DOTNET_HOME } `
+        elseif ($CI) { Join-Path $PSScriptRoot '.dotnet' } `
         elseif ($env:USERPROFILE) { Join-Path $env:USERPROFILE '.dotnet'} `
         elseif ($env:HOME) {Join-Path $env:HOME '.dotnet'}`
         else { Join-Path $PSScriptRoot '.dotnet'}
diff --git a/run.sh b/run.sh
index 1eef4d8194b939ff5f147e63cda980fa26231f54..40680bc267a8e3d43295029dfe271c6f53893a90 100755
--- a/run.sh
+++ b/run.sh
@@ -11,7 +11,6 @@ RED="\033[0;31m"
 YELLOW="\033[0;33m"
 MAGENTA="\033[0;95m"
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet"
 verbose=false
 update=false
 reinstall=false
@@ -220,6 +219,9 @@ while [[ $# -gt 0 ]]; do
             ;;
         --ci|-[Cc][Ii])
             ci=true
+            if [[ -z "${DOTNET_HOME:-}" ]]; then
+                DOTNET_HOME="$DIR/.dotnet"
+            fi
             ;;
         --verbose|-Verbose)
             verbose=true
@@ -265,6 +267,8 @@ if [ -f "$config_file" ]; then
     [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
 fi
 
+[ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet"
+
 if [ ! -z "$package_version_props_url" ]; then
     intermediate_dir="$repo_path/obj"
     props_file_path="$intermediate_dir/external-dependencies.props"