MSDeploy был описан для меня как инструмент, который помогает синхронизировать веб-сайты между машинами, во многом так же, как AppCenter использовал для репликации хорошо сконфигурированного мастера на многие машины. Установщик Windows (MSI + WiX CustomActions для IIS и SQL config) предназначен для применения пакетов к компьютеру, который изменяет состояние в транзакции. Это следует за более традиционной моделью упакованного программного обеспечения.
Это два разных подхода к проблеме настройки машин. Каждый оптимизирован под различные требования. MSDeploy = реплицирующее состояние машины. MSI = применить изменения в транзакции.
Не могли бы вы выбросить MSDeploy в MSI? Наверное. Будет ли это работать хорошо? Может быть, если вы игнорируете часть о транзакции. В этом, на мой взгляд, ключевое отличие. В средах, где вы хотите объявить конфигурацию, которую вы хотите распределить, и применить ее полностью или вообще не применять (т.е. не переходить в промежуточное / отключенное состояние), тогда установка на основе пакетов представляется целесообразной.
Если у вас есть машина, которую вы правильно настроили, и хотите, чтобы группа машин выглядела так (и вы хотите вывести неисправную машину из ротации и повторять процесс до тех пор, пока она не превзойдет отправку), то MSDeploy кажется необходимо.
В вашем вопросе недостаточно информации, чтобы предположить, что работает лучше ... но я не думаю, что они идут вместе. <Улыбка />