forked from dotnet/aspnetcore
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Install the .NET Core SDK into the repo root instead of UserProfile a…
…nd 'install' copy of AspNetCore shared framework (dotnet#7293) This is required to workaround several limitations in the way the .NET Core SDK finds shared frameworks and targeting packs. It allow tests to use shared frameworks and targeting packs. It also matches the patterns established in other aspnet and dotnet repos. This should reduce the friction required to adopt Arcade SDK. ## Changes * This moves the default location of the .NET Core SDK installation into `$repoRoot/.dotnet`. This location was already in use for CI builds. * Update the build step for Microsoft.AspNetCore.App to install the shared framework into the local copy of the .NET Core SDK ## Recommendations * Use the "startvs.cmd" script to launch Visual Studio. This will set required environment variables to make VS happier than if you just double click the .sln file. * Use "activate.sh/ps1" if you want to run `dotnet build`, `dotnet test` and other dotnet commands. These will set required environment variables, including PATH. * I recommend removing %USERPROFILE%/.dotnet to your PATH variable if you had added it manually before. This will no longer match what build tools will install. * `git clean -xfd -e .dotnet/` preserves the folder so you don’t have to re-download the SDK again.
- Loading branch information
1 parent
94a4293
commit 075612b
Showing
13 changed files
with
225 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# | ||
# This file must be used by invoking ". .\activate.ps1" from the command line. | ||
# You cannot run it directly. | ||
# To exit from the environment this creates, execute the 'deactivate' function. | ||
# | ||
|
||
function deactivate ([switch]$init) { | ||
|
||
# reset old environment variables | ||
if (Test-Path variable:_OLD_PATH) { | ||
$env:PATH = $_OLD_PATH | ||
Remove-Item variable:_OLD_PATH | ||
} | ||
|
||
if (test-path function:_old_prompt) { | ||
Set-Item Function:prompt -Value $function:_old_prompt -ea ignore | ||
remove-item function:_old_prompt | ||
} | ||
|
||
Remove-Item env:DOTNET_ROOT -ea ignore | ||
Remove-Item env:DOTNET_MULTILEVEL_LOOKUP -ea ignore | ||
if (-not $init) { | ||
# Remove the deactivate function | ||
Remove-Item function:deactivate | ||
} | ||
} | ||
|
||
# Cleanup the environment | ||
deactivate -init | ||
|
||
$_OLD_PATH = $env:PATH | ||
# Tell dotnet where to find itself | ||
$env:DOTNET_ROOT = "$PSScriptRoot\.dotnet\x64" | ||
# Tell dotnet not to look beyond the DOTNET_ROOT folder for more dotnet things | ||
$env:DOTNET_MULTILEVEL_LOOKUP = 0 | ||
# Put dotnet first on PATH | ||
$env:PATH = "${env:DOTNET_ROOT};${env:PATH}" | ||
|
||
# Set the shell prompt | ||
if (-not $env:DISABLE_CUSTOM_PROMPT) { | ||
$function:_old_prompt = $function:prompt | ||
function dotnet_prompt { | ||
# Add a prefix to the current prompt, but don't discard it. | ||
write-host "($( split-path $PSScriptRoot -leaf )) " -nonewline | ||
& $function:_old_prompt | ||
} | ||
|
||
Set-Item Function:prompt -Value $function:dotnet_prompt -ea ignore | ||
} | ||
|
||
Write-Host -f Magenta "Enabled the .NET Core environment. Execute 'deactivate' to exit." | ||
if (-not (Test-Path "${env:DOTNET_ROOT}\dotnet.exe")) { | ||
Write-Host -f Yellow ".NET Core has not been installed yet. Run $PSScriptRoot\restore.cmd to install it." | ||
} | ||
else { | ||
Write-Host "dotnet = ${env:DOTNET_ROOT}\dotnet.exe" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
# | ||
# This file must be used by invoking "source activate.sh" from the command line. | ||
# You cannot run it directly. | ||
# To exit from the environment this creates, execute the 'deactivate' function. | ||
|
||
_MAGENTA="\033[0;95m" | ||
_YELLOW="\033[0;33m" | ||
_RESET="\033[0m" | ||
|
||
deactivate () { | ||
|
||
# reset old environment variables | ||
if [ ! -z "${_OLD_PATH:-}" ] ; then | ||
export PATH="$_OLD_PATH" | ||
unset _OLD_PATH | ||
fi | ||
|
||
if [ ! -z "${_OLD_PS1:-}" ] ; then | ||
export PS1="$_OLD_PS1" | ||
unset _OLD_PS1 | ||
fi | ||
|
||
# This should detect bash and zsh, which have a hash command that must | ||
# be called to get it to forget past commands. Without forgetting | ||
# past commands the $PATH changes we made may not be respected | ||
if [ -n "${BASH:-}" ] || [ -n "${ZSH_VERSION:-}" ] ; then | ||
hash -r 2>/dev/null | ||
fi | ||
|
||
unset DOTNET_ROOT | ||
unset DOTNET_MULTILEVEL_LOOKUP | ||
if [ ! "${1:-}" = "init" ] ; then | ||
# Remove the deactivate function | ||
unset -f deactivate | ||
fi | ||
} | ||
|
||
# Cleanup the environment | ||
deactivate init | ||
|
||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | ||
_OLD_PATH="$PATH" | ||
# Tell dotnet where to find itself | ||
export DOTNET_ROOT="$DIR/.dotnet" | ||
# Tell dotnet not to look beyond the DOTNET_ROOT folder for more dotnet things | ||
export DOTNET_MULTILEVEL_LOOKUP=0 | ||
# Put dotnet first on PATH | ||
export PATH="$DOTNET_ROOT:$PATH" | ||
|
||
# Set the shell prompt | ||
if [ -z "${DISABLE_CUSTOM_PROMPT:-}" ] ; then | ||
_OLD_PS1="$PS1" | ||
export PS1="(`basename \"$DIR\"`) $PS1" | ||
fi | ||
|
||
# This should detect bash and zsh, which have a hash command that must | ||
# be called to get it to forget past commands. Without forgetting | ||
# past commands the $PATH changes we made may not be respected | ||
if [ -n "${BASH:-}" ] || [ -n "${ZSH_VERSION:-}" ] ; then | ||
hash -r 2>/dev/null | ||
fi | ||
|
||
echo "${_MAGENTA}Enabled the .NET Core environment. Execute 'deactivate' to exit.${_RESET}" | ||
|
||
if [ ! -f "$DOTNET_ROOT/dotnet" ]; then | ||
echo "${_YELLOW}.NET Core has not been installed yet. Run $DIR/restore.sh to install it.${_RESET}" | ||
else | ||
echo "dotnet = $DOTNET_ROOT/dotnet" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.