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.
As #3279 was dropped off, this is also no longer necessary due misunderstanding.