Я не знаю ни о какой проверенной стратегии, потому что она действительно зависит от того, что будет иначе и как.Не зная конкретно, я могу предложить пару идей, которые, вероятно, помогут.
# if
Один из способов - создать отдельные конфигурации сборки для .NET 3.5 и .NET 4.0, чтобы вы могли указатьОтдельные условные символы компиляции в каждой конфигурации сборки и выполнение таких действий в определенных местах:
#if NET40
// something specific to .NET 4.0
#else
// version for .NET 3.5
#endif
Конфигурации сборки позволяют легко переключаться между ними и создавать их все одновременно.Однако они в основном помогают с кодом.
MQ
То, как я делал это для одного проекта (какое-то время мне требовалась версия Caliburn.Micro для .NET 3.5), былоиспользовать Mercurial Queues для исправления, которое я мог бы применить к хранилищу для понижения версии.Использование MQ было необходимой частью решения, потому что мне все еще нужно было иметь возможность обновить свой клон репозитория CM и повторно применить мои изменения.
Другая причина, по которой условная компиляция не помогла бы мне помочь, заключается в том, чтоСсылка CM на сборку Blend SDK Interactivity должна была перейти на предыдущую версию, и я не знал, как сделать условные ссылки в файле проекта.
(Если вы ранее не использовали MQ: MqTutorial и главы 12 & 13 Mercurial: полное руководство.)