2011-06-15 2 views
5

J'ai un projet de site Web que je déploie à l'aide de msbuild. Dans le projet, il existe certains fichiers et dossiers nécessaires à la génération (par exemple, les fichiers de remplacement de la pièce web.config) mais que je ne souhaite pas déployer sur le site cible. Le meilleur que je puisse penser est une cible de post-construction qui supprime ces fichiers, mais j'aimerais savoir s'il existe un moyen de ne pas copier ces fichiers dans le dossier de sortie.Exclure des fichiers du déploiement de sites Web avec msbuild

Répondre

3

dans les propriétés explorateur pour les fichiers changer l'option « Copier le répertoire de sortie « ne copie pas »

enter image description here

+0

Ceci est un projet de site web, pas une application web. J'aurais besoin d'un moyen de le faire à partir du fichier msbuild. –

2

Vous pouvez utiliser MSDeploy avec Web Publishing Pipeline pour exclure des fichiers à inclure dans la création package. vous pouvez utiliser quelque chose comme ça si vous voulez exclure par exemple le dossier App_Data du package déployé

<Target Name="ExcludeApp_Data" DependsOnTarget="$(ExcludeApp_DataDependsOn)" Condition="$(ExcludeApp_Data)" > 
    <ItemGroup> 
    <ExcludeFromPackageFolders Include="App_Data"> 
     <FromTarget>ExcludeApp_Data</FromTarget> 
    </ExcludeFromPackageFolders> 
    </ItemGroup> 
</Target> 

d'une certaine façon éditeur n'affiche pas le code pro perly. Ce qui précède est généré dans le fichier proj lorsque vous configurez le site Web Package/Publish. Vous pouvez ajouter votre propre cible pour le faire.

Par exemple, si vous voulez exclure Scripts \ fichiers jquery de votre build, créez fichier séparé ExcludeScriptFiles.wpp.targets comme ci-dessous

<ItemGroup> 
    <ExcludeFromPackageFolders Include="Internal"> 
    <FromTarget>ExcludeScriptFiles.wpp.targets</FromTarget>   
    </ExcludeFromPackageFolders> 
    <ExcludeFromPackageFiles Include="Scripts\jquery.js;xyz.js"> 
    <FromTarget>ExcludeScriptFiles.wpp.targets </FromTarget> 
    </ExcludeFromPackageFiles> 
</ItemGroup> 

Ceci est juste un exemple simple d'écrire votre propre cible.

Hope this helps

+0

merci pour le pourboire, je vais essayer dès que possible. Pour répondre à votre question (maintenant éditée), vous pouvez mettre en forme XML correctement dans SO, il suffit de le distribuer sur plusieurs lignes. –

+0

@Paolo Merci pour le conseil de mise en forme. Lorsque j'ai essayé de distribuer sur plusieurs lignes, le formatage n'a pas été effectué après que j'ai appuyé sur Entrée. Est-ce que je manque quelque chose? J'effectue actuellement une tâche de génération de fichiers de configuration pour différents environnements (test/étape/production) en une seule fois et création d'un package de déploiement. – DotNetInfo

4

Salut Vérifiez this blog post à ce jour sauvé,

je tentais d'exclure la version non minified des javascripts, et utiliser la version minified lors de la publication (je suis supprimer les grands javascripts et chirp.config) est seulement nécessaire pour le débogage.

il suffit de mettre cela sur le fichier projet comme indiqué sur le lien.

<ItemGroup> 
    <ExcludeFromPackageFolders Include="Scripts\large"> 
     <FromTarget>Project</FromTarget> 
    </ExcludeFromPackageFolders> 


    <ExcludeFromPackageFiles Include="Scripts\mash.js.chirp.config" /> 
    <ExcludeFromPackageFiles Include="Content\mash.js.chirp.config" /> 
    </ItemGroup> 

Le site publié ne comprend pas les éléments suivants:

  • Scripts \ grand
  • mash.js.chirp.config
7

Vous pouvez sélectionner les fichiers et définir leur " Build Action "à" ExcludeFromPackageFiles ". De cette façon, Visual Studio va éditer le fichier XML csproj et vous n'avez pas à le faire.

Questions connexes