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:
<?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> |