Hey friends. I’m trying to get one of my employer’s C# applications building on NixOS, and I hit the following issue:
/build/redacted.sln (default targets) ->
(Build target) ->
/build/redacted.csproj (default targets) ->
/nix/store/qgbgsx3qp7vrvy9f1r46365g7yr46ry0-mono-5.20.1.27/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets (GetReferenceAssemblyPaths target) ->
/nix/store/qgbgsx3qp7vrvy9f1r46365g7yr46ry0-mono-5.20.1.27/lib/mono/xbuild/14.0/bin/Microsoft.Common.targets: warning : Unable to find framework corresponding to the target framework moniker '.NETFramework,Version=v3.5,Profile=Client'. Framework assembly references will be resolved from the GAC, which might not be the intended behavior.
Here’s the config I’ve been tinkering with (including some commented-out stuff I’ve tried.) I have never touched C# before (and hope to never touch it again) so I’m pretty green in this area.
pkgname = pkgs.buildDotnetPackage rec {
baseName = "redacted";
version = "redacted";
src = pkgs.fetchgit {
url = "redacted";
rev = "redacted";
sha256 = "redacted";
};
#buildInputs = [ pkgs.dotnetfx35.pkg ];
#xBuildFlags = [
# "/p:TargetFrameworkProfile=v3.5"
#];
#patchPhase = ''
# substituteInPlace redacted.csproj --replace "Client" "Full"
#'';
#preBuild = ''
# export AssemblySearchPaths="${pkgs.dotnetfx35.referenceAssembly35Path}"
#'';
unpackPhase = ''
#They use a monorepo
cp -r ${src}/path/to/project/* .
chmod -R u+w *
#rm -rf bin
#rm -rf obj
'';
};