Нет - вам нужно создать отдельную версию проекта для .NET 3.5, если вы хотите использовать ее из приложения .NET 3.5.
Невозможно загрузить сборку .NET 4, даже если вы не используете функции .NET 4, из .NET 3.5.
Единственное место, где может помочь директива #if
, - это если вы хотите, чтобы ваш файл имел определение, основанное на цели платформы. Это должно происходить внутри файла в вашем проекте Project A, и вам потребуются два проекта (которые могут включать в себя одни и те же исходные файлы), так как один проект не может быть настроен на две отдельные версии платформы. (Вы всегда можете изменить рамки, но это не всегда тривиально ...)
Как говорится, это, скорее всего, не будет работать напрямую. Если ваша библиотека .NET 4 перехватывает AggregateException
, это означает, что она использует некоторую функциональность, которая вызывает это исключение - этот вызов метода, скорее всего, является функцией только .NET 4, поскольку это исключение является новым в .NET 4 и обычно происходит только при использовании чего-то вроде TPL.