MSDeploy - команда синхронизации для копирования файлов в подпапку приложения iis

Я хочу выполнить шаг после сборки, чтобы скопировать некоторые файлы в папку веб-сайта с помощью MSDeploy.

В конце концов я буду делать это в удаленном месте (указав computerName, userName переключатели и т.д.), но сейчас я запускаю его локально:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
   -AllowUntrusted -verb:sync 
   -source:dirPath="D:\files_to_copy" 
   -dest:iisApp="My Website Name"

Это работает, но он удаляет все содержимое папки сайта и заменяет их содержимым "D:\files_to_copy" (как вы могли ожидать!). Поэтому мне было интересно, как я использую это просто скопировать в подпапку на сайте?

я пробовал -dest:iisApp="My Website Name/my_subfolder" но это просто создает новое приложение IIS под названием "my_subfolder", вложенное в существующее приложение IIS.

2 ответа

Решение

Есть другие провайдеры, кроме iisApp, возможно, вам нужен dirPath -dest также?:

  • dirPath: поставщик dirPath синхронизирует содержимое каталога.
  • filePath: поставщик filePath синхронизирует отдельные файлы.
  • iisApp. Поставщик iisApp синхронизирует содержимое каталога с папкой и помечает папку как приложение.
  • contentPath: поставщик contentPath синхронизирует содержимое веб-сайта.

Ответ Андерса, приведенный выше, дает правильную информацию, но полный код, который я использовал для успешного выполнения, выглядит следующим образом:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
  -AllowUntrusted -verb:sync 
  -source:contentPath="D:\files_to_copy" 
  -dest:contentPath="My Website Name\my_new_folder"

Добавление одного файла в корень сайта (например, robots.txt) можно выполнить с помощью следующего:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
  -AllowUntrusted -verb:sync 
  -source:contentPath="D:\my_folder\robots.txt" 
  -dest:contentPath="My Website Name\robots.txt"

Надеюсь, это будет полезным примером для других в будущем.

Другие вопросы по тегам