| 24 Sep 2025 |
Whovian9369 | Oh I switched it back to NET 8, whoops - Lemme try a second time. | 03:37:34 |
Corngood | You probably need to keep the restore call in configure and move only the build.sh | 03:38:08 |
Whovian9369 | Good idea, thank ya | 03:38:41 |
Corngood | Fetch stops after configure by default | 03:38:53 |
Whovian9369 | Well fetch-deps didn't yell, which is good. | 03:39:59 |
Whovian9369 | Build itself failed.
preConfigure = ''
dotnet --version > DotnetCliVersion.txt
for rid in $dotnetRuntimeIds; do dotnet restore --runtime "$rid" "build/_build.csproj"; done
'';
preBuild = ''
patchShebangs --build build.sh
./build.sh Codegen --configuration ${buildType}
'';
...
Executing dotnetBuildHook
patching script interpreter paths in build.sh
build.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/q7sqwn7i6w2b67adw0bmix29pxg85x3w-bash-5.3p3/bin/bash"
GNU bash, version 5.3.3(1)-release (x86_64-pc-linux-gnu)
Microsoft (R) .NET Core SDK version 9.0.305
You must install or update .NET to run this application.
App: /build/source/build/bin/Debug/_build
Architecture: x64
Framework: 'Microsoft.NETCore.App', version '8.0.0' (x64)
.NET location: /nix/store/pkvy24cwwrsg3q3rqkhak8k6j98ns5gy-dotnet-sdk-9.0.305/share/dotnet
The following frameworks were found:
9.0.9 at [/nix/store/pkvy24cwwrsg3q3rqkhak8k6j98ns5gy-dotnet-sdk-9.0.305/share/dotnet/shared/Microsoft.NETCore.App]
Learn more:
https://aka.ms/dotnet/app-launch-failed
To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=8.0.0&arch=x64&rid=linux-x64&os=linux
| 03:42:20 |
Whovian9369 | Wait, why is it trying to look for Net 8? Guess I need to try and troubleshoot that... | 03:42:48 |
Corngood | That executable must target net8, but it should run on 9. Maybe roll forward is disabled or something? | 03:44:47 |
Corngood | I still don't really understand where the executable is coming from. | 03:45:11 |
Whovian9369 | It's coming from build/_build.csproj as a CodeGen step before running the "real" build. | 03:46:48 |
Whovian9369 | [whovian@nixos-wsl:/tmp/wat/nix/hactoolnet/source]$ runPhase buildPhase
Running phase: buildPhase
Executing dotnetBuildHook
...
/nix/store/pkvy24cwwrsg3q3rqkhak8k6j98ns5gy-dotnet-sdk-9.0.305/share/dotnet/sdk/9.0.305/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(266,5): error NETSDK1005: Assets file '/tmp/wat/nix/hactoolnet/source/src/hactoolnet/obj/project.assets.json' doesn't have a target for 'net9.0'. Ensure that restore has run and that you have included 'net9.0' in the TargetFrameworks for your project. [/tmp/wat/nix/hactoolnet/source/src/hactoolnet/hactoolnet.csproj]
0 Warning(s)
1 Error(s)
...
So it definitely isn't expecting net8 at all, great. Guess I'm looking deeper! 😅
| 03:48:18 |
Corngood | https://learn.microsoft.com/en-us/dotnet/core/versions/selection#precedence | 03:48:54 |
Whovian9369 | Yeah it seems to be setting TargetFramework to net8.0 in build/_build.csproj so I'll need to patch that and possibly update Nuke.Common in the same csproj
<PackageReference Include="Nuke.Common" Version="8.0.0" />
| 03:49:50 |
Corngood | Try the roll forward options from that link first. It may be fine to target 8 and run on 9 | 03:51:02 |
Whovian9369 | Would you say the best solution is likely via env.DOTNET_ROLL_FORWARD = true? | 03:51:35 |
Whovian9369 | * Would you say the best solution is likely via env.DOTNET_ROLL_FORWARD = "LatestMajor";? | 03:51:57 |
Corngood | I'd give that a try at least | 03:52:35 |
Whovian9369 | Good news is that Nuke ran, but throws...
...
Building stage 2 codegen project.
23:53:31 [ERR] Target Codegen has thrown an exception
System.PlatformNotSupportedException: BinaryFormatter serialization and deserialization have been removed. See https://aka.ms/binaryformatter for more information.
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)
at Nuke.Common.Tooling.SettingsEntityExtensions.NewInstance[T](T settingsEntity) in /_/source/Nuke.Tooling/SettingsEntity.NewInstance.cs:line 23
at Nuke.Common.Tools.DotNet.DotNetRunSettingsExtensions.SetProjectFile[T](T toolSettings, String projectFile) in /_/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs:line 5507
at LibHacBuild.Build.RunCodegenStage2() in /tmp/wat/nix/hactoolnet/source/build/Build.cs:line 658
at LibHacBuild.Build.<get_Codegen>b__70_1() in /tmp/wat/nix/hactoolnet/source/build/Build.cs:line 206
at Nuke.Common.Execution.BuildExecutor.<>c.<Execute>b__4_2(Action x) in /_/source/Nuke.Build/Execution/BuildExecutor.cs:line 119
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at Nuke.Common.Execution.BuildExecutor.Execute(NukeBuild build, ExecutableTarget target, IReadOnlyCollection`1 previouslyExecutedTargets, Boolean failureMode) in /_/source/Nuke.Build/Execution/BuildExecutor.cs:line 119
...
| 03:53:56 |
Whovian9369 | * Good news is that Nuke ran, but throws...
...
Building stage 2 codegen project.
23:53:31 [ERR] Target Codegen has thrown an exception
System.PlatformNotSupportedException: BinaryFormatter serialization and deserialization have been removed. See https://aka.ms/binaryformatter for more information.
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)
at Nuke.Common.Tooling.SettingsEntityExtensions.NewInstance[T](T settingsEntity) in /_/source/Nuke.Tooling/SettingsEntity.NewInstance.cs:line 23
at Nuke.Common.Tools.DotNet.DotNetRunSettingsExtensions.SetProjectFile[T](T toolSettings, String projectFile) in /_/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs:line 5507
at LibHacBuild.Build.RunCodegenStage2() in /tmp/wat/nix/hactoolnet/source/build/Build.cs:line 658
at LibHacBuild.Build.<get_Codegen>b__70_1() in /tmp/wat/nix/hactoolnet/source/build/Build.cs:line 206
at Nuke.Common.Execution.BuildExecutor.<>c.<Execute>b__4_2(Action x) in /_/source/Nuke.Build/Execution/BuildExecutor.cs:line 119
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at Nuke.Common.Execution.BuildExecutor.Execute(NukeBuild build, ExecutableTarget target, IReadOnlyCollection`1 previouslyExecutedTargets, Boolean failureMode) in /_/source/Nuke.Build/Execution/BuildExecutor.cs:line 119
...
/nix/store/pkvy24cwwrsg3q3rqkhak8k6j98ns5gy-dotnet-sdk-9.0.305/share/dotnet/sdk/9.0.305/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(266,5): error NETSDK1005: Assets file '/tmp/wat/nix/hactoolnet/source/src/hactoolnet/obj/project.assets.json' doesn't have a target for 'net9.0'. Ensure that restore has run and that you have included 'net9.0' in the TargetFrameworks for your project. [/tmp/wat/nix/hactoolnet/source/src/hactoolnet/hactoolnet.csproj]
0 Warning(s)
1 Error(s)
...
| 03:54:24 |
Corngood | > Starting in .NET 9, the in-box BinaryFormatter implementation throws exceptions on use,
Ugh. Maybe you need to build this with net8 runtime available. | 04:10:07 |
Whovian9369 | Sounds like the best plan unfortunately, thanks. Happen to have a link to where the quote's from, please? | 04:10:39 |
Corngood | https://aka.ms/binaryformatter | 04:11:04 |
Whovian9369 | Either way, I was playing whack-a-mole with Nuke 9.0.x, so I wasn't having any luck with my plan either.
warning NU1603: Nuke.ProjectModel 9.0.3 depends on Microsoft.Build (>= 17.11.4) but Microsoft.Build 17.11.4 was not found. Microsoft.Build 17.12.6 was resolved instead. | 04:11:32 |
Corngood | You can use combinePackages to combine the 8 runtime with the 9 SDK, or both sdks | 04:11:48 |
Whovian9369 | * Either way, I was playing whack-a-mole with Nuke 9.0.x, so I wasn't having any luck with my plan either.
... warning NU1603: Nuke.ProjectModel 9.0.3 depends on Microsoft.Build (>= 17.11.4) but Microsoft.Build 17.11.4 was not found. Microsoft.Build 17.12.6 was resolved instead.
... warning NU1701: Package 'Microsoft.Build 17.12.6' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework 'net8.0'. This package may not be fully compatible with your project.
| 04:12:12 |
Whovian9369 | So separate dotnet-{runtime,sdk} wouldn't work for the former? | 04:12:46 |
Corngood | I don't think it'll work because the muxer can't find it and only one will be in the path | 04:13:32 |
Whovian9369 | I'll probably have to mess with that on my own then, bleh. Thanks for the time! | 04:14:13 |
| 30 Sep 2025 |
| 17lifers (at mikuplushfarm) joined the room. | 16:05:18 |
| 17lifers (at mikuplushfarm) | 16:06:51 |