{ lib, pkgs, pkgs-unstable, ... }: let dotnetVersions = [8 9 10]; dotnetCombined = pkgs.dotnetCorePackages.combinePackages (builtins.concatMap (v: let # dotnet = pkgs.dotnetCorePackages."dotnet_${builtins.toString x}"; in [ # dotnet.sdk # the runtime+aspnetcore packaged with the sdk pkgs.dotnetCorePackages."sdk_${builtins.toString v}_0" ]) dotnetVersions); # Custom packaged tools dotnetTools = with lib; { uno-check = with pkgs.dotnetCorePackages; buildDotnetGlobalTool { pname = "Uno.Check"; version = "1.32.17"; nugetHash = "sha256-BfTVF5uHu9/nyLXqdDEOHCxq6BVQWhsnDBbARzdLDAE="; executables = "uno-check"; dotnet-sdk = dotnet_9.sdk; dotnet-runtime = dotnet_9.runtime; meta = { homepage = "https://github.com/unoplatform/uno.check"; license = licenses.mit; maintainers = [maintainers.emileclarkb]; }; }; }; in { environment.systemPackages = with pkgs; [ # .NET dotnetCombined # .NET Tools dotnetTools.uno-check # Mono mono # NOTE: nixpkgs-unstable uses .NET8 SDK # WARNING: nixpkgs-25.05 uses .NET6 SDK (now marked insecure) pkgs-unstable.msbuild # .NET Framework Tools/Services omnisharp-roslyn netcoredbg ]; }