Настройте свойства для MSDeploy через Nant или VS2010 - PullRequest
0 голосов
/ 04 августа 2011

У меня есть веб-приложение, которое я хочу развернуть с помощью MSDeploy. У меня есть сценарий Nant, который запускает MSBuild и свойство DeployOnBuild имеет значение true. Он создает пакет развертывания, который я использую на сервере.

Что я хочу сделать, это избежать того, чтобы MSDeploy удаляла содержимое папки назначения, прежде чем развернуть новые файлы. Я могу сделать это вручную, добавив -enableRule: DoNotDeleteRule в мою командную строку, но я бы хотел, чтобы MSDeploy делал это вручную. Мне действительно нужна помощь с этим.

Я использую Visual Studio 2010, и если бы был способ сделать этот параметр оттуда, это было бы оптимальным. Если это возможно сделать из Нанта, то это тоже здорово.

Резюме: Пакет развертывания, созданный с помощью MSBuild через Nant, по умолчанию должен иметь флаг -enableRule: DoNotDeleteRule.

Ответы [ 2 ]

3 голосов
/ 04 августа 2011

Установите для свойства $ (SkipExtraFilesOnServer) значение «true» в файле проекта или в общем файле импорта,

<PropertyGroup>
   <SkipExtraFilesOnServer>true</SkipExtraFilesOnServer>
</PropertyGroup>

или в командной строке от Nant,

/p:SkipExtraFilesOnServer=true

Дополнительные параметры см. В файле Microsoft.Web.Publishing.targets (поиск «MSDeploy»).

1 голос
/ 22 августа 2011

В итоге мы использовали команду Nant для создания файла bat, а затем добавили -enableRule к команде в этом файле:

<echo file="..\..\Packages\${stage}\${project::get-name()}.${stage}.Run.TestDeploy.bat">
        %CD%\${project::get-name()}.${stage}.deploy.cmd /T -enableRule:DoNotDeleteRule
        PAUSE
    </echo>

    <echo file="..\..\Packages\${stage}\${project::get-name()}.${stage}.Run.REALDEPLOY.bat">
        %CD%\${project::get-name()}.${stage}.deploy.cmd /Y -enableRule:DoNotDeleteRule
        PAUSE
    </echo>

Флаги / T и / Y используются в MSDeploy, чтобы узнать, тестируете ли вы скрипт (/ T) или запускаете его по-настоящему (/Y).

Это обходной путь, но мы удовлетворены им.

...