!bxVOQwsVoHhZcmNDGw:nixos.org

Nix + dotnet

125 Members
24 Servers

Load older messages


SenderMessageTime
26 Sep 2023
@maka-mmparr77:matrix.orgmaka-77x joined the room.00:10:57
28 Sep 2023
@Joelixny:matrix.orgRuri joined the room.13:21:25
@Joelixny:matrix.orgRuri

I've been trying to package a dotnet 6 application and having issues with the Microsoft.Build.NoTargets SDK, if I pin the version in the .csproj the build fails during dotnetConfigureHook with error : Unable to find package Microsoft.Build.NoTargets. No packages exist with this id in source(s): nugetSource, if I leave it unpinned it seems to find it until it fails during dotnetBuildHook with error MSB4236: The SDK 'Microsoft.Build.NoTargets' specified could not be found.

I'm fairly new to nix and very unfamiliar with dotnet development (I was not involved in the actual development of this application), so I would appreciate some pointers as I'm out of ideas

13:39:32
@magikarpz:matrix.orgmdarochaare you able to share the source code to this app? and the nix code?14:07:11
@Joelixny:matrix.orgRuri
In reply to @magikarpz:matrix.org
are you able to share the source code to this app? and the nix code?

Here's the source code of the application: https://github.com/Assistant/Hive
The nix code currently lives only in my nixos config with this file being called by callPackage,

{
  lib,
  fetchFromGitHub,
  buildDotnetModule,
  dotnetCorePackages,
  mono,
  dotnet-sdk,
  openssh,
}:
buildDotnetModule rec {
  fullSrc =
    (fetchFromGitHub {
      owner = "Assistant";
      repo = pname;
      rev = "66649a2a343797a98f3228172ffc17052f5442d1";
      sha256 = "sha256-iG49/XLi3Skhp8NY5IAqSU5IfMj4y4GNIm2huewiu9Q=";
      fetchSubmodules = true;
    })
    .overrideAttrs (_: {
      GIT_CONFIG_COUNT = 1;
      GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
      GIT_CONFIG_VALUE_0 = "git@github.com:";
    });

  pname = "Hive";
  version = "0.0.1";
  src = fullSrc;

  projectFile = "Hive.sln";
  nugetDeps = ./deps.nix;
  selfContainedBuild = true;
  # dotnetInstallFlags = ["--framework" "net6.0"];

  # dotnet-sdk = dotnetCorePackages.sdk_6_0;
  # dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;

  nativeCheckInputs = [mono dotnet-sdk];
  # buildInputs = [openssh];
  # testProjectFile = "src/Hive.Test/Hive.Tests.csproj";

  meta = with lib; {
    homepage = "https://github.com/Atlas-Rhythm/Hive";
    description = "A general backend project for modding communities";
    license = licenses.agpl3Only;
  };
}
14:18:46
@magikarpz:matrix.orgmdarochawhy did you add dotnet-sdk to inputs? it should be already handled by buildDotnetModule14:26:08
@Joelixny:matrix.orgRuriI don't have a good answer other than seeing it somewhere and trying things to see what would work, let me give it a try without it14:28:38
@magikarpz:matrix.orgmdarocha overall the source seems a bit misconfigured 14:29:56
@magikarpz:matrix.orgmdarochait may require a bit of tweaking to make it work properly14:30:05
@Joelixny:matrix.orgRuriThe application source, I assume?14:30:26
@magikarpz:matrix.orgmdarochayup14:31:13
@magikarpz:matrix.orgmdarocha i’ll let you know if i figure something out 14:31:24
@Joelixny:matrix.orgRuriThank you o714:32:26
30 Sep 2023
@magikarpz:matrix.orgmdarocha

Ruri: managed to make it compile with the following code:

{
  lib,
  fetchFromGitHub,
  buildDotnetModule,
  dotnetCorePackages,
  mono,
  dotnet-sdk,
  openssh,
}:

buildDotnetModule rec {
  fullSrc =
    (fetchFromGitHub {
      owner = "Assistant";
      repo = pname;
      rev = "66649a2a343797a98f3228172ffc17052f5442d1";
      sha256 = "sha256-iG49/XLi3Skhp8NY5IAqSU5IfMj4y4GNIm2huewiu9Q=";
      fetchSubmodules = true;
    })
    .overrideAttrs (_: {
      GIT_CONFIG_COUNT = 1;
      GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
      GIT_CONFIG_VALUE_0 = "git@github.com:";
    });

  pname = "Hive";
  version = "0.0.1";
  src = fullSrc;

  projectFile = "src/Hive/Hive.csproj";
  nugetDeps = ./deps.nix;

  dotnet-sdk = dotnetCorePackages.sdk_6_0;
  dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;

  dotnetInstallFlags = [ "--framework" "net6.0" ];
  #testProjectFile = "src/Hive.Test/Hive.Tests.csproj";

  meta = with lib; {
    homepage = "https://github.com/Atlas-Rhythm/Hive";
    description = "A general backend project for modding communities";
    license = licenses.agpl3Only;
  };
}
11:19:23
@magikarpz:matrix.orgmdarocha make sure you have update your nixpkgs reference, I'm using the current master branch (7b22218f11c9b8c3cc4b3baa97969201238d6783) and didn't encounter the problems you mentioned, think it got fixed in some PR some time ago 11:20:20
@magikarpz:matrix.orgmdarocha also rerun fetch-deps 11:20:24
@Joelixny:matrix.orgRuri
In reply to @magikarpz:matrix.org

Ruri: managed to make it compile with the following code:

{
  lib,
  fetchFromGitHub,
  buildDotnetModule,
  dotnetCorePackages,
  mono,
  dotnet-sdk,
  openssh,
}:

buildDotnetModule rec {
  fullSrc =
    (fetchFromGitHub {
      owner = "Assistant";
      repo = pname;
      rev = "66649a2a343797a98f3228172ffc17052f5442d1";
      sha256 = "sha256-iG49/XLi3Skhp8NY5IAqSU5IfMj4y4GNIm2huewiu9Q=";
      fetchSubmodules = true;
    })
    .overrideAttrs (_: {
      GIT_CONFIG_COUNT = 1;
      GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf";
      GIT_CONFIG_VALUE_0 = "git@github.com:";
    });

  pname = "Hive";
  version = "0.0.1";
  src = fullSrc;

  projectFile = "src/Hive/Hive.csproj";
  nugetDeps = ./deps.nix;

  dotnet-sdk = dotnetCorePackages.sdk_6_0;
  dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;

  dotnetInstallFlags = [ "--framework" "net6.0" ];
  #testProjectFile = "src/Hive.Test/Hive.Tests.csproj";

  meta = with lib; {
    homepage = "https://github.com/Atlas-Rhythm/Hive";
    description = "A general backend project for modding communities";
    license = licenses.agpl3Only;
  };
}
Thanks! that nix code successfully builds even without updating my flake lockfile, setting the sdk and runtime and using the .csproj file instead of the solution seems to do the trick
14:31:22
16 Oct 2023
@emma:conduit.rory.gayEmma [it/its] ⚡️ joined the room.02:17:41
@emma:conduit.rory.gayEmma [it/its] ⚡️
{ pkgs ? import <nixpkgs> {} }:

pkgs.symlinkJoin {
  name = "dotnet-pack";
  paths = [ pkgs.dotnet-sdk_8 pkgs.dotnet-sdk_7 pkgs.dotnet-sdk ];
  postBuild = ''
    rm -rfv $out/bin
    rm -rfv $out/dotnet
    cp -rv ${pkgs.dotnet-sdk_8}/dotnet $out/
    cp -rv ${pkgs.dotnet-sdk_8}/bin $out/
  '';
}

wanted to share this derivation incase anyone ever needed to use multiple dotnet versions at once

02:18:11
@emma:conduit.rory.gayEmma [it/its] ⚡️
[Rory@Rory-desktop:/Rory-Open-Architecture]$ dotnet --list-sdks
6.0.414 [/nix/store/g0j4gcarcbqkxl3i14h4ls3qsmyjdc2m-dotnet-pack/sdk]
7.0.401 [/nix/store/g0j4gcarcbqkxl3i14h4ls3qsmyjdc2m-dotnet-pack/sdk]
8.0.100-rc.1.23455.8 [/nix/store/g0j4gcarcbqkxl3i14h4ls3qsmyjdc2m-dotnet-pack/sdk]
02:18:24
@emma:conduit.rory.gayEmma [it/its] ⚡️needed that to make rider work with a solution that has both net7 and net802:19:11
@magikarpz:matrix.orgmdarocha we already have that in nixpkgs 06:15:39
@magikarpz:matrix.orgmdarochait’s also described in the nixpkgs manual06:15:46
@magikarpz:matrix.orgmdarochadotnetCorePackages.combinePackages06:15:57
17 Oct 2023
@emma:conduit.rory.gayEmma [it/its] ⚡️ changed their display name from Emma [it/its] ⚡️ to Emma [it/its] (MRU test) ⚡️.15:25:22
@emma:conduit.rory.gayEmma [it/its] ⚡️ changed their display name from Emma [it/its] (MRU test) ⚡️ to Emma [it/its] ⚡️.15:32:43
@emma:conduit.rory.gayEmma [it/its] ⚡️ 15:33:56
@emma:conduit.rory.gayEmma [it/its] ⚡️ changed their display name from Emma [it/its] ⚡️ to Emma [it/its] (MRU VeryFast(tm) test) ⚡️.15:37:11
@emma:conduit.rory.gayEmma [it/its] ⚡️ 15:37:31
@emma:conduit.rory.gayEmma [it/its] ⚡️ changed their display name from Emma [it/its] (MRU VeryFast(tm) test) ⚡️ to Emma [it/its] (MRU VeryFast(tm) test (maybe??)) ⚡️.15:40:44

Show newer messages


Back to Room ListRoom Version: 9