Вопрос

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

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

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

Я пытался добавить элементгруппу с опцией ExcudeFrompackageFiles, без результатов.

Это было полезно?

Решение

I had a similar problem, wanting to keep minified javascript files in the deployment package even though they're not part of the project.

I added a custom MSBuild target for this, that works for me:

<!-- ====== 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>

Другие советы

This other question " Custom app_offline.htm file during publish " suggests one possible way for the final result you describe:

I use my own

app_offline.htm_

file in the solution, which gets published. My deployment script then renames it (removing the trailing _) to make it active.

I can then run my db scripts/do whatever then rename the file bringing the site back.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top