Web.Configs в разных средах разработки (и SVN) - PullRequest
1 голос
/ 21 октября 2011

Итак, у нас есть процесс сборки, который обрабатывает разные web.configs для разработки в разных средах. Мы используем атрибут ConfigSource, и Team City выбирает соответствующий файл.

Это замечательно, но что мне делать, если разработчики имеют немного другую среду?

CI, не могу помочь, потому что все получают его прямо из SVN (т.е. CI, очевидно, не создает для каждого разработчика локальную машину).

Я буду использовать раздел конфигурации ConnectionStrings в качестве примера:

<connectionStrings configSource=".\Config\ConnectionStrings.config">
</connectionStrings>

А у нас есть: configs\ConnectionStrings.config ( общий)

Но мне может понадобиться:

configs\ConnectionStrings.dev1.config
configs\ConnectionStrings.dev2.config
configs\ConnectionStrings.dev3.config

в зависимости от того, какой разработчик использует код в данный момент.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 21 октября 2011

Вы пытались посмотреть на преобразования web.config ? Они могут быть в состоянии обеспечить нужную вам функциональность, сохраняя при этом все под контролем версий или требуя каких-либо изменений кода. Кроме того, он будет работать не только для строк подключения, но и для каталогов и т. Д.

0 голосов
/ 21 октября 2011

У нас есть отдельный файл подключения, такой же, как вы упомянули, с именем текущего компьютера. В событие сборки для проектов, которым требуется строка подключения, мы добавили предварительно созданное событие, которое удаляет файл connection.config из текущего проекта, а в событии после сборки мы копируем connections.machine.config в connections.config в папка текущего проекта.

В нашем файле web.config у нас есть .NET будет искать информацию о строке подключения в отдельном файле.

Преобразования Web.config можно использовать только при фактическом развертывании проекта. Файл «default» web.config всегда будет использоваться на вашем локальном компьютере для разработки, поэтому он не подходит для сред разработки.

Этот механизм можно распространить и на настройки приложения и другие файлы конфигурации, поместив указанные в машине файлы в папку решения и просто скопировав их при сборке.

0 голосов
/ 21 октября 2011

Одна из техник, которую мы использовали в прошлом (я помню, как Айенде упоминал об этом в веб-трансляции), заключается в том, что каждая строка подключения называется с именем компьютера разработчика, например

<connectionStrings>
    <add name="BobsPC" connectionString=""/>
    <add name="JonsPC" connectionString=""/>
</connectionStrings>

При отладке мы ищем имя строки подключения «текущего» имени машины.

Сохраняет несколько файлов строки подключения. Вместо этого у нас есть один файл с несколькими строками подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...