Pergunta

Estou usando o TeamCity para criar e implantar uma coleção de aplicativos MVC via MSBuild e WebDeploy.

Em uma etapa anterior à minha solução Build / Deploy, copio um app_offline.htm para o diretório de implantação para que eu possa executar atualizações SQL e outras etapas de gerenciamento da Web / Solution, incluindo a compilação.

Uma das configurações na WebDeploy é excluir arquivos que não estão incluídos no projeto ou não necessários para executar o site.Isso exclui meu arquivo app_offline.htm de cada vez.Enquanto eu entendo isso é uma espécie do resultado desejado, há uma maneira de excluir este arquivo de ser excluído do diretório de implementação na implantação?

Eu tentei adicionar um grupo de itens com a opção ExcludeFromackageFiles, sem resultados.

Foi útil?

Solução

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>

Outras dicas

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top