!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

113 Members
23 Servers

Load older messages


SenderMessageTime
24 Oct 2025
@manuelbaerenz:matrix.orgManuel Bärenz(I needed to do this anyways at some point, but I thought it was smarter to leave out that part for later. Probably wasn't.)13:18:14
@manuelbaerenz:matrix.orgManuel Bärenz

Either way this is what I have right now:

{
  lib,
  dotnetCorePackages,
  makeWrapper,
  stdenvNoCC,
}:

let
  url = "${customNugetServer}(Id='${pname}',Version='${version}')/Download";
  dlls = dotnetCorePackages.fetchNupkg {
    inherit url version pname;
    sha256 = "sha256-xEPmYA0wkQrDBl82HDa6khIMltNUV5gdzayt6J1Lwpw=";
  };
in

with dotnetCorePackages;

buildDotnetModule {
  inherit pname version;
  src = webapi-src;

  buildInputs = [
    aspnetcore_9_0
    dlls
  ];

  dotnet-sdk = sdk_9_0;
  dotnet-runtime = runtime_9_0;
}

13:19:08
@manuelbaerenz:matrix.orgManuel Bärenz

And it gets me this far:

       > Running phase: configureNuget
       > The template "NuGet Config" was created successfully.
       >
       > Processing post-creation actions...
       >
       >
       > Running phase: updateAutotoolsGnuConfigScriptsPhase
       > Running phase: configurePhase
       > Executing dotnetConfigureHook
       >   Determining projects to restore...
       > /build/myAPI/myApi.csproj : error NU1101: Unable to find package Swashbuckle.AspNetCore. No packages exist with this id in source(s): _nix
13:20:12
@manuelbaerenz:matrix.orgManuel BärenzI would have thought that the package is part of aspnet, but either it isn't or I'm adding dependencies incorrectly13:20:42
@corngood:corngood.comCorngood You probably need to add nuget deps: nugetDeps = ./deps.json, and then run $(nix-build -A [pkg].fetch-deps) 13:23:59
@corngood:corngood.comCorngood Also putting aspnetcore_9_0 in buildInputs is unusual. You might just want to use it for dotnet-runtime. 13:26:10
@manuelbaerenz:matrix.orgManuel BärenzThat seems like some great piece of tooling. Right now it fails because of some proprietary dependency from our partner, but it did download a bunch of packages that seemed sensible13:32:39
@manuelbaerenz:matrix.orgManuel Bärenz

That seems like some great piece of tooling.

Sorry, that sounded sarcastic, I meant it seriously 😅 and thanks for your help so far

13:41:53
@manuelbaerenz:matrix.orgManuel BärenzCan I point the fetch-deps to a custom nuget server for some packages? Or at least pass it a NuGet.config that has the custom server configured?13:46:14
@manuelbaerenz:matrix.orgManuel Bärenz Ohh. I think if I name it properly (nuget.config instead of NuGet.config) it detects it automatically. 13:53:13
@corngood:corngood.comCorngoodDid you get a complete deps.json then?14:09:51
27 Oct 2025
@manuelbaerenz:matrix.orgManuel Bärenz No, the fetcher failed and didn't create a deps.json. I'll try again soon when I get the complete closed source dependencies from our partner 08:32:51
2 Nov 2025
@emma:rory.gayEmma [it/its]question, how do i use the fetchdeps thing with the nix cli?19:31:00
@emma:rory.gayEmma [it/its]

doing a nix build .\#thing.passthru.fetch-deps && ./result fails with this:

/nix/store/q38z0zig1346h47vyianirr25fi9g42m-fetch-deps.sh: line 10: /nix/store/rxf86xrfxhij48hjqgysi8blj2c9hg88-source/ArcaneLibs.Blazor.Components/deps.nix: Read-only file system
19:31:45
@corngood:corngood.comCorngood
In reply to @emma:rory.gay

doing a nix build .\#thing.passthru.fetch-deps && ./result fails with this:

/nix/store/q38z0zig1346h47vyianirr25fi9g42m-fetch-deps.sh: line 10: /nix/store/rxf86xrfxhij48hjqgysi8blj2c9hg88-source/ArcaneLibs.Blazor.Components/deps.nix: Read-only file system
You can't use .# because that'll be a read-only copy. Try -f . instead
19:33:03
@emma:rory.gayEmma [it/its]oh apparently you can just pass a path... lol19:33:05
@emma:rory.gayEmma [it/its]that fails because i dont have a default.nix... lol19:33:38
@corngood:corngood.comCorngoodYou can pass a .nix file path instead of .19:34:14
@emma:rory.gayEmma [it/its]i have a flake.nix19:34:26
@emma:rory.gayEmma [it/its]thats the only .nix file i have19:34:29
@emma:rory.gayEmma [it/its](i dont want to maintain 6 identical copies of the same file when they only differ in at most 2 lines)19:35:22
@corngood:corngood.comCorngoodOh, you can also pass a path to fetch-deps itself to override it. That might be easiest 19:35:27
@emma:rory.gayEmma [it/its]yep discovered that one already19:35:38
@emma:rory.gayEmma [it/its]but i guess that's my best bet19:35:44
@corngood:corngood.comCorngoodYeah otherwise you need to do an impure eval, maybe using flake compat or something. Passing the path is probably easiest.19:37:12
@emma:rory.gayEmma [it/its]hm, i wonder what the best way would be to use nix to publish nuget packages19:53:00
@emma:rory.gayEmma [it/its] since packNupkg emits multiple nupkg files, im not sure how ot best deal with thta 19:53:31
@emma:rory.gayEmma [it/its]
┏━ Dependency Graph with 6 roots:
┃ ✔ ArcaneLibs.Blazor.Components-v1-1 ⏱ 12s
┃ ✔ ArcaneLibs.Logging-v1-1 ⏱ 12s
┃ ✔ ArcaneLibs.Timings-v1-1 ⏱ 12s
┃ ✔ ArcaneLibs-v1-1 ⏱ 12s
┃ ✔ ArcaneLibs.StringNormalisation-v1-1 ⏱ 12s
┃ ✔ ArcaneLibs.Legacy-v1-1 ⏱ 12s
┣━━━ Builds         
┗━ ∑ ⏵ 0 │ ✔ 6 │ ⏸ 0 │ Finished at 20:57:35 after 13s

also wondering how to best handle versioning, since my current ci setup uses current time for that

19:58:31
@emma:rory.gayEmma [it/its]
          rm -rf *.nupkg
          export DATE=`date -u '+%Y%m%d-%H%M%S'`
          export REV=`git rev-parse --short HEAD`
          dotnet pack --nologo --version-suffix preview.$DATE+$REV -o . ArcaneLibs
          dotnet pack --nologo --version-suffix preview.$DATE+$REV -o . ArcaneLibs.Logging
          dotnet pack --nologo --version-suffix preview.$DATE+$REV -o . ArcaneLibs.Timings
          dotnet pack --nologo --version-suffix preview.$DATE+$REV -o . ArcaneLibs.Legacy
          dotnet pack --nologo --version-suffix preview.$DATE+$REV -o . ArcaneLibs.StringNormalisation
          dotnet pack --nologo --version-suffix preview.$DATE+$REV -o . ArcaneLibs.Blazor.Components
          dotnet nuget push $(ls *.nupkg) -k ${{ secrets.NUGET_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate

that's my current ci setup, that i'd like to get rid of

19:59:17
@niklaskorz:matrix.orgniklaskorz joined the room.20:09:36

Show newer messages


Back to Room ListRoom Version: 9