MSDeploy пропускает правила при использовании MSBuild PublishProfile с Visual Studio 2012

я пытаюсь использовать WebDeploy для публикации веб-сайта с использованием пользовательских правил пропуска MSDeploy и профиля публикации, сохраненного в Visual Studio 2012.

У меня есть профиль публикации, работающий из командной строки, но правило пропуска пропустить удаление папки не выполняетсят работает.

у меня естьErrorLog подпапка в моем веб-приложении сweb.config файл внутри него, чтобы установить правильные права доступа к папке. Без каких-либо правил пропускаErrorLog папка иweb.config Файлы публикуются в обычном режиме, но все существующие файлы журнала ошибок в папке на сервере удаляются при публикации.

Ошибка сDelete

Когда я добавляю пользовательское правило пропуска к своемуwpp.targets файл, правило пропуска больше не принимает значение для элемент. Если я установлюDeleteЯ получаю следующую ошибку:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377,5): error : Web deployment task failed. (Unrecognized skip directive 'skipaction'. Must be one of the following: "objectName," "keyAttribute," "absolutePath," "xPath," "attributes..") [C:\inetpub\wwwroot\My.Website\My.Website\My.Website.csproj]

Если я просто опущу элемент,ErrorLog папка удаляется, когда она обычно публикуется.

Если я установлюопять жеErrorLog папка удалена при публикации.

Если я установлюDelete, затемErrorLog иweb.config файл публикуется нормально.

Насколько я понимаю, чтобы использовать пользовательские правила пропуска, вам нужно вызывать MSBuild из командной строки, а не публиковать из VS 2012. I 'однако я все еще хотел бы использовать мои сохраненные профили публикации, и я понимаю, чтотеперь возможно с VS 2012.

Моя командная строка MSBuild:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe My.Website.sln /p:Configuration=Release;DeployOnBuild=true;PublishProfile="Test Server - Web Deploy"

My.Website.wpp.targets:



  
    AddCustomSkipRules
  

  
    
    
      
        
        Delete
        dirPath
        $(_Escaped_WPPAllFilesInSingleFolder)\\ErrorLog$
        
      
    
  

Мой вывод MSBuild показывает пользовательское правило пропуска, но все равно удаляет файлы:

GenerateMsdeployManifestFiles:
  Generate source manifest file for Web Deploy package/publish ...
AddCustomSkipRules:
  Adding Custom Skip Rules
MSDeployPublish:
  Start Web Deploy Publish the Application/package to http://testserver.domain.com/MSDEPLOYAGENTSERVICE ...
  Starting Web deployment task from source: manifest(C:\inetpub\wwwroot\My.Website\My.Website\obj\Release\Package\My.Website.SourceManifest.xml) to Destination: auto().
  Deleting filePath (MyWeb/ErrorLog\test.txt).
  Updating setAcl (MyWeb/).
  Updating setAcl (MyWeb/).
  Updating filePath (MyWeb/ErrorLog\Web.config).
  Updating filePath (MyWeb/Web.config).
  Updating setAcl (MyWeb/).
  Updating setAcl (MyWeb/).
  Successfully executed Web deployment task.
  Publish is successfully deployed.

Ответы на вопрос(7)

Ваш ответ на вопрос