Я большой поклонник добавления преобразований web.config в Visual Studio 2010. См. Также Скотт Недавний доклад Хансельмана на MIX2011 .
Что отстой, так это то, что эта функциональность (по крайней мере, кажется) доступна только для веб-проектов.
В нашем решении у нас есть несколько служб Windows, которые подключаются к разным базам данных в зависимости от среды, в которой они развернуты.
Кто-нибудь придумал хороший, аккуратный способ достижения аналогичной функциональности «преобразование app.config»?
Примечание. Мы используем TFS 2010 для создания наших решений в режиме непрерывной интеграции.
Вы можете использовать функцию преобразования XML с любым файлом XML - мы делаем это постоянно. Он доступен через задачу MSBuild.
Попробуйте добавить следующее в ваш скрипт сборки:
<UsingTask TaskName="TransformXml"
AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>
<TransformXml Source="Path\To\Your\Xml.config"
Transform="Path\To\Your\Xml.$(Configuration).config"
Destination="Path\To\Your\Output.config" />
Я написал замечательное расширение для автоматизации преобразования app.config, подобное встроенному в проект веб-приложения. Преобразование конфигурации
.Если у вас несколько клиентских сборок и вы не хотите дублировать одни и те же данные конфигурации, я создал Profigurator . Он будет принимать файл JSON в качестве входных данных и применять настройки к app.config или web.config.
Это немного грубо, когда я пишу это, но в настоящее время я использую это в производственной системе для развертываний, и это прекрасно работает.