39 votes

publier des répertoires vides d'une application web dans VS2010 projet web

Souvent j'ai besoin de publier un projet web en préservant une arborescence de répertoire, même si les répertoires sont vides, par exemple, les répertoires pour les fichiers téléchargés. Si je publier mon application à l'aide de la VS2010 publier de commande, les répertoires vides ne sont pas créés sur le système de fichiers distant, sur le serveur web.

Est-il un moyen de forcer VS pour créer certains dossiers, mais vide, sur le répertoire cible? merci!

40voto

Exitos Points 4805

Non ce n'est pas possible, je crains que nous avons eu le même problème. Vous devez créer un placeholder.txt de fichiers dans chaque répertoire vide si vous souhaitez que la précompilation outil pour générer ces dossiers vides. À défaut, vous pouvez créer une application en ligne de commande qui permettra de créer des dossiers dans votre post construire des événements (mais seulement si vous utilisez un projet d'application web pas de projet de site web).

Espérons que cette aide.

8voto

Leniel Macaferi Points 38324

Je sais que cette question mentionne Visual Studio 2010 , mais je suis ici à la recherche pour le même problème...

Je suis à l'aide d' Visual Studio 2012 et a trouvé un bon/moyen élégant pour surmonter cette situation ennuyeuse. Je pense qu'il va également travailler en VS 2010 et c'est mieux que l'ajout de mannequin fichiers vides à l'intérieur des dossiers vides.

Lorsque vous créez un profil de publication avec VS 2012 , il va générer un MyPublishProfile.pubxml le fichier dans l' Properties\PublishProfiles le dossier (My Project\PublishProfiles pour VB). Ce sont des MSBuild fichiers et on peut les modifier pour personnaliser le processus de publication. Dans notre cas, on peut injecter une cible dans le processus de publication, avant de le publier en fait se produit comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <AfterAddIisSettingAndFileContentsToSourceManifest>CreateEmptyFolders
    </AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>
  <Target Name="CreateEmptyFolders">
    <Message Text="Adding empty folder to hold Files" />
    <MakeDir Directories="$(_MSDeployDirPath_FullPath)\Files\MyEmptyFolder"/>
  </Target>
</Project>

La propriété AfterAddIisSettingAndFileContentsToSourceManifest détient les noms de cibles qui sera appelé après que le contenu du package de déploiement a été préparé. C'est le moment idéal pour ajouter des fichiers ou des dossiers sur le paquet.


De Code et de texte mixte à partir de:

Comment exécuter un script PowerShell seulement avant un déploiement web, Publier des tâches de VS 2012?

Web Deploy : Personnalisation d'un package de déploiement

3voto

Robert Tanenbaum Points 131

Il y a un rapport d'erreur à Microsoft à ce sujet et ils ont dit qu'ils ne serait pas le fixer. http://connect.microsoft.com/VisualStudio/feedback/details/546356/publish-deploy-does-not-deploy-empty-folders

Trop mauvais. Parce qu'il a utilisé pour travailler dans Visual Studio 2008.

Notez qu'il n'est pas nécessaire de déployer le fichier fictif. Il ne doit exister en tant que partie du projet dans l'environnement de compilation.

1voto

Israel Margulies Points 1713

À l'intérieur du Dossier Vide Ajouter une valeur par Défaut.fichier aspx. Vous pouvez le laisser vide, Il va alors créer le dossier dans la version Compilée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X