Nix + dotnet | 113 Members | |
| 23 Servers |
| Sender | Message | Time |
|---|---|---|
| 14 Aug 2025 | ||
| Actually looks like dotnet 9+ no longer try to guess, and just give:
dotnet 8 will prefer .sln, but not .slnf and doesn't understand .slnx | 20:12:47 | |
| It would be nice to have a portable way of not duplicating that logic... | 20:14:01 | |
| btw vmr10 builds fine for me | 20:13:43 | |
maybe we should turn that into a warn | 20:13:49 | |
| since we'll drop support for 8 eventually | 20:13:56 | |
| Turn what into a warn? | 20:14:47 | |
| using just a directory when there are multiple files (or at all, since we'd rather not duplicate the logic) | 20:15:12 | |
and also, to add to this problem.... we don't check for .vbproj either nor .fsproj | 20:15:24 | |
This is all it does in the PR. It just wants to know if you're attempting to build a solution | 20:16:16 | |
There's no more csproj bit. I don't think we need to check for multiple files because dotnet itself will just fail | 20:17:34 | |
yeah, but if there's .slnx and .slnf it'll fail, and to not duplicate that logic, wouldn't it be better to just explicitly demand a specific file? | 20:18:24 | |
I'll add slnx/f there as well. I'd rather not require an explicit file because I feel like if you set up a project where dotnet build works, you should be okay. Along the lines of Makefile. | 20:21:08 | |
| that'll just add more maintenance churn for us though, and usually building the whole solution is the wrong path anyways because for solutions where there are external tools and etc, projects just build the CLI/UI and its dependencies | 20:21:53 | |
| I have stumbled upon packages in nixpkgs before where people where restoring and building the whole solution unnecessarily when building the csproj for only the CLI/UI would've sufficed | 20:22:25 | |
ok, now I'm getting an unrelated error? error NETSDK1152: Found multiple publish output files with the same relative path: /build/bshmhbaaawknnvv0bnrm5sk2zvprrdq3-source/src/WebUI/deps.json, /build/bshmhbaaawknnvv0bnrm5sk2zvprrdq3-source/src/API/deps.json. [/build/bshmhbaaawknnvv0bnrm5sk2zvprrdq3-source/src/API/API.csproj] | 20:22:39 | |
| `{ pkgs ? import <nixpkgs> {} }: let Application = import ../Application { pkgs = pkgs; }; DataMatrixGenerator = import ../../utils/DataMatrixGenerator { pkgs = pkgs; }; Infrastrcture = import ../Infrastructure { pkgs = pkgs; }; WebUI = import ../WebUI { pkgs = pkgs; }; in pkgs.buildDotnetModule { pname = "API.csproj"; version = "0.1"; src = ../..; projectFile = "src/API/API.csproj"; buildInputs = [ Application DataMatrixGenerator Infrastrcture WebUI ]; dotnetPackFlags = [ "-p:RuntimeIdentifier=linux-x64" ]; nugetDeps = ./deps.json; packNupkg = false; } ` | 20:24:21 | |
| how 2 into matrix markdown | 20:24:31 | |
*
| 20:24:45 | |
| I hope maintenance would be on the order of the number of new solution file extensions they add, and we'd still need to check if they're building a solution, so it would only slightly simplify the logic | 20:25:07 | |
that's because you're including the deps.json into your project, you should exclude it from the projects by editing the .csproj or by filtering them out of src | 20:25:35 | |
*
| 20:25:36 | |
| I don't recommend embedding the nix files into your source like that, I'd put them into a separate directory where they don't mix with the code | 20:26:15 | |
Hmm, maybe we can use dotnet sln list to check for a solution | 20:34:22 | |
It's kinda hard to find info on conventions around projects instead of nixos, where do you normally put your *.nix files? | 20:36:04 | |
Speaking from personal experience when looking around, I commonly see flake.nix and flake.lock in the root of the repository, while extra files (package.nix/default.nix, deps.json, etc) being relegated to /nix/ | 20:39:25 | |
* Speaking from personal experience when looking around, I commonly see flake.nix and flake.lock in the root of the repository, while extra files (package.nix/default.nix, deps.json, etc) being relegated to a repo's /nix/ | 20:39:47 | |
| Alright, I'll start moving everything over there and try this again | 20:47:58 | |
| These builds take a pretty ridiculous amount of time, rough stuff | 20:48:15 | |
| Why is it picking up deps.json? Is that a special filename in dotnet? | 20:56:52 | |
| So because my computer needs replaced: I had to do an unplanned power down, my WSL filesystem seems to have corrupted, and it looks like I may not be able to do the build test in the near future. 😅 | 21:15:27 | |