MS Visual Studio: ¿Cómo excluir ciertas carpetas de proyectos de la publicación?


Tengo ciertas carpetas que quiero mantener en el proyecto, pero no se incluirá en la publicación.

¿Es eso posible?

Author: Kiquenet, 2011-05-24

6 answers

Michael tiene toda la razón, a través de la edición de la .archivo csproj puede excluir manualmente los archivos / carpetas de la publicación.

Una manera más fácil si no quieres meterte con el.archivo csproj es resaltar el archivo(s) dentro del explorador de soluciones VS. En el panel propiedades, cambia build to action de 'content' a 'none'.

De esta manera usted no tiene que descargar el proyecto de la solución, cargar el .csproj y agregar una línea para cada nuevo archivo que agregue que no necesita ser publicado, pero en su lugar lograr lo mismo con 3 clics del ratón.

(suponiendo que haya establecido el 'Solo publicar archivos necesarios para ejecutar esta aplicación' en la pestaña publicación)

 26
Author: jbokkers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-24 09:53:11
 18
Author: Michael Minton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-08 19:19:22

Si se trata de un proyecto de sitio web, puede excluir ciertas carpetas y / o archivos de la siguiente manera (ver elementos ExcludeFoldersFromDeployment y 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>
 16
Author: HGMamaci,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-20 10:15:00

Puede hacer un 'Buscar y Reemplazar' en la Web.archivo cspoj para eliminar rápidamente una carpeta en particular del proceso publish / deployment

Así;

<Content Include="Uploads/

A

<None Include="Uploads/
 5
Author: Stacker-flow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-12 09:43:36

Otra forma que puede hacer es ocultar carpetas en el explorador de Windows que no son necesarias para ser publicadas(no es la mejor solución, pero funciona si tiene un gran conjunto de imágenes que aún deben estar en el cuadro de desarrollo).

 4
Author: DSharper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-24 06:35:16

Como la pregunta está etiquetada con ASP, no hay un archivo .proj con el que jugar. Con VS2015, hay otro archivo útil en su lugar: website.publishproj. Y esto Asp.Net el artículo sobre excluir archivos y carpetas menciona el archivo .wpp.targets.

Todos estos archivos contienen elementos <ItemGroup>, que pueden tener elementos como <ExcludeFromPackageFolders>. Como estas características parecen documentadas, solo úsalas y no te sientas culpable por hackear o 'jugar'. Para mí, excluyendo un directorio utilizando las sencillas instrucciones de ese enlace y el website.publishproj el archivo funcionó como un encanto!

 0
Author: Roland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-24 22:30:59