
It can no longer be dependent on Cli.Utils, since that will affect which version of NuGet gets used. It's better for this small console app to just depend on VersionTools.
53 lines
1.4 KiB
PowerShell
53 lines
1.4 KiB
PowerShell
#
|
|
# Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
#
|
|
|
|
param(
|
|
[switch]$Help,
|
|
[switch]$Update)
|
|
|
|
if($Help)
|
|
{
|
|
Write-Host "Usage: .\update-dependencies.ps1"
|
|
Write-Host ""
|
|
Write-Host "Options:"
|
|
Write-Host " -Help Display this help message"
|
|
Write-Host " -Update Update dependencies (but don't open a PR)"
|
|
exit 0
|
|
}
|
|
|
|
$Architecture='x64'
|
|
|
|
$RepoRoot = "$PSScriptRoot\..\.."
|
|
$ProjectPath = "$PSScriptRoot\update-dependencies.csproj"
|
|
$ProjectArgs = ""
|
|
|
|
if ($Update)
|
|
{
|
|
$ProjectArgs = "--Update"
|
|
}
|
|
|
|
# Use a repo-local install directory (but not the artifacts directory because that gets cleaned a lot
|
|
if (!$env:DOTNET_INSTALL_DIR)
|
|
{
|
|
$env:DOTNET_INSTALL_DIR="$RepoRoot\.dotnet_stage0\$Architecture"
|
|
}
|
|
|
|
# Install a stage 0
|
|
Write-Host "Installing .NET Core CLI Stage 0"
|
|
& "$RepoRoot\scripts\obtain\dotnet-install.ps1" -Channel "master" -Architecture $Architecture
|
|
if($LASTEXITCODE -ne 0) { throw "Failed to install stage0" }
|
|
|
|
# Put the stage0 on the path
|
|
$env:PATH = "$env:DOTNET_INSTALL_DIR;$env:PATH"
|
|
|
|
# Restore the app
|
|
Write-Host "Restoring $ProjectPath..."
|
|
dotnet restore "$ProjectPath"
|
|
if($LASTEXITCODE -ne 0) { throw "Failed to restore" }
|
|
|
|
# Run the app
|
|
Write-Host "Invoking App $ProjectPath..."
|
|
dotnet run -p "$ProjectPath" "$ProjectArgs"
|
|
if($LASTEXITCODE -ne 0) { throw "Build failed" }
|