When AOTing use the MonoAOTCompiler task, the aot object files will have either a dll.o, dll-llvm.o, or a .s extension, depending on the OutputType parameter. However, on desktop these are actually shared object files and should have the appropriate extension (.dylib or .so, depending on the platform), or else the runtime will not find and run the AOT'd code.
My proposal is to add another value the ObjectType enum, maybe "Shared", to control this.