Remove Dotnet.ps1 post-generation script (#4585)

This commit is contained in:
Aleksandr Chebotov
2021-11-26 10:41:26 +03:00
committed by GitHub
parent 120fc45b76
commit acc3d7cc0d
4 changed files with 108 additions and 15 deletions

View File

@@ -1,11 +0,0 @@
$latestPath = [System.Environment]::GetEnvironmentVariable('PATH', [System.EnvironmentVariableTarget]::Machine)
$dotnetPath = "$env:USERPROFILE\.dotnet\tools"
if (-not $latestPath.Contains($dotnetPath))
{
$latestPath = "$dotnetPath;$latestPath"
[System.Environment]::SetEnvironmentVariable('PATH', $latestPath, [System.EnvironmentVariableTarget]::Machine)
}
# Recreate the config using the 'dotnet nuget list source command'
dotnet nuget list source

View File

@@ -8,12 +8,19 @@ param()
. $PSScriptRoot\VisualStudioHelpers.ps1 . $PSScriptRoot\VisualStudioHelpers.ps1
Export-ModuleMember -Function @( Export-ModuleMember -Function @(
'Connect-Hive'
'Disconnect-Hive'
'Test-MachinePath' 'Test-MachinePath'
'Get-MachinePath' 'Get-MachinePath'
'Get-DefaultPath'
'Set-MachinePath' 'Set-MachinePath'
'Set-DefaultPath'
'Add-MachinePathItem' 'Add-MachinePathItem'
'Add-DefaultPathItem'
'Get-SystemVariable' 'Get-SystemVariable'
'Get-DefaultVariable'
'Set-SystemVariable' 'Set-SystemVariable'
'Set-DefaultVariable'
'Install-Binary' 'Install-Binary'
'Install-VisualStudio' 'Install-VisualStudio'
'Get-ToolsetContent' 'Get-ToolsetContent'

View File

@@ -1,3 +1,38 @@
function Connect-Hive {
param(
[string]$FileName = "C:\Users\Default\NTUSER.DAT",
[string]$SubKey = "HKLM\DEFAULT"
)
Write-Host "Loading the file $FileName to the Key $SubKey"
if (Test-Path $SubKey.Replace("\",":")) {
return
}
$result = reg load $SubKey $FileName *>&1
if ($LASTEXITCODE -ne 0) {
Write-Host "Failed to load hive: $result"
exit 1
}
}
function Disconnect-Hive {
param(
[string]$SubKey = "HKLM\DEFAULT"
)
Write-Host "Unloading the hive $SubKey"
if (-not (Test-Path $SubKey.Replace("\",":"))) {
return
}
$result = reg unload $SubKey *>&1
if ($LASTEXITCODE -ne 0) {
Write-Host "Failed to unload hive: $result"
exit 1
}
}
function Get-SystemVariable { function Get-SystemVariable {
param( param(
[string]$SystemVariable [string]$SystemVariable
@@ -6,6 +41,19 @@ function Get-SystemVariable {
[System.Environment]::GetEnvironmentVariable($SystemVariable, "Machine") [System.Environment]::GetEnvironmentVariable($SystemVariable, "Machine")
} }
function Get-DefaultVariable {
param(
[string]$DefaultVariable,
[string]$Name = "DEFAULT\Environment",
[bool]$Writable = $false
)
$key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey($Name, $Writable)
$key.GetValue($DefaultVariable, "", "DoNotExpandEnvironmentNames")
$key.Handle.Close()
[System.GC]::Collect()
}
function Set-SystemVariable { function Set-SystemVariable {
param( param(
[string]$SystemVariable, [string]$SystemVariable,
@@ -16,10 +64,30 @@ function Set-SystemVariable {
Get-SystemVariable $SystemVariable Get-SystemVariable $SystemVariable
} }
function Set-DefaultVariable {
param(
[string]$DefaultVariable,
[string]$Value,
[string]$Name = "DEFAULT\Environment",
[string]$Kind = "ExpandString",
[bool]$Writable = $true
)
$key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey($Name, $Writable)
$key.SetValue($DefaultVariable, $Value, $Kind)
Get-DefaultVariable $DefaultVariable
$key.Handle.Close()
[System.GC]::Collect()
}
function Get-MachinePath { function Get-MachinePath {
Get-SystemVariable PATH Get-SystemVariable PATH
} }
function Get-DefaultPath {
Get-DefaultVariable Path
}
function Set-MachinePath { function Set-MachinePath {
param( param(
[string]$NewPath [string]$NewPath
@@ -28,6 +96,14 @@ function Set-MachinePath {
Set-SystemVariable PATH $NewPath Set-SystemVariable PATH $NewPath
} }
function Set-DefaultPath {
param(
[string]$NewPath
)
Set-DefaultVariable PATH $NewPath
}
function Test-MachinePath { function Test-MachinePath {
param( param(
[string]$PathItem [string]$PathItem
@@ -46,3 +122,15 @@ function Add-MachinePathItem {
$newPath = $PathItem + ';' + $currentPath $newPath = $PathItem + ';' + $currentPath
Set-MachinePath -NewPath $newPath Set-MachinePath -NewPath $newPath
} }
function Add-DefaultPathItem {
param(
[string]$PathItem
)
Connect-Hive
$currentPath = Get-DefaultPath
$newPath = $PathItem + ';' + $currentPath
Set-DefaultPath -NewPath $newPath
Disconnect-Hive
}

View File

@@ -110,12 +110,21 @@ function InstallAllValidSdks()
function RunPostInstallationSteps() function RunPostInstallationSteps()
{ {
# Add dotnet to PATH
Add-MachinePathItem "C:\Program Files\dotnet" Add-MachinePathItem "C:\Program Files\dotnet"
# Run script at startup for all users
$cmdDotNet = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -Command "[System.Environment]::SetEnvironmentVariable(''PATH'',"""$env:USERPROFILE\.dotnet\tools;$env:PATH""", ''USER'')"'
# Update Run key to run a script at logon # Remove NuGet Folder
Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "DOTNETUSERPATH" -Value $cmdDotNet $nugetPath = "$env:APPDATA\NuGet"
if (Test-Path $nugetPath) {
Remove-Item -Path $nugetPath -Force -Recurse
}
# Generate and copy new NuGet.Config config
dotnet nuget list source | Out-Null
Copy-Item -Path $nugetPath -Destination C:\Users\Default\AppData\Roaming -Force -Recurse
# Add %USERPROFILE%\.dotnet\tools to USER PATH
Add-DefaultPathItem "%USERPROFILE%\.dotnet\tools"
} }
InstallAllValidSdks InstallAllValidSdks