Ничего особенного, но есть способы, чтобы код счастливо работал вместе (в порядке предпочтения):
1) Обновите оба проекта до 3,5
Если я правильно вас понимаю, ваша Программа .net FW 2.0 будет зависеть от библиотеки 3.5, что означает, что для работы всех функций Программы теперь требуется FW 3.5. Поскольку вы заявляете, что у вас есть код и полномочия для перекомпиляции Программы и установки любого FW при развертывании, вы можете обновить его до 3.5. Звучит просто, но так как вы этого не сделали, то, я думаю, у вас есть веские причины (как и другие программы, находящиеся выше цепочки вызовов, которые вы не можете обновить до 3.5 / перекомпилировать.)
2) Обойти компилятор FW2.0
Сборка Программы при ссылке на версию 2.0 библиотеки (или пустышку, просто предоставляя публичный API).
Создайте версию 3.5 библиотеки отдельно без программы (следовательно, устраните необходимость ссылаться на неправильную сборку FW) и разверните версию 3.5 вместо версии 2.0.
Поскольку 2.0 и 3.5 используют одну и ту же среду CLR, то одурачивания компилятора достаточно. Пока в развертывании установлен FW 3.5, все должно быть хорошо.
Примечание: все в порядке, даже если на компьютере развертывания присутствует только .net 2.0, а пользователь не вызывает классы .net 3.5. Если он это сделает, произойдет сбой;)
3) понизить версию библиотеки до 2,0
если вы используете только некоторые классы .net FW, вы можете продолжать использовать компилятор 2.0, добавив эти недостающие будущие сборки в проект. (это решение по ссылке Хансельмана, которой поделился Крейг). Как уже отмечалось, вы потеряете синтаксический сахар 3.5, такой как vars.
Выберите тот, который подходит вашей ситуации лучше.