Das ist im Grunde das gleiche, auch von der Verwendung her. DllExport ist neuer, das Unmanaged Exports wird schon länger nicht mehr gepflegt, weshalb ich für neue Projekte das neuere empfehlen würde. Außerdem ist das durch den Wizard für die Projektkonfiguration sogar noch einfacher.
Ja, bitte nutzt das neuere.
Ich habe vor weit über 10 Jahren aufgegeben, mit jeder neuen Version von msbuild oder .Net den Code anpassen zu müssen, der ildasm/ilasm findet.
War mir damals zu heikel es mit Mono.Cecil oder IKVM.Reflection zu machen.