CLR не совместим с прямым.
Посмотрите на ссылку
DLL может предоставлять интерфейс, который использует функции 3.0 / 3.5 / 4.0, поэтому вызывающему пользователю необходимо знать функции, чтобы использовать их.
Единственным способом было бы обернуть его, используя небезопасный код или реальную регистрацию COM в качестве интерфейса между dll-посредником и фактическим dll 4.0, но я согласен, что предоставление чистых веб-сервисов через WCF является лучшим решением, если вы хотите, чтобы вызывающие абоненты 2.0 4.0 dll.
Также обратите внимание, что вам не нужно устанавливать CLR 2.0 отдельно - он будет установлен неявно при установке 4.0.