diff --git a/hosts/modules/langs/dotnet.nix b/hosts/modules/langs/dotnet.nix new file mode 100644 index 0000000..d9c3177 --- /dev/null +++ b/hosts/modules/langs/dotnet.nix @@ -0,0 +1,61 @@ +{ + 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 + ]; +}