Игнорировать файл от удаления во время WebDeploy - PullRequest
8 голосов
/ 18 февраля 2011

Я использую TeamCity для создания и развертывания коллекции приложений MVC через msbuild и WebDeploy.

На шаге, предшествующем моей сборке / развертыванию решения, я копирую app_offline.htm в каталог развертывания, чтобы я мог выполнять обновления SQL и другие действия по управлению веб-решениями, включая сборку.

Одним из параметров в WebDeploy является удаление файлов, которые не включены в проект или не нужны для запуска сайта. Это удаляет мой файл app_offline.htm каждый раз. Хотя я понимаю, что это своего рода желаемый результат, есть ли способ исключить удаление этого файла из каталога развертывания при развертывании?

Я пытался добавить ItemGroup с опцией ExcludeFromPackageFiles, но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 23 июня 2011

У меня была похожая проблема: я хотел сохранить минимизированные файлы javascript в пакете развертывания, даже если они не являются частью проекта.

Я добавил для этого специальную цель MSBuild, которая работает для меня:

<!-- ====== Package the minify files ===== -->

 <PropertyGroup>
  <CopyAllFilesToSingleFolderForPackageDependsOn>
    CustomCollectFiles1;    
    $(CopyAllFilesToSingleFolderForPackageDependsOn);
  </CopyAllFilesToSingleFolderForPackageDependsOn>
 </PropertyGroup>

 <PropertyGroup>
   <AfterAddIisSettingAndFileContentsToSourceManifest>
    MakeEmptyFolders
   </AfterAddIisSettingAndFileContentsToSourceManifest>
 </PropertyGroup>

<Target Name="CustomCollectFiles1">
  <ItemGroup>
   <!-- =====Controls\Javascript folder ==== -->
    <_CustomFilesForRootFolder Include=".\Controls\Javascript\*.min.js">
    <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)    </DestinationRelativePath>
   </_CustomFilesForRootFolder>
  <FilesForPackagingFromProject Include="%(_CustomFilesForRootFolder.Identity)">
    <DestinationRelativePath>.\Controls\Javascript\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
  </FilesForPackagingFromProject>
 </ItemGroup> 
</Target>
0 голосов
/ 25 февраля 2011

Этот другой вопрос « Настраиваемый файл app_offline.htm во время публикации » предлагает один из возможных способов получения конечного результата, который вы описываете:

Я использую свой собственный

app_offline.htm_

файл в решении, который публикуется.Мой сценарий развертывания затем переименовывает его (удаляя завершающий _), чтобы сделать его активным.

Затем я могу запустить свои сценарии БД / сделать что угодно, затем переименовать файл, возвращающий сайт.

...