Native AOT refuses to link for another OS. AotAnywhere removes that limit — Zig supplies the linker and sysroot, so dotnet publish -r <rid>resolves for Linux, macOS and Windows from any supported host.
<Project Sdk="Microsoft.NET.Sdk">
<Sdk Name="StuDev.AotAnywhere" Version="1.1.0" />$ dotnet publish -r linux-x64
$ dotnet publish -r osx-arm64
$ dotnet publish -r win-x64Links run directly through zig cc, which also supplies the sysroot for every target — the mechanism that makes cross-OS AOT possible.
No cross toolchains or system packages on the build machine. Bundled Apple sysroot stubs and symbol stripping — no LLVM install.
SDK props evaluate during restore, so the host-specific Zig package is fetched the first time with no further setup.
Every change builds all 10 target RIDs from Windows, Linux and macOS hosts and executes each binary on its target platform; the full matrix of 6 hosts × 10 target RIDs runs on demand.