У нас есть две базы кода для тестирования и производства.Единственные различия между этими двумя базами кода заключаются в двух файлах:
- Файл конфигурации
- Файл сборки (.csproj)
Ведение двух ветокэто значительное усилие, которое может быть устранено путем объединения баз кода в одну и использования непрерывной интеграции (например, Hudson) для изменения файлов в соответствии с целевой средой.
Начиная с VS2010, существуеточень умное решение для файлов конфигурации, которое позволяет нам определять различные преобразования файла конфигурации для двух конфигураций сборки: «Release-Test» и «Release-Prod».
Однако у нас есть некоторые различия, которые отражены в проектефайл (.csproj), такой как:
- Имя полученной сборки: Foo.exe и Foo-Test.exe.
- Версия сборки.
- Параметры развертывания ClickOnce.
Есть ли какой-нибудь разумный способ преобразования файла csproj на основе конфигурации сборки или использования этих параметровподключен к файлу конфигурации или коду C #?
Обновление:
Я пытался использовать условные свойства MSBuild в файле csproj, как предложено @JaredPar, но у него есть парапредостережений (см. мои комментарии для деталей).Есть ли другие способы добиться этого?