Laurent Duveau
Précompilation Web et fichiers non copiés (ex : .lic)
Fichiers manquant à l'issue du déploiement d'un projet ASP.NET 2.0 avec la fonction "Publish Web Site" de Visual Studio 2005 ?
Par Laurent Duveau publié le 02/11/2006 à 00:02, lu 10868 fois,
Lors du déploiement d'un projet ASP.NET 2.0 avec la fonction "Publish Web Site" de Visual Studio 2005, vous aurez peut être remarqué que certains fichiers ne sont pas copiés dans le répertoire destination. C'est le cas des fichiers licences par exemple, en effet si vous utilisez des composants tiers comme ceux de ComponentArt vous aurez des fichiers .lic (licences) à stocker dans le répertoire /bin/ or lors de la précompilation ces fichiers n'y sont pas copiés.
Pour éviter ça l'astuce consiste à ajouter ces lignes dans la section compilation du web.config :

<system.web>

  <compilation>

    <buildProviders>

       <remove extension=".lic"/>

       <add extension=".lic"

           type="System.Web.Compilation.ForceCopyBuildProvider" />

    </buildProviders>

  </compilation>

</system.web>

Attention de ne pas oublier le <remove>. Maintenant vos fichiers licences seront copiés quand vous déployez le projet! Ceci est valable avec d'autres types de fichiers bien sûr.
Nb : Pour ceux qui utilisent le Visual Studio 2005 Web Deployment Projects, vous pouvez aussi customiser MSBuild en rajoutant une tâche qui copie les fichiers manquants :

<ItemGroup>

    <!-- Fichiers a copier dans le repertoire bin -->

    <FichiersACopier Include="$(SourceWebPhysicalPath)\Bin\*.lic" />

</ItemGroup>

 

<Target Name="AfterBuild">

    <Copy

    SourceFiles="@(FichiersACopier)"

    DestinationFiles="@(FichiersACopier->'$(OutputPath)\bin\%(Filename)%(Extension)')" />

</Target>

 
» Démarrer une discussion