Es muy probable que, en los tiempos que corren, estemos usando Webpack (o algo similar) para generar los archivos .js y .css minificados de nuestro sitio web. A estos archivos no los mantenemos versionados en nuestro repositorio de código, los usamos sólo para desplegar nuestra aplicación, y tampoco los tenemos incluidos en nuestro archivo de proyecto. Por este motivo es que al compilar nuestra aplicación y generar el paquete de despliegue para nuestra Azure Web App, estos archivos por defecto no están incluidos dentro del paquete.
Para solucionar este problema podemos tomar dos caminos:
- Modificar el archivo de proyecto
- Generar un perfil de publicación y agregar ahí los cambios
Particularmente prefiero ir con la primera opción, ya que de esta manera no necesitamos indicarle a MSBuild que perfil de publicación usar.
Lo que necesitamos es agregar un PropertyGroup
con el tag CopyAllFilesToSingleFolderForMSDeployDependsOn
, y un Target
con los archivos que vamos a agregar:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
… | |
<PropertyGroup> | |
<CopyAllFilesToSingleFolderForMSDeployDependsOn> | |
CustomCollectFiles; | |
$(CopyAllFilesToSingleFolderForMSDeployDependsOn); | |
</CopyAllFilesToSingleFolderForMSDeployDependsOn> | |
</PropertyGroup> | |
<Target Name="CustomCollectFiles"> | |
<ItemGroup> | |
<_CustomFiles Include="Scripts\your-app-bundle.*" /> | |
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)"> | |
<DestinationRelativePath>Scripts\%(Filename)%(Extension)</DestinationRelativePath> | |
</FilesForPackagingFromProject> | |
</ItemGroup> | |
</Target> | |
</Project> |