publier des répertoires vides sur une application Web dans un projet Web VS2010

J’ai souvent besoin de publier un projet Web préservant une arborescence de répertoires, même si les répertoires sont vides, par exemple, des répertoires contenant des fichiers téléchargés. Si je publie mon application à l’aide de la commande de publication VS2010, les répertoires vides ne sont pas créés sur le système de fichiers distant, sur le serveur Web.

Existe-t-il un moyen de forcer VS à créer certains dossiers, bien que vides, dans le répertoire cible? Merci!

Non ce n’est pas possible j’ai peur que nous ayons eu le même problème. Vous devez créer un fichier placeholder.txt dans chaque répertoire vide si vous souhaitez que l’outil de précompilation génère ces dossiers vides. Si vous ne parvenez pas à créer une application de ligne de commande qui créera les dossiers dans vos événements de post-construction (mais uniquement si vous utilisez un projet d’application Web et non un projet de site Web).

J’espère que cela t’aides.

Je sais que cette question mentionne Visual Studio 2010 mais je suis arrivé ici à la recherche du même problème …

J’utilise Visual Studio 2012 et j’ai trouvé un moyen agréable / élégant de surmonter cette situation ennuyeuse. Je pense que cela fonctionnera également dans VS 2010 et vaut mieux que d’append des fichiers vides factices dans les dossiers vides.

Lorsque vous créez un profil de publication avec VS 2012 il génère un fichier MyPublishProfile.pubxml dans le dossier Properties\PublishProfiles ( My Project\PublishProfiles for VB). Ce sont des fichiers MSBuild et on peut les éditer pour personnaliser le processus de publication. Dans notre cas, nous pouvons injecter une cible dans le processus de publication avant que la publication ne se produise comme ceci:

    CreateEmptyFolders        

La propriété AfterAddIisSettingAndFileContentsToSourceManifest contient les noms des cibles qui seront appelées après la préparation du contenu du package de déploiement. C’est le moment idéal pour append des fichiers ou des dossiers supplémentaires au package.


Code et texte mélangés à partir de:

Comment exécuter un script PowerShell uniquement avant une tâche de déploiement Web dans VS 2012?

Déploiement Web: personnalisation d’un package de déploiement

Il y avait un rapport de bogue à Microsoft à ce sujet et ils ont dit qu’ils ne le répareraient pas. http://connect.microsoft.com/VisualStudio/feedback/details/546356/publish-deploy-does-not-deploy-empty-folders

Dommage. Parce qu’il fonctionnait dans Visual Studio 2008.

Notez qu’il n’est pas nécessaire de déployer réellement le fichier factice. Il ne doit exister que dans le cadre du projet dans l’environnement de construction.

Celui-ci a travaillé pour moi:

Editez votre fichier pubxml publié que visual studio génère, comme Leniel Macaferi l’a mentionné, puis ajoutez ceci: Visual studio a déjà généré une propriété comme

 f:\publish_web 

dans le

  

section, donc je l’ai utilisé comme ceci: Ajouté à la section:

   CustomBeforePublish; $(PipelineDependsOn);  

Et aussi ajouté:

     

Dans le dossier vide Ajoutez un fichier Default.aspx. Vous pouvez le laisser vide, il créera alors le dossier dans la version PreComstackd.