#asp.net #visual-studio-2013 #webdeploy #microsoft-web-deploy
#asp.net #visual-studio-2013 #webdeploy #microsoft-web-deploy
Вопрос:
Я создал простой проект WebAPI, а не пытаюсь опубликовать его с помощью Visual Studio 2013, встроенного в механизм публикации (СБОРКА> Публикация)
. Я выбрал веб-развертывание в качестве метода публикации, все работает, кроме файлов преобразования.
У меня есть Web.config и Settings.config и два преобразования для каждого. Когда я выполняю стандартную сборку своего проекта внутри папки bin, я вижу один Web.config и Settings.config с примененным преобразованием, но когда я публикую вместо преобразованного файла Settings.config, я вижу один без применения преобразований.
Похоже, что механизм публикации внутри Visual Studio преобразует только Web.config и пропускает дополнительные файлы.
Ниже приведена часть моего csproj, которая отвечает за применение преобразований:
<Target Name="AfterBuild">
<TransformXml Condition="Exists('Settings.$(Configuration).config')" Source="Settings.config" Destination="$(OutputPath)Settings.config" Transform="Settings.$(Configuration).config" />
<TransformXml Condition="Exists('Web.$(Configuration).config')" Source="Web.config" Destination="$(OutputPath)Web.config" Transform="Web.$(Configuration).config" />
</Target>
Мой вопрос в том, как мне настроить свой профиль публикации, чтобы вместо копирования чистых настроек.config он применял правильное преобразование и публиковал его.
РЕДАКТИРОВАТЬ: мне удалось найти одну вещь, которая может помочь решить эту проблему. Если я добавлю UseMsdeployExe
в pubxml, я увижу на выходе, что мой Settings.config преобразуется и сохраняется в bin
папке, но позже он переопределяется исходным файлом.
моя цель AfterBuild вызывается правильно, но после нее я вижу на выходе эти строки:
2> Копирование всех файлов во временное расположение ниже для package / publish: 2> obj Debug Package PackageTmp. 2> Копирование binApi.dll чтобы objDebugPackagePackageTmpbinApi.dll . 2> Копирование Settings.config в objDebugPackagePackageTmpSettings.config.
Ответ №1:
Используйте SlowCheetah для преобразования файлов, он обработает развертывание за вас.
Комментарии:
1. Извините за такой поздний ответ. Я пробовал
SlowCheetah
, но он не преобразует настройки приложений, расположенные в отдельном файле (<AppSettings configSource=»Settings.config» />). Я добавил преобразования, но когда я пытаюсь просмотреть их, ничего не меняется.2. Можете ли вы предоставить образцы ваших настроек приложений и преобразований?
3. Извините за путаницу, но, похоже, все работает нормально. Я только что создал новый проект и попробовал SlowCheetah, и все работало нормально. В моем случае проблема заключалась в том, что я установил два похожих расширения
Configuration Transform
иSlowCheetah
. Сначала я удалил, и теперь все работает нормально. К сожалению, это не встроено, но, надеюсь, скоро будет — visualstudio.uservoice.com/forums/121579-visual-studio-ide /…4. Нет проблем. Рад помочь!