asp.net asp.net-mvc visual-studio-2012 msbuild-wpp visual-studio-publish

asp.net - Visual Studio 2012 Web Publish no copia archivos



asp.net-mvc visual-studio-2012 (29)

Tengo un proyecto de aplicación web en VS 2012 y cuando uso la herramienta de publicación web, se compila correctamente pero no copia ningún archivo al destino de publicación (Sistema de archivos en este caso).

Si miro la salida de compilación, veo que todo se copia en obj / Release / Package / PackageTmp / correctamente, pero todo lo que veo en la salida de compilación es esto

4> Hecho el proyecto de construcción "{Proyecto} .csproj".
4> Eliminando archivos existentes ...
4> Carpeta de publicación / ...
4> ========== Compilación: 3 tuvo éxito, 0 falló, 1 actual, 0 saltó ==========
========== Publicación: 1 éxito, 0 error, 0 omitido =========

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

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

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

ACTUALIZAR:

Puede que haya encontrado una solución para esto. Acabo de volver a pasar esto y estaba jugando con la configuración de publicación. Una vez que cambié la Configuración seleccionada en la pestaña de 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 recibí una respuesta de un desarrollador en el equipo de desarrolladores web de VS. Dijo que han solucionado este problema en sus compilaciones internas y pronto lanzarán 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


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".


Descubrí que podía solucionar este problema cambiando la ubicación de destino de obj / [release | stage | ..] a una nueva ruta fuera de las carpetas de la solución, por ejemplo, c: / deploy. Parece que VS 2012 se estaba confundiendo y quizás se rindió en algún lugar durante el proceso de publicación.

Mate


El mismo problema con VS 2012 Pro con un destino de publicación de disco. El proyecto solía publicarse correctamente pero comenzó a hacer este problema en el que no pudo copiar los archivos a la carpeta de destino.

La solución fue editar el perfil de publicación, cambiar el modo de Liberar (Cualquier CPU) para depurar y luego volver a Liberar (Cualquier CPU). Al hacer esto, se vuelve a escribir el archivo PublishProfiles / projname.pubxml.user (como se describió anteriormente). Parece que agregó los elementos LastUsedBuild, LastUsedPlatform y TimeStampOfAssociatedLegacyPublishXmlFile en el nodo de grupo de propiedades. Una vez finalizada la publicación, agrega otro ItemGroup con archivos individuales y tiempos de publicación.


El mismo problema. La solución fue cambiar la configuración de publicación de Liberar a Depurar. Volver a publicar y luego volver a la versión ...


En Visual Studio 2012, el cambio entre versiones sigue causando problemas.

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


Encontré esto con los archivos de referencia de servicio generados por Visual Studio que se vuelven demasiado largos en términos de la longitud total de la ruta.

Para acortarlos, vuelva a generar la referencia de servicio con svcutil.exe, eliminando todos los archivos de referencia de servicio originales.

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 (que generalmente se encuentra en el archivo Reference.cs) para evitar errores de compilación.

http://myservice debe reemplazarse con la url de punto final de servicio.


Esta acción fue exitosa para mí:

Elimine los perfiles de publicación en "Propiedades> Perfiles de publicación> xxxx.pubxml" y vuelva a configurarlos.


Esto puede ser causado por soluciones / proyectos que se crearon con el RC de vs2012. Esto me sucedió hace meses y solucioné el problema asegurándome de que las configuraciones de compilación 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 for Web. Hice exactamente lo que sugería el póster original y solucionó mi problema.

Aquí está el hilo que me lleva 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/06/2012 a las 12:00 PM Hola Andrew,

Esto fue un error en la forma en que manejamos la configuración de la solución en comparación con la configuración del proyecto. Asumimos incorrectamente que serían los mismos (por ejemplo, Release | x86 de Solution tendría cada proyecto configurado como Release | x86 también), lo que hizo que usáramos las propiedades de compilación incorrectas para publicar archivos.

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

Gracias, - Jimmy Lewis SDET, equipo de Visual Web Developer


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

<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform>

Ponga esos en su .pubxml y debería estar listo para comenzar.


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

Lo que hice fue mover el proyecto a la unidad c, cambiar la carpeta del proyecto a algo más corto y publicarlo ...

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

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

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

Espero que les ayude chicos.


Había publicado el sitio web varias veces. Pero un día, cuando modifiqué un archivo aspx y luego intenté publicar el sitio web, se produjo 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 a la carpeta de destino.

  2. Para averiguar el archivo que genera el error, simplemente copie el contenido de la carpeta del sitio web a una nueva carpeta e inicie el estudio visual con ese sitio web.

  3. Ahora, cuando intente publicarlo, le dará el nombre del archivo que contiene los errores.

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


Lo más fácil es,

1. select the file(s) that are not being copied, 2. Press <F4> 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!


Lo siguiente me funcionó:

Simplemente cambie de Versión> Depurar> Versión (o viceversa) y luego publique.

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


Me encontré con el mismo problema en VS 2010, después de verificar la salida de publicación, los registros de eventos, activar y revisar los registros de Visual Studio, etc., entonces 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.


Me he metido en el mismo problema. Ninguna de las soluciones anteriores funcionó para mí.

Por lo tanto, he excluido los archivos que no pudieron copiarse al publicar.


Mi problema estaba en la configuración incorrecta del archivo myproject.csproj. El archivo ''_address-step1-Stores.cshtml'' no se copió en la publicación. ''Ninguno'' cambió a ''Contenido'', ahora está bien.


Ninguna de las soluciones anteriores funcionó para mí.

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

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

<Import Project="$(MSBuildExtensionsPath32)/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets" />

a esto :

<Import Project="$(VSToolsPath)/WebApplications/Microsoft.WebApplication.targets" Condition="''$(VSToolsPath)'' != ''''" /> <Import Project="$(MSBuildExtensionsPath32)/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets" Condition="false" />

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

(Lo siento por las largas colas, pero no pude encontrar una mejor manera de condensarlas).


Para llevar esto un poco más lejos. 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 origen, 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í:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> </Project>

Cuando creas un nuevo perfil, creará un xml que se ve así:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform> <TimeStampOfAssociatedLegacyPublishXmlFile /> <EncryptedPassword /> </PropertyGroup> </Project>

Si toma el nodo <PropertyGroup> y lo coloca en el archivo .pubxml.user , sus PublishProfiles comenzarán a funcionar nuevamente.


Por lo que vale la pena, finalmente dejé de luchar con Web Deploy para hacer lo que quería (copiar archivos desplegables y nada más), así que hice un script en PowerShell y estoy realmente feliz con el resultado. Es mucho más rápido que cualquier cosa que probé a través de MSBuild / Web Publish, probablemente porque esos métodos seguían haciendo cosas que no necesitaba.

Aquí está la esencia ( literally ):

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, lo llamo en un entorno de CI (TeamCity), pero también podría ser fácilmente conectado a un evento posterior a la compilación.


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 publica.

Al publicar volver a comprobar lo que han optado.
Esto debería hacerlo. Lo hizo por mí! :)


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

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".


Recientemente tuve el mismo problema en VS 2013 para un proyecto MVC en el que importé Umbraco CMS. No pude publicar La respuesta anterior me ayudó, aunque necesitaba un tiempo para averiguar qué debía hacer realmente 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 configuración determinada, por ejemplo, Liberar y Cualquier CPU. Ejecutar el proyecto.
  • Luego, 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, Liberar y Cualquier CPU), como antes de ejecutar el proyecto la última vez.
  • Además, en mi caso fue necesario eliminar la carpeta OBJ porque aquí la configuración de mis últimos intentos fallidos de publicación se atascó, aunque reinicié VS y eliminé todos los perfiles de publicación.

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 fuente de otra máquina que se creó en una versión más nueva de Visual Studio.


Tengo (tuve) el mismo problema para varios proyectos. Los únicos exitosos parecen ser los proyectos web. Eliminar y volver a crear el perfil resuelve el problema solo una vez. Además, al comparar el publishxml generado 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 construcción de un lado a otro parece ser la única solución confiable en este momento.


Tengo una aplicación web con varios otros proyectos referenciados en la solución. He implementado con éxito con una única configuración de publicación muchas veces en el pasado. Cambié la configuración del proyecto de Debug a Release para un proyecto que se había perdido en el pasado. La próxima vez que intenté desplegar obtuve estos síntomas, donde la publicación 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 bien otra vez.

Win8 VS2012, portátil de mierda.


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


Tuve este mismo problema, sin embargo, ninguna de las respuestas en este hilo funcionó para mí. Mi problema fue que hay un directorio que contiene archivos HTML estáticos generados dinámicamente (por mi aplicación). El directorio completo no estaba siendo publicado.

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

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

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

La razón por la que esto ocurrió fue porque estas extensiones de archivo no fueron reconocidas como requeridas de publicación por 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 la Acción de compilación esté establecida en Contenido

Si esto no funciona, se puede intentar lo siguiente.

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

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


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

cuando hace clic derecho en su solución y selecciona publicar, tiene un perfil establecido. borra esto y crea uno nuevo.

Esto lo arreglará.

Tuve este problema de cambiar de 2010 a 2012


Verifique en su proyecto actual si ha realizado una copia con el mismo nombre de clase y diferente nombre de página (el nombre de la clase heredará el archivo copiado). En definitiva eso confundirá al compilador !!!

CodeFile = "Consolidated.aspx.vb" Inherits = "Consolidated