And this is exactly how it works with Windows Store apps. You upload .NET bytecode, and the Store delivers the correct compiled-to-native code for the user's architecture.
You can also make fat packages, if you don't wanna distribute through the store.