@@ -36,40 +36,17 @@ function _get_target_value(target, name)
3636 return _first (target :values (name ))
3737end
3838
39- -- detect default target framework from dotnet sdk version, e.g. "net8.0"
39+ -- get default target framework from dotnet toolchain sdk version, e.g. "net8.0"
4040function _get_default_target_framework (context )
41- local dotnet = _first (context .target :get (" toolset.cs" )) or " dotnet"
42- dotnet = tostring (dotnet )
43- _g .default_target_frameworks = _g .default_target_frameworks or {}
44- local cached = _g .default_target_frameworks [dotnet ]
45- if cached ~= nil then
46- return cached
47- end
48-
49- local major = nil
50- local sdks = try { function ()
51- return os .iorunv (dotnet , {" --list-sdks" })
52- end }
53- if sdks then
54- for line in sdks :gmatch (" [^\r\n ]+" ) do
55- local line_major = tonumber (line :match (" ^%s*(%d+)%.%d+%.%d+" ))
56- if line_major and (not major or line_major > major ) then
57- major = line_major
58- end
41+ local major
42+ local toolchain = context .target :toolchain (" dotnet" )
43+ if toolchain then
44+ local sdkver = toolchain :config (" sdkver" )
45+ if sdkver then
46+ major = tonumber (tostring (sdkver ):match (" ^(%d+)" ))
5947 end
6048 end
61- if not major then
62- local version = try { function ()
63- return os .iorunv (dotnet , {" --version" })
64- end }
65- if version then
66- major = tonumber (version :match (" ^%s*(%d+)" ))
67- end
68- end
69-
70- local target_framework = major and (" net" .. tostring (major ) .. " .0" ) or " net8.0"
71- _g .default_target_frameworks [dotnet ] = target_framework
72- return target_framework
49+ return " net" .. tostring (major or 8 ) .. " .0"
7350end
7451
7552-- resolve target framework from user config or auto-detect from dotnet sdk
0 commit comments