open-telemetry / opentelemetry-dotnet-instrumentation

OpenTelemetry .NET Automatic Instrumentation

Home Page:https://opentelemetry.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reconfigure platform targets

RassK opened this issue · comments

What

In the recent progress with arm64, there seems to be some old configurations left hanging.

AnyCPU x86 x64 (arm64)
Windows (.NET Framework) x86 + x64 x x -
Windows (.NET Core) (current) - x -
Linux (current) - x x
MacOS (current) - x -

Goal

  • Cleanup platform flags
  • Define a platform constant that can be used with preprocessor (_X64, _ARM64)
  • Make Platform variable usable with csproj

Proposal

  • Compile .NET Framework with AnyCPU flag
  • Compile .NET with x64 flag
  • Leave x86 flag only for .NET Framework's native dependencies
  • Add arm64 configuration

Breaking changes

  • Possibly a lot of output paths
  • VS development workflow? May need to change to x64 for default
  • ... ?

SIG: Prefer AnyCpu

I'm thinking to leave most managed code to AnyCpu (if possible) and remove alternative configurations.
Due AdditionalDeps needs anyway Nuke to deploy it in right way, then I can pass a custom platform variable from Nuke to the project to generate the right shared store.
IntegrationTests in the other hand need to be compiled with a proper Platform variable otherwise VS UI will not play nicely. I'm planning to connect the configuration with a preprocessor constant, so when you select between x64 and arm64 code blocks interactively activate or deactivate.

CC: @pjanotti @zacharycmontoya

As #3279 was dropped off, this is also no longer necessary due misunderstanding.