To znany problem. Użycie SMO przeciwko .Net 4.0 nie zostało zatwierdzone ani ogłoszone przez Microsoft.
Istnieje nieobsługiwana opcja, aby to zadziałało (dodaj to do swojego pliku app.config):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>