buildpacks: dotnet build pack sometimes uses the wrong runtimeconfig.json

This was reported via this .NET Functions Framework issue.

When a .NET build contains multiple projects, using GOOGLE_BUILDABLE to specify the “main” one, there’s the possibility of multiple runtimeconfig.json files being generated, one for each project. (For example, a dependency project which targets netcoreapp3.1 and includes a package dependency of EntityFramework.)

The current code uses the first one found, whereas it should use the one associated with the “main” project.

There’s a repro in the linked issue, or I can create a new one if that’s useful.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 1
  • Comments: 41 (22 by maintainers)

Commits related to this issue

Most upvoted comments

Sorry for the late response @EatonZ. I totally missed your comment on Oct 24th.

I believe the current design is to support latest dotnet version via semver like --env GOOGLE_ASP_NET_CORE_VERSION="6.x.x". We will unlikely to change this behavior in the short term to be honest.

I have a repro now. I couldn’t repro it yesterday due to a problem when I pulling that zip file.

found multiple runtimeconfig.json files
found runtimeconfig.json file: ServiceSight.Dependancy/bin/Release/netcoreapp3.1/ServiceSight.Dependancy.runtimeconfig.json

{
  "runtimeOptions": {
    "tfm": "netcoreapp3.1",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "3.1.0"
    }
  }
}
found runtimeconfig.json file: ServiceSight.FunctionTest/bin/Release/netcoreapp3.1/ServiceSight.FunctionTest.runtimeconfig.json

{
  "runtimeOptions": {
    "tfm": "netcoreapp3.1",
    "framework": {
      "name": "Microsoft.AspNetCore.App",
      "version": "3.1.0"
    }
  }
}
found runtimeconfig.json file: bin/ServiceSight.FunctionTest.runtimeconfig.json

{
  "runtimeOptions": {
    "tfm": "netcoreapp3.1",
    "framework": {
      "name": "Microsoft.AspNetCore.App",
      "version": "3.1.0"
    }
  }
}

We are working on a fix for this and prioritizing it’s rollout.