J'ai certains dossiers que je veux conserver dans le projet mais pas pour l'inclure dans la publication.
Est-ce possible?
Michael a tout à fait raison. En modifiant le fichier .csproj, vous pouvez exclure manuellement la publication des fichiers/dossiers.
Un moyen plus simple, si vous ne voulez pas jouer avec le fichier .csproj, consiste à mettre en surbrillance le (s) fichier (s) dans l'explorateur de la solution VS. Sous le panneau de propriétés, modifiez build en action de 'content' à 'none'.
Ainsi, vous n'avez pas besoin de décharger le projet de la solution, de charger le fichier .csproj et d'ajouter une ligne pour chaque nouveau fichier ajouté qu'il n'est pas nécessaire de publier mais que vous obtiendrez la même chose en 3 clics.
(en supposant que vous ayez défini l'option "Publier uniquement les fichiers nécessaires à l'exécution de cette application" sous l'onglet Publication)
S'il s'agit d'un projet de site Web, vous pouvez exclure certains dossiers et/ou fichiers comme suit (see elements ExcludeFoldersFromDeployment et ExcludeFilesFromDeployment):
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.Microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>True</ExcludeApp_Data>
<publishUrl>D:\YAZILIM\Adopen.2015\PreCompiledWeb</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>True</EnableUpdateable>
<DebugSymbols>False</DebugSymbols>
<WDPMergeOption>MergeAllOutputsToASingleAssembly</WDPMergeOption>
<UseMerge>True</UseMerge>
<SingleAssemblyName>AdoIntranet</SingleAssemblyName>
<ExcludeFoldersFromDeployment>customobjects;uploads</ExcludeFoldersFromDeployment>
<ExcludeFilesFromDeployment>app.config</ExcludeFilesFromDeployment>
</PropertyGroup>
</Project>
Vous pouvez effectuer une recherche et remplacer dans le fichier Web.cspoj pour éliminer rapidement un dossier particulier du processus publish/deployment
Ainsi;
<Content Include="Uploads/
à
<None Include="Uploads/
Vous pouvez également masquer dans l'Explorateur Windows des dossiers qu'il n'est pas nécessaire de publier (ce n'est pas la meilleure solution, mais cela fonctionne si vous avez un grand nombre d'images qui doivent encore être dans la zone de développement).
Comme la question est étiquetée avec ASP, il n’ya pas de fichier .proj
à manipuler. Avec VS2015, il existe un autre fichier utile à la place: website.publishproj
. Et cet article Asp.Net sur l’exclusion de fichiers et de dossiers mentionne le fichier .wpp.targets
.
Tous ces fichiers contiennent des éléments <ItemGroup>
pouvant contenir des éléments tels que <ExcludeFromPackageFolders>
. Étant donné que ces fonctionnalités semblent documentées, utilisez-les simplement et ne vous sentez pas coupable de piratage informatique ou de "désordre". Pour moi, exclure un répertoire en utilisant les instructions simples de ce lien et le fichier website.publishproj
a fonctionné à merveille!
<ItemGroup> <Content Update="Data\CernainFolder\*.*"> <CopyToPublishDirectory>Never</CopyToPublishDirectory> </Content> </ItemGroup>
Cela devrait bien fonctionner