Visual Publishing 2012 Web Publish no copia archivos

Tengo un proyecto de aplicación web en VS 2012 y cuando uso la herramienta de publicación web se crea con éxito pero no copia ningún archivo en el destino de publicación (en este caso, el sistema de archivos).

Si miro la salida de comstackción, puedo ver que todo se copia a obj \ Release \ Package \ PackageTmp \ correctamente, pero luego todo lo que veo en la salida de comstackción es este:

4> Proyecto de construcción terminado “{Proyecto} .csproj”.
4> Eliminar archivos existentes …
4> Carpeta de publicación / …
4> ========== Build: 3 exitosos, 0 fallados, 1 actualizado, 0 omitidos ==========
========== Publicar: 1 exitoso, 0 fallido, 0 omitido ==========

Aunque dice que la publicación tuvo éxito, no hay archivos en el directorio de destino para la publicación.

Lo he visto en múltiples proyectos y, a veces, parece que las configuraciones de Solución / Plataforma causan este problema, pero no he podido identificar una causa exacta para esto.

¿Alguien más ha visto esto suceder o tiene una idea sobre cómo hacer que esto funcione correctamente?

ACTUALIZAR:

Es posible que haya encontrado una solución para esto. Simplemente tuve que pasar esto de nuevo y estaba jugando con la configuración de publicación. Una vez que cambié la Configuración seleccionada en la pestaña Configuración a otra configuración y luego volví a la que quería usar, todos mis archivos comenzaron a publicarse nuevamente. Esperemos que esto funcione en otros proyectos en el futuro.

ACTUALIZACIÓN 2:

Publiqué un error en Microsoft Connect y escuché de un desarrollador en el equipo de VS Web Developer. Dijo que han solucionado este problema en sus comstackciones internas y pronto lanzará una actualización de la herramienta de publicación que solucionará este problema.

ACTUALIZACIÓN 3:

Esto se ha solucionado recientemente con Visual Studio 2012 Update 2

Esto puede ser causado por soluciones / proyectos que se crearon con el RC de vs2012. Esto me sucedió hace meses y solucionó el problema al asegurarse de que las configuraciones de mi solución coincidieran con las configuraciones de mi proyecto …

Recientemente experimenté el mismo problema al abrir la misma solución creada originalmente en vs2012RC con VS2012 Express para Web. Hice exactamente lo que el cartel original sugirió y solucionó mi problema.

Aquí está el hilo que me llevó a la respuesta:

connect.microsoft.com/VisualStudio/feedback/details/746321/publish-web-application-fails

La respuesta pertinente de la conversación anterior que me ayudó fue:

Publicado por Microsoft el 13/6/2012 a las 12:00 PM Hola Andrew,

Este fue un error en la forma en que manejamos la configuración de la solución frente a la configuración del proyecto. Supusimos incorrectamente que serían los mismos (por ejemplo, Release | x86 de Solution tendría cada proyecto configurado para Release | x86 también), lo que provocó que usemos las propiedades de comstackción incorrectas para publicar archivos.

La solución alternativa es hacer que la configuración de la solución y la configuración de comstackción coincidan. Este problema se solucionará en la próxima versión de Visual Studio 2012.

Gracias, – Jimmy Lewis SDET, equipo Visual Web Developer

El mismo problema. La solución alternativa era cambiar la configuración de publicación de Release a Debug. Vuelva a publicar y luego vuelva a cambiar a Release …

Para llevar esto un poco más allá. Tiene dos archivos que se crean cuando crea un perfil de publicación.

  • NewProfile.pubxml
  • NewProfile.pubxml.user

Cuando abre un proyecto que tiene estos archivos en la carpeta PublishProfile desde un control de fuente, solo tiene el archivo .pubxml y no el archivo .publxml.user , por lo que crea el archivo .publxml.user sobre la marcha cuando abre el proyecto . Cuando crea el nuevo .publxml.user sobre la marcha, el xml se ve así:

   

Cuando creas un nuevo perfil crea xml que se ve así:

   Release Any CPU     

Si toma el nodo y lo coloca en el archivo .pubxml.user , .pubxml.user comenzará a funcionar nuevamente.

Una solución fácil es eliminar su perfil de publicación y crear uno nuevo.

cuando haces clic derecho en tu solución y seleccionas publicar, tienes un conjunto de perfiles. eliminar esto y crear uno nuevo.

esto lo arreglará

Tuve este problema de cambiar de 2010 a 2012

Tuve el mismo error y cambio la configuración de la versión a la depuración y el problema se resolvió.

Tuve el mismo problema, pero ninguna de las respuestas en este hilo me funcionó. Mi problema era que hay un directorio que contiene archivos HTML estáticos generados dinámicamente (por mi aplicación). El directorio completo no se estaba publicando.

La solución que funcionó para mí fue encontrada aquí :

Un problema que tuve hace un tiempo y pensé que debía documentar es que ciertos tipos de archivos no se cargaban cuando publiqué mi proyecto.

Los tipos de archivo en cuestión eran archivos .pdf y .rtf.

La razón por la que esto sucedió fue porque estas extensiones de archivo no se reconocieron como requisitos de publicación de Visual Studio. Afortunadamente, esto se puede cambiar en Visual Studio.

Seleccione los archivos que no se están copiando. En Propiedades, asegúrese de que Build Action esté configurado en Content .

Si esto no funciona, se puede intentar lo siguiente.

En el menú Proyecto , seleccione Paquete / Publicar web y observe este menú desplegable:

enter image description here

Intente cambiar esto a Todos los archivos en esta carpeta de proyecto.

Esto se debe a que el archivo .pubxml.user contiene información requerida para publicar, y ese archivo no está (y no debería) incluido en el control de código fuente. Para corregir este error VS, copie la información del archivo .pubxml.user en el archivo .pubxml. Las propiedades relevantes son:

 Release Any CPU 

Ponlos en tu .pubxml y deberías ir bien.

Intenté todas estas soluciones pero esta es la que funciona siempre.

Simplemente cambiamos el “Método de publicación:” de “Sistema de archivos” a, por ejemplo, “Implementación web”, y lo cambiamos inmediatamente a “Sistema de archivos”.

He tenido el mismo problema para varios proyectos. Los únicos afectados parecen ser proyectos web. Eliminar y volver a crear el perfil resuelve el problema solo una vez. Adicionalmente, al comparar los rendimientos generados de publishxml no hay diferencias, por lo que no parece estar relacionado con el perfil en absoluto.

La solución alternativa mencionada por OP para cambiar los problemas de comstackción de ida y vuelta parece ser la única solución confiable en este momento.

Me encontré con el mismo problema en VS 2010, después de comprobar la salida de publicaciones, registros de eventos, encender y verificar registros de estudios visuales, etc. Luego decidí eliminar la publicación web (mediante agregar / eliminar) que creo que se había actualizado recientemente a v1. 0.30810.0. Esto resolvió el problema.

Aquí tuvimos el mismo problema.

Simplemente cambiamos el “Método de publicación:” de “Sistema de archivos” a, por ejemplo, “Implementación web”, y lo cambiamos inmediatamente a “Sistema de archivos”.

Lo siguiente funcionó para mí:

Simplemente cambie de Versión> Depurar> Versión (o viceversa) y luego publíquelo.

No es necesario eliminar, editar ni publicar nada que no necesite.

Mismo problema con VS 2012 Pro con un destino de publicación en disco. Project solía publicar correctamente pero comenzó a hacer este problema donde no pudo copiar los archivos a la carpeta de destino.

La solución fue editar el perfil de publicación, cambiar el modo de Release (Cualquier CPU) para depurar y luego volver a Release (Cualquier CPU). Al hacerlo, se reescribe el archivo PublishProfiles \ projname.pubxml.user (como se describe arriba). Parece que agregó los elementos LastUsedBuild, LastUsedPlatform y TimeStampOfAssociatedLegacyPublishXmlFile debajo del nodo de grupo de propiedades. Una vez completada la publicación, agrega otro ItemGroup con archivos individuales y tiempos de publicación.

Mi problema estaba en la configuración incorrecta del archivo myproject.csproj. El archivo ‘_address-step1-stored.cshtml’ no se copió en publicación. “Ninguno” cambió a “Contenido”, ahora está bien. enter image description here

Esta acción fue exitosa para mí:

Elimine los perfiles de publicación en “Propiedades> Perfiles de publicación> xxxx.pubxml” y vuelva a establecerlo.

Por lo que vale, finalmente me rendí en las peleas con Web Deploy para que hiciera lo que quería (copiar archivos desplegables y nada más), así que lo escribí en PowerShell y estoy muy contento con el resultado. Es mucho más rápido que cualquier cosa que probé a través de MSBuild / Web Publish, presumiblemente porque esos métodos todavía estaban haciendo cosas que no necesitaba.

Aquí está la esencia ( literalmente ):

 function copy-deployable-web-files($proj_path, $deploy_dir) { # copy files where Build Action = "Content" $proj_dir = split-path -parent $proj_path [xml]$xml = get-content $proj_path $xml.Project.ItemGroup | % { $_.Content } | % { $_.Include } | ? { $_ } | % { $from = "$proj_dir\$_" $to = split-path -parent "$deploy_dir\$_" if (!(test-path $to)) { md $to } cp $from $to } # copy everything in bin cp "$proj_dir\bin" $deploy_dir -recurse } 

En mi caso, estoy llamando a esto en un entorno de CI (TeamCity), pero también podría ser fácilmente enganchado en un evento posterior a la construcción.

Descubrí que podía evitar este problema cambiando por completo la ubicación de destino de obj / [release | stage | ..] a una nueva ruta fuera de las carpetas de la solución, por ejemplo, c: \ deployment. Parece que VS 2012 se estaba confundiendo y tal vez renunciando en algún lugar durante el proceso de publicación.

Mate

Tuve el mismo problema recientemente en VS 2013 para un proyecto de MVC en el que importé Umbraco CMS. No pude publicar La respuesta anterior me ayudó, aunque necesité un tiempo para descubrir qué es lo que realmente debería hacer en VS. Necesitaba algo de investigación, por ejemplo, en los blogs de MS para averiguarlo. Intento decirlo simple:

  • Elija en la barra de herramientas de VS una cierta configuración, por ejemplo, Liberar y Cualquier CPU. Ejecute el proyecto.
  • A continuación, haga clic con el botón derecho en el Explorador de soluciones en la solución en cuestión, elija Publicar. Cree un nuevo perfil de publicación o use uno dado, pero siempre asegúrese de que en la configuración se elija la misma configuración (por ejemplo, Release y Any CPU), como antes de ejecutar el proyecto por última vez.
  • Además, en mi caso fue necesario eliminar la carpeta OBJ porque aquí se estancó la configuración de los últimos bashs infructuosos de publicar, aunque reinicié VS y eliminé todos los perfiles de publicación.

Tengo una aplicación web con varios otros proyectos referenciados en la solución. Implementé con éxito una sola configuración de publicación muchas veces en el pasado. Cambié la configuración del proyecto de depuración a versión para un proyecto que se había perdido en el pasado. La próxima vez que intenté implementar, obtuve estos síntomas, donde Publish simplemente falla silenciosamente, no hace nada y dice que tuvo éxito:

 1>------ Build started: Project: Project, Configuration: DeployProduction Any CPU ------ 1> 2>Publishing folder /... ========== Build: 1 succeeded, 0 failed, 9 up-to-date, 0 skipped ========== ========== Publish: 1 succeeded, 0 failed, 0 skipped ========== 

La única forma de recuperarlo era borrar el perfil de publicación, cerrar Visual Studio para forzarlo a guardar la eliminación, volver a abrirlo y volver a crear el perfil de publicación desde cero. Una vez que hice eso, pude publicar correctamente otra vez.

Win8 VS2012, portátil horrible.

En Visual Studio 2012, cambiar entre lanzamientos todavía causa problemas.

Agregamos un evento de preconstrucción para eliminar la carpeta obj : del /s /f /q $(ProjectDir)\obj y solucionó el problema de la publicación. La limpieza funciona a veces, pero no siempre.

Finalmente encontré la respuesta por mi cuenta. Todas las soluciones anteriores no funcionan para mí.

Lo que había hecho es mover el proyecto para conducir c cambiar la carpeta del proyecto a algo más corto y publicarla en auge.

la razón por la que falló de mi lado es que tenía un nombre de proyecto / jerarquía muy largo.

C: \ Users \ user \ Desktop \ Compliance Management System \ ComplianceIssueManagementSystem \ ComplianceIssueManagementSystem

Había pensado en esto porque a veces, cuando extraía el archivo rar, decía que el nombre / ruta era demasiado largo. Pensé que sería lo mismo que visual studio 2012 publicar. y lo hace!

Espero que les ayude chicos.

Verifique en su proyecto actual si ha realizado una copia de respaldo con el mismo nombre de clase y otro nombre de página (el nombre de clase heredará el archivo copiado). ¡En última instancia, eso confundirá al comstackdor!

CodeFile = “Consolidated.aspx.vb” Inherits = “Consolidated

Ninguna de las soluciones anteriores funcionó para mí.

Pero noté que de nuestros cinco proyectos ASP.NET MVC en nuestra solución principal, cuatro de ellos colocaron el paquete de implementación en el lugar correcto, mientras que uno lo dejó en obj \ Debug.

Comparé los proyectos y encontré una discrepancia. La solución fue cambiar esto :

  

a esto :

   

Después de hacer este cambio, los cinco proyectos colocan sus paquetes de implementación en el lugar correcto.

(Perdón por las largas colas, pero no pude encontrar una forma mejor de condensarlas).

Me encontré con esto con los archivos de referencia de servicio generados por Visual Studio demasiado largos en términos de la longitud total de la ruta.

Los acorté al volver a generar la referencia de servicio usando svcutil.exe, borrando todos los archivos originales de referencia de servicio.

svcutil se puede llamar así:

 "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcUtil.exe" /language:CS http://myservice /namespace:*,My.Namespace 

My.Namespace debe reemplazarse con el espacio de nombres existente en el proxy de servicio generado (normalmente se encuentra en el archivo Reference.cs) para evitar errores de comstackción.

http://myservice debe reemplazarse con la URL del punto final del servicio.

Tengo el mismo problema. Ninguna de las soluciones anteriores funcionó para mí.

Por lo tanto, excluí los archivos que no se pudieron copiar durante la publicación.

Yo había publicado el sitio web varias veces. Pero un día, cuando modifiqué un archivo aspx y luego intenté publicar el sitio web, resultó en una carpeta publicada vacía.

En mi solución, encontré una solución.

  1. El asistente de publicación reflejará cualquier error durante la publicación, pero no copiará ningún archivo en la carpeta de destino.

  2. Para encontrar el archivo que genera el error simplemente copie los contenidos de la carpeta del sitio web en una nueva carpeta y comience el estudio visual con ese sitio web.

  3. Ahora, cuando intentes publicar, te dará el nombre del archivo que contiene errores.

  4. Simplemente rectifique el error en la carpeta del sitio web original e intente publicar, funcionará como estaba antes.

Siga estos pasos para resolver:

 Build > Publish > Profile > New 

Cree un nuevo perfil y configúrelo con la misma configuración que su perfil existente.

El proyecto ahora se publicará correctamente. Esto ocurre a menudo como resultado de un perfil de publicación controlado por la fuente de otra máquina que se creó en una versión más nueva de Visual Studio.

Primero:

  • Construir en la configuración de lanzamiento.
  • En Propiedades del proyecto-> página, seleccione Todos los archivos y carpetas en Paquete / Publicar web.
  • Reconstruir la solución (después de la Solución limpia).
  • ahora publique.

Mientras publicas, vuelve a verificar lo que has elegido.
esto debería hacerlo ¡Lo hice por mí! 🙂

Lo más fácil es

  1. select the file(s) that are not being copied, 2. Press  to get the properties window 3. Make the "Build Action" property "compile" or "content" depending on what it is. 4. Now this particular file will be included!