Web.config не преобразуется при отладке кода
У меня есть основной файл Web.config
, а под ним есть Web.Test.config
, Web.Development.Config
и т.д.
Когда я просматриваю преобразование через SlowCheetah в тестовой конфигурации, он, как представляется, правильно преобразует значения.
Когда я переключаю среду сборки из "Разработка на тестирование" и пытаюсь отладить приложение, приложение выполняется под любыми значениями в главном файле Web.config
(т.е. ничего не преобразует).
Как заставить среду сборки выбрать правильную конфигурацию при отладке, а не просто использовать базовый файл Web.config
? Возможно ли это?
Ответы
Ответ 1
Вы можете преобразовать Web.config
в сборку. Добавьте эту цель в файл *.csproj
:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="BeforeBuild">
<TransformXml
Source="Web.Base.config"
Transform="Web.$(Configuration).config"
Destination="Web.config" />
</Target>
Сохраните конфигурацию источника в Web.Base.config
. Этого достаточно, чтобы включить преобразование, и оно работает для любого файла конфигурации XML. SlowCheetah больше не требуется.
http://sebnilsson.com/a5410281/asp-net-transform-web-config-with-debug-release-on-build/
Ответ 2
Преобразования XML будут применяться только при публикации веб-приложений, а не во время сборки.
Это сообщение в блоге подробно описывает работу с настройками сборки.