How do I target arm64 on a net7.0-macos project?

1.6k Views Asked by At

I'm building a multi targeted app with frameworks net7.0-windows;net7.0-macos.

When I build the project, it is building to bin/Debug/net7.0-macos/osx-x64.

I'd like for it to target arm64 since I'm on an M1 mac.

Is this possible?

1

There are 1 best solutions below

2
PMF On BEST ANSWER

With .NET Core, you don't need to target a specific architecture, you just deploy for it, using e.g.

dotnet publish MyProject.csproj --runtime linux-arm64

This will create the bin/Debug/net7.0/publish folder with the project prepared for arm64.

However, that will most likely result in an error if your project targets net7.0-windows;net7.0-macos. You need to have a generic target specifier such as only net7.0. The operating-system specific targets net7.0-windows and net7.0-macos are only required if you use libraries that are only available for these frameworks, such as WPF or WinForms. Since you already target macos, I doubt you're using any of these, so why aren't you just using the generic net7.0 target?