Обязательно используйте условную компиляцию поверх ветвления (и выделите ее как можно лучше в конкретные модули).
Ветвление означало бы, что если бы вы обнаружили ошибку в несвязанной части кода (то есть коде, который не зависит от версии .Net), вам придется исправить ее в обеих ветвях. Не идите по этой дороге, если вам не нужно.
Я предпочитаю использовать абстрактный базовый класс (ABC), который определяет интерфейс и производные классы, специфичные для платформы, в сочетании с фабричным объектом / методом и условной компиляцией всего файла, чтобы обойти эти вопросы (у меня есть Библиотека GUI, которая работает на Win32 и X11, реализована таким образом).
Бесплатное ветвление никогда не бывает хорошим!