Публикация VS2013 с использованием WebDeploy не преобразует дополнительные файлы

#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 для преобразования файлов, он обработает развертывание за вас.

https://www.nuget.org/packages/SlowCheetah

Комментарии:

1. Извините за такой поздний ответ. Я пробовал SlowCheetah , но он не преобразует настройки приложений, расположенные в отдельном файле (<AppSettings configSource=»Settings.config» />). Я добавил преобразования, но когда я пытаюсь просмотреть их, ничего не меняется.

2. Можете ли вы предоставить образцы ваших настроек приложений и преобразований?

3. Извините за путаницу, но, похоже, все работает нормально. Я только что создал новый проект и попробовал SlowCheetah, и все работало нормально. В моем случае проблема заключалась в том, что я установил два похожих расширения Configuration Transform и SlowCheetah . Сначала я удалил, и теперь все работает нормально. К сожалению, это не встроено, но, надеюсь, скоро будет — visualstudio.uservoice.com/forums/121579-visual-studio-ide /…

4. Нет проблем. Рад помочь!