argumentos asp.net visual-studio visual-studio-2012 msbuild

asp.net - argumentos - msbuild project



Error de publicaciĆ³n del sitio web debido a que la ruta del archivo es demasiado larga (7)

Al mover el proyecto más cerca del archivo raíz funciona. Encontré un enlace a una solución que sí me funcionó. El sitio también hace un gran trabajo en la discusión del problema, así como los detalles detrás de su solución.

La solución de Sayed Hashimi para el problema del camino largo.

Estoy intentando publicar un proyecto de sitio web de un proveedor que tiene rutas ridículamente largas hacia algunos de sus archivos. Al publicar, el error es:

The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

Cuando publico, Visual Studio 2012 Update 3 está intentando escribir en un directorio temporal, y el prefijo es bastante largo:

C:/Users/cuser/AppData/Local/Temp/WebSitePublish/MidasCMS400v9-1580334405/obj/Debug/Package/PackageTmp/

Pensé que podría ser capaz de redirigir VS a un directorio temporal diferente en c:/tem siguiendo esta respuesta SO: La ruta temporal es demasiado larga al publicar un proyecto de sitio web

Creo mi perfil de publicación, y tan pronto como lo abro, hay un error que indica que WebPublishMethod no es un elemento de PropertyGroup . En cualquier caso, actualicé el archivo para que se vea así:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>FileSystem</WebPublishMethod> <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform> <SiteUrlToLaunchAfterPublish /> <ExcludeApp_Data>False</ExcludeApp_Data> <publishUrl>C:/Sites/MidasPublish</publishUrl> <DeleteExistingFiles>False</DeleteExistingFiles> <AspnetCompileMergeIntermediateOutputPath>c:/tem/</AspnetCompileMergeIntermediateOutputPath> </PropertyGroup> </Project>

Cuando intento publicar, aparece el cuadro emergente modal box titulado "Detección de modificación de archivo", con el mensaje "El proyecto YourWebsite ha sido modificado fuera del entorno", y me pregunta si quiero volver a cargar. En mi lista de errores, sigo recibiendo el error de que la ruta es demasiado larga, ya que no está intentando usar el directorio c:/tem he identificado.

Necesito poner esta cosa sangrienta en un servidor, estoy preparado para cualquier solución que me permita publicar la cosa sangrienta. No sé mucho sobre la plantilla de proyecto del sitio web, así que avíseme si hay una mejor manera.


Desde http://forums.asp.net/t/1944241.aspx?Website+publish+failing+due+to+file+path+being+too+long

Agregue la siguiente línea en el grupo de propiedades predeterminado del archivo de proyecto web.

<IntermediateOutputPath>../Temp</IntermediateOutputPath>

Es probable que pueda hacer la ruta anterior C: / temp o ...... / Temp (según sea necesario para acercarse lo más posible a la raíz de la unidad).

En mi caso, no hubo .csproj o .vbproj (archivo de proyecto del sitio web), pero hubo un archivo website.publishproj que le advierte que no lo edite, pero lo hice de todos modos, y resolvió el problema.


En el momento de publicar el proyecto, el compilador de visual studio verifica el tamaño de los archivos que forman parte del proyecto.

Así que busqué nombres largos en archivos. Encontré y renombré esos archivos.

Funcionó perfectamente


Este error se debe al nombre largo de la ruta ... U simplemente corta su carpeta de la ubicación actual a la unidad D o la unidad F. Supongamos que el nombre de la carpeta del proyecto es "myproject", y debe cortar esta carpeta y pegarla en la unidad D de la unidad F, que su nombre de ruta actual será D: / myproject o F: / myproject. Luego publicas de nuevo ...... Funcionará ...


Gracias a Stelvio, desde http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2156195-fix-260-character-file-name-length-limitation , hay una solución:

Bueno, encontré una solución alternativa que PERMITE trabajar con una ruta con más de 260 caracteres.

Descargo de responsabilidad: he probado este truco solo en Windows 8 x64 y Visual Studio 2013

Entonces, para que funcione, acabo de crear una unión a la carpeta con el comando mklink:

Supongamos que esta es la ruta original: d: / very / very / long / path / to / solution / folder, puede obtener un enlace corto como d: / short_path_to_solution_folder simplemente ejecutando este comando desde un shell dos como administrador: mklink / J d : / short_path_to_solution_folder d: / very / very / long / path / to / solution / folder

Cambia la ruta de origen y destino a tus necesidades

¡Atentamente! Stelvio

desde este enlace: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2156195-fix-260-character-file-name-length-limitation


La respuesta de Jason Beck me funcionó con un pequeño cambio. Para evitar el error "El IntermediateOutputPath debe terminar con una barra diagonal final". use la "/" al final de la ruta: .. / Temp /

Su "CONFIG_PUBLISH_FILE.pubxml" debería tener este aspecto (el "..." omite otras configuraciones que pueda tener su archivo): ... ... .. / Temp / ...


La solución simple para este problema, es tener nombres cortos para las carpetas, no tener demasiadas carpetas dentro de las carpetas, me refiero a mantener la jerarquía de carpetas simple y se librará de este error