!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

113 Members
23 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
21 Aug 2025
@whovian9369:matrix.orgWhovian9369 Hey just to check, is there a recommended way to add a Nuget repo to get Nugets from during a build?
Alternatively, is there a good way to build some Nugets from the same repo as the project I'm trying to build, provide them for fetch-deps, and use them for the build? I would just use a different Flake output, but I'm not sure if that's a "recommended" way to do that kind of thing.
06:45:46
@whovian9369:matrix.orgWhovian9369 Some context: I'm wanting to build https://github.com/FanTranslatorsInternational/Kuriimu2 (/src/ui/Kuriimu2.ImGui/Kuriimu2.ImGui.csproj) but fetch-deps is erroring on some dependencies from the repo itself: Kaligraphy, Kanvas, Kompression, and Komponent. 06:47:23
@whovian9369:matrix.orgWhovian9369 Huh, now I seem to be getting a successful fetch-deps for the extra dependencies, but nix build -L .#kanvas seems to be running into... error CS0246: The type or namespace name 'Komponent' could not be found (are you missing a using directive or an assembly reference?) 07:46:53
@emma:rory.gayEmma [it/its]doesnt nuget2nix include custom repos from nuget.config?09:24:56
@corngood:corngood.comCorngoodYeah, `fetch-deps` should just work. You wouldn't usually get CS0246 from a missing nuget dependency.10:40:58
@whovian9369:matrix.orgWhovian9369Well I don't have the repo added yet, but good to know, thanks.13:29:12
@whovian9369:matrix.orgWhovian9369

Sorry, those are basically two different errors.

The original error was NU1101 ("error NU1101: Unable to find package NAME. No packages exist with this id in source(s): nuget, _nix") for Kaligraphy, Kanvas, Kompression, and Komponent.

CS0246 is from me trying to self-package Komponent, Kaligraphy, and Kanvas to provide the derivation.
(k2Repo in the following is just me trying to set the used src once in flake.nix and passing it to the derivations that way so I don't have to update the used commit info more than once)

{
  packages.x86_64-linux = {
    default = pkgs.callPackage ./package.nix { inherit k2Repo; komponent = self.packages.${system}.komponent; kaligraphy = self.packages.${system}.kaligraphy; kanvas = self.packages.${system}.kanvas; };
    komponent = pkgs.callPackage ./komponent.nix { inherit k2Repo; };
    kaligraphy = pkgs.callPackage ./kaligraphy.nix { inherit k2Repo; komponent = self.packages.${system}.komponent; };
    kanvas = pkgs.callPackage ./kanvas.nix { inherit k2Repo; komponent = self.packages.${system}.komponent; };
  };
};
13:43:49
@whovian9369:matrix.orgWhovian9369 When trying to build kanvas I seem to actually be hitting CS0246 multiple times for Komponent and some other entries. (ByteOrder, BitOrder seem to be the other main prints for that error code.) 13:46:45
@whovian9369:matrix.orgWhovian9369Redacted or Malformed Event13:51:49
@whovian9369:matrix.orgWhovian9369I suppose sending the build log would be handy for support, huh? 😅 https://pastebin.com/raw/GDQbrGLe13:53:35
@corngood:corngood.comCorngood So you definitely want to build all of these as separate nix derivations? If so, you need to make sure the dependent projects reference the dependencies with PackageReference, and you'll need to make sure the dependencies are built with packNupkg = true, and included in buildInputs of the dependent derivation. 14:55:51
@corngood:corngood.comCorngood Actually, you don't have to do it that way. I suppose you could publish them and set up references without nuget, but I don't really see the benefit of doing it that way. 14:58:25
@whovian9369:matrix.orgWhovian9369 If you can think of a good alternate way to do it that makes fetch-deps happy, I'm all ears. 15:24:39
@whovian9369:matrix.orgWhovian9369

Oh I forgot to respond to the rest of the post, sorry.

If so, you need to make sure the dependent projects reference the dependencies with PackageReference, and you'll need to make sure the dependencies are built with packNupkg = true, and included in `buildInputs of the dependent derivation.

The derivations for kaligraphy and kanvas both have buildInputs = [ komponent ];, and all three have packNupkg = true;, though I'm not 100% sure if they all have PackageReference in the original project, I'll have to look back at that in a bit. I'm assuming that they are correctly doing that, though.

15:46:56
@corngood:corngood.comCorngood
  <ItemGroup>
    <PackageReference Include="Imgui.Forms" Version="1.5.11" />
    <PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
    <PackageReference Include="System.Drawing.Common" Version="5.0.3" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\..\lib\Konnect.Contract\Konnect.Contract.csproj" />
    <ProjectReference Include="..\..\lib\Konnect\Konnect.csproj" />
    <ProjectReference Include="..\..\lib\Kryptography.Contract\Kryptography.Contract.csproj" />
    <ProjectReference Include="..\..\lib\Kryptography\Kryptography.csproj" />
  </ItemGroup>

This project doesn't seem to use PackageReference for internal stuff, which isn't really surprising. I think you should just make it a single derivation and build the one project you actually want. Kuriimu2.ImGui.csproj?

16:54:50
@whovian9369:matrix.orgWhovian9369 Yeah I'm wanting to build Kuriimu2.ImGui.csproj so I'll see if I can collapse it all nicely, thanks for the time! 17:16:03
24 Aug 2025
@jammie:matrix.orgJamieMagee

I've got a couple of .NET 6 EOL PRs if anyone has time to review

  • https://github.com/NixOS/nixpkgs/pull/436377
  • https://github.com/NixOS/nixpkgs/pull/436407
08:37:44
@jammie:matrix.orgJamieMageeOne more: https://github.com/NixOS/nixpkgs/pull/43653918:25:49
26 Aug 2025
@jammie:matrix.orgJamieMageeGoing to try and do some mono cleanup as well https://github.com/NixOS/nixpkgs/pull/43697203:01:19
@jammie:matrix.orgJamieMageehttps://github.com/NixOS/nixpkgs/pull/43699103:16:53

Show newer messages


Back to Room ListRoom Version: 9