Skip to content

Finalize default output path hierarchy #329

@nguerrera

Description

@nguerrera

project.json included RID in build output path if one was set, we include it in publish but not build.

We currently have the following output paths:

  • $(Platform)=AnyCPU
    • intermediate: obj\$(Configuration)\$(TargetFramework)
    • output: bin\$(Configuration)\$(TargetFramework)
    • publish w/o RID: bin\$(Configuration)\$(TargetFramework)\publish
    • publish w/ RID: bin\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish

  • $(Platform) != AnyCPU
    • intermediate: obj\$(Platform)\$(Configuration)\$(TargetFramework)
    • output: bin\$(Platform)\$(Configuration)\$(TargetFramework)
    • publish w/o RID: bin\$(Platform)\$(Configuration)\$(TargetFramework)\publish
    • publish w/ RID: bin\$(Platform)\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\publish

Issues:

  1. Should build also include $(RuntimeIdentifier) build as PJ does? Consensus is yes so far.

  2. Do we need to keep the $(Platform) dir if we also distinguish by $(RuntimeIdentifier) dir? These are technically indepedent, so I think so, but it makes things get quite deep.

  3. Should runtime identifier affect intermediate directory too?

  4. We should make it easier to control the hierarchy with fewer settings, i.e. same property for relative path from BaseOutputPath (bin) and and BaseIntermediateOutputPath (obj)

  5. Allow CLI to redirect output to a common root path with per-project subdirectories.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions