1

Lorsque vous excluez des fichiers du projet de déploiement Web à l'aide de ExcludeFromBuild par ex.Existe-t-il un moyen d'empêcher le projet de déploiement Web VS2008 de créer un dossier source lors de l'utilisation de ExcludeFromBuild?

<ItemGroup> 
     <ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\*.csproj*"/> 
    </ItemGroup> 

je me retrouve avec un dossier contenant tous Source à côté des Release et Debug dossiers. Ce dossier n'apparaît pas si je n'utilise aucune option ExcludeFromBuild.

Est-il possible d'empêcher la création de ce dossier? Pourquoi est-il créé en premier lieu?

Répondre

1

Dans le fichier de Misrosoft.WebDeployments.targets (qui déploiement web importations de fichiers de projet), il y a une cible de _CopyBeforeBuild qui copie tous les fichiers source lorsque la propriété ExcludeFromBuild n'est pas vide ou EnableCopyBeforeBuild est spécifié:

... 

<CopyBeforeBuildTargetPath>$(MSBuildProjectDirectory)\Source</CopyBeforeBuildTargetPath> 

... 

<Target Name="_CopyBeforeBuild" Condition=" '$(EnableCopyBeforeBuild)' == 'true' or '@(ExcludeFromBuild)' != '' "> 
    ... 
    <RemoveDir Directories="$(CopyBeforeBuildTargetPath)"/> 
    <MakeDir Directories="$(CopyBeforeBuildTargetPath)"/> 
    <Copy SourceFiles="@(_WebFiles)" DestinationFolder="$(CopyBeforeBuildTargetPath)\%(_WebFiles.SubFolder)%(_WebFiles.RecursiveDir)" /> 
    ... 
</Target> 

Ainsi, le script crée le répertoire source et ne le supprime pas. Ce répertoire me dérange aussi, donc j'ajoute les lignes suivantes au fichier de projet de déploiement Web:

<Target Name="AfterBuild"> 
    <RemoveDir Directories="$(CopyBeforeBuildTargetPath)" /> 
</Target> 
Questions connexes