Installers for all platforms and related fixes #1
+14
-3
@@ -216,11 +216,22 @@ def fetch_vpk() -> Path:
|
|||||||
|
|
||||||
|
|
||||||
def _dotnet() -> str:
|
def _dotnet() -> str:
|
||||||
"""Resolve the dotnet host, preferring DOTNET_ROOT (a plain `dotnet` may
|
"""Resolve the dotnet host with an SDK/modern runtime.
|
||||||
resolve to a runtime-only installation without the SDK/runtime we need)."""
|
|
||||||
|
A plain `dotnet` may resolve to a runtime-only installation (e.g.
|
||||||
|
C:\\Program Files\\dotnet), and long-running services (CI runners) may
|
||||||
|
carry a stale environment without DOTNET_ROOT or scoop paths — so probe
|
||||||
|
known locations explicitly.
|
||||||
|
"""
|
||||||
|
candidates = []
|
||||||
root = os.environ.get("DOTNET_ROOT")
|
root = os.environ.get("DOTNET_ROOT")
|
||||||
if root:
|
if root:
|
||||||
exe = Path(root) / ("dotnet.exe" if sys.platform == "win32" else "dotnet")
|
candidates.append(Path(root))
|
||||||
|
if sys.platform == "win32":
|
||||||
|
candidates.append(Path(r"C:\ProgramData\scoop\apps\dotnet-sdk\current"))
|
||||||
|
exe_name = "dotnet.exe" if sys.platform == "win32" else "dotnet"
|
||||||
|
for base in candidates:
|
||||||
|
exe = base / exe_name
|
||||||
if exe.exists():
|
if exe.exists():
|
||||||
return str(exe)
|
return str(exe)
|
||||||
return "dotnet"
|
return "dotnet"
|
||||||
|
|||||||
Reference in New Issue
Block a user