diff --git a/bucket/aspnetcore-runtime.json b/bucket/aspnetcore-runtime.json new file mode 100644 index 00000000000000..0513fc08bccbdd --- /dev/null +++ b/bucket/aspnetcore-runtime.json @@ -0,0 +1,96 @@ +{ + "version": "10.0.12", + "description": "Microsoft ASP.NET Core Runtime, including the .NET Runtime, installed from the ZIP archive without admin rights", + "homepage": "https://dotnet.microsoft.com/download/dotnet", + "license": "MIT", + "suggest": { + "vcredist": "extras/vcredist2022" + }, + "architecture": { + "64bit": { + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.12/aspnetcore-runtime-10.0.12-win-x64.zip", + "hash": "sha512:b6958736bd42eff9c78a27a489d43eb0a39c6201039070ecb76a93cb96c519f07c86fa8b62034c6dd1a82a4c8ad0bd781e052008a7ec4cc48f9f792227d9c7ac" + }, + "32bit": { + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.12/aspnetcore-runtime-10.0.12-win-x86.zip", + "hash": "sha512:248012bb409f9f6ee369c45832f5f20b66e765290572454cc475534ce64878edb5f38ec936d28cce42f4f9a2ba1654dd8238d8f91e5e01e3d4f70585cbe1d329" + }, + "arm64": { + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.12/aspnetcore-runtime-10.0.12-win-arm64.zip", + "hash": "sha512:d18b4c3015698ea64cdb3581d52984b3477703bd7e59600b88341343b5f35f6d8f8d353ecc560a2586c79796abef73d36c8fc0ccec954da8bebe8b49f3e032b9" + } + }, + "post_install": [ + "# Link this runtime into the root shared by all .NET packages (side-by-side)", + "$root = Join-Path (basedir $global) 'shared\\dotnet'", + "foreach ($d in Get-ChildItem \"$original_dir\\host\\fxr\\*\", \"$original_dir\\shared\\*\\*\" -Directory) {", + " $link = Join-Path $root $d.FullName.Substring($original_dir.Length + 1)", + " New-Item -ItemType Directory -Force (Split-Path $link) | Out-Null", + " $old = Get-Item $link -Force -ErrorAction SilentlyContinue", + " if ($old -and (Test-Path $link)) { continue }", + " if ($old) { [IO.Directory]::Delete($link) }", + " New-Item -ItemType Junction -Path $link -Target $d.FullName | Out-Null", + "}", + "$exe = \"$root\\dotnet.exe\"", + "if (!(Test-Path $exe) -or (Get-Item $exe).VersionInfo.FileVersionRaw -lt (Get-Item \"$original_dir\\dotnet.exe\").VersionInfo.FileVersionRaw) {", + " Copy-Item \"$original_dir\\dotnet.exe\" $exe -Force", + "}", + "New-Item -ItemType Junction -Path \"$original_dir\\dotnet-root\" -Target $root | Out-Null" + ], + "env_add_path": "dotnet-root", + "env_set": { + "DOTNET_ROOT": "$(basedir $global)\\shared\\dotnet" + }, + "pre_uninstall": [ + "# Unlink this package's runtimes, handing each over to another installed package that provides it", + "$root = Join-Path (basedir $global) 'shared\\dotnet'", + "if (Get-Item \"$dir\\dotnet-root\" -Force -ErrorAction SilentlyContinue) { [IO.Directory]::Delete(\"$dir\\dotnet-root\") }", + "if (Test-Path $root) {", + " $pattern = \"$root\\host\\fxr\\*\", \"$root\\shared\\*\\*\"", + " $owned = Get-ChildItem $pattern -Directory | Where-Object { \"$($_.Target)\".StartsWith(\"$dir\\\", 'OrdinalIgnoreCase') }", + " $others = Get-ChildItem (Join-Path (appsdir $global) '*\\*') -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Parent.FullName -ne (Split-Path $dir) } | Sort-Object { $_.Name -ne 'current' }", + " foreach ($l in $owned) {", + " $rel = $l.FullName.Substring($root.Length + 1)", + " [IO.Directory]::Delete($l.FullName)", + " $src = $others | ForEach-Object { Join-Path $(if ($_.Target) { \"$($_.Target)\" } else { $_.FullName }) $rel } | Where-Object { Test-Path $_ } | Select-Object -First 1", + " if ($src) { New-Item -ItemType Junction -Path $l.FullName -Target $src | Out-Null }", + " }", + " if (!(Get-ChildItem $pattern -Directory)) {", + " if (!(Test-Path \"$root\\sdk\")) { Remove-Item \"$root\\dotnet.exe\" -Force -ErrorAction SilentlyContinue }", + " foreach ($p in \"$root\\host\\fxr\", \"$root\\shared\\*\", \"$root\\host\", \"$root\\shared\", $root) {", + " Get-Item $p -ErrorAction SilentlyContinue | Where-Object { !(Get-ChildItem $_.FullName -Force) } | Remove-Item", + " }", + " }", + "}" + ], + "post_uninstall": [ + "# env_set removal wiped DOTNET_ROOT; restore it while another runtime remains", + "$root = Join-Path (basedir $global) 'shared\\dotnet'", + "if (Test-Path $root) {", + " Set-EnvVar -Name 'DOTNET_ROOT' -Value $root -Global:$global", + " $env:DOTNET_ROOT = $root", + "}" + ], + "checkver": { + "url": "https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json", + "jsonpath": "$.releases-index[?(@.support-phase == 'active')].latest-runtime", + "regex": "([\\d.]+)" + }, + "autoupdate": { + "architecture": { + "64bit": { + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$version/aspnetcore-runtime-$version-win-x64.zip" + }, + "32bit": { + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$version/aspnetcore-runtime-$version-win-x86.zip" + }, + "arm64": { + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/$version/aspnetcore-runtime-$version-win-arm64.zip" + } + }, + "hash": { + "url": "https://builds.dotnet.microsoft.com/dotnet/release-metadata/$majorVersion.$minorVersion/releases.json", + "regex": "(?s)$basename.*?$sha512" + } + } +}