Temp path trop long lors de la publication d'un projet de site web

j'essaie de publier un ASP.NET projet de site Web en utilisant le publier outil du Site Web mais obtenir cette erreur:

ASPNETCOMPILER (0,0): Error ASPRUNTIME: the specified path, file name, ou les deux sont trop longs. Le nom de fichier pleinement qualifié doit être inférieur à 260 caractères, et le nom du répertoire doit être inférieur à 248 caractère.

je vois qu'il essaie de copier les fichiers vers un très long chemin dans AppData:

Copying all files to temporary location below for package/publish:

C:Usersimx0AppDataLocalTempWebSitePublishBMW.Web-424993535objDebugAspnetCompileMergeSource.

c:WINDOWSMicrosoft.NETFrameworkv4.0.30319aspnet_compiler.exe -v /BMW.Web -p C:Usersimx0AppDataLocalTempWebSitePublishBMW.Web-424993535objDebugAspnetCompileMergeSource C:Usersimx0AppDataLocalTempWebSitePublishBMW.Web-424993535objDebugAspnetCompileMergeTempBuildDir

Je n'ai rien trouvé dans mon répertoire .pubxml publier le profil. Comment puis-je changer le répertoire temporaire dans lequel Visual Studio copie les fichiers?

30
demandé sur Britton 2013-05-13 19:41:33

8 réponses

ajoutez ceci à votre profil publish pour modifier le répertoire temporaire pour package/publish:

<AspnetCompileMergeIntermediateOutputPath>c:\shortPath\</AspnetCompileMergeIntermediateOutputPath>
39
répondu Britton 2013-05-13 18:32:34

C'est en quelque sorte une réponse de côté, mais j'ai rencontré ce problème en essayant de MSBuild une solution qui dépendait de nodeJS et gulp. Le problème est que l'arbre de dépendance gulfp est devenu très profond et aspnet_compiler essayait de copier cet arbre dans un répertoire plus profond, ce qui a entraîné cette erreur. J'ai tout essayé de noter ici, mais rien n'a fonctionné.

comme c'est arrivé, je construisais avec TFS, donc ma solution était de lancer un attrib +h node_modules\* /S /D avant msbuild pour se cacher l'arbre des répertoires et ensuite attrib +h node_modules\* /S /D . Qu'il a fait pour moi.

ce serait certainement bien si l'erreur lancée dans cette situation par le compilateur révélait le chemin qui a fait échouer l'écriture...

12
répondu Josh 2016-01-14 17:04:53
  1. allez dans votre dossier de projet web, naviguez dans le dossier Propriétés\Publisprofiles.
  2. ouvrir votre profil fichier profile_name.pubxml (pas profile_name.pubxml.de l'utilisateur)
  3. copier/coller <AspnetCompileMergeIntermediateOutputPath>c:\shortPath\</AspnetCompileMergeIntermediateOutputPath> en vertu de la <PropertyGroup> tag
  4. enregistrez votre fichier, vous seriez en mesure de publier votre site Web en utilisant ce profil""
9
répondu Abdu 2014-05-09 06:51:19

Aucune des autres réponses a fonctionné pour moi.

Visual Studio 2013 De La Communauté De L'Édition.

j'ai changé la variable d'environnement tmp et TEMP en un nom de dossier court et ça a marché.

6
répondu Brian Lakstins 2015-04-30 19:59:35

essayez d'ajouter ceci

<IntermediateOutputPath>..\Temp</IntermediateOutputPath>

à la valeur par défaut <propertyGroup />

4
répondu kennydust 2014-11-19 06:54:20

nous avons identifié les fichiers/dossiers volumineux en utilisant cette solution, puis corrigé le problème à partir de là:

  1. exécutez ce script à l'invite de commande: dir /s /b | sort /r /+261 > out.txt il affichera tous les chemins de fichier vers la sortie.fichier txt
  2. copier la sortie dans un fichier Excel
  3. dans la colonne suivante au-dessus de ce que vous avez collé dans ajouter cette fonction Excel: =LEN(A1) où "A1" est la cellule, copiez ceci contre chaque longueur de dossier ainsi vous pouvez voir combien de temps les chemins sont
  4. Trier Excel par la longueur du chemin d'accès
  5. indiquer les longueurs supérieures à la limite recommandée

je sais que c'est un peu verbeux, mais si vous avez plusieurs fichiers résultant dans ce numéro, vous serez en mesure de les voir tous.

0
répondu Bern 2017-07-14 09:05:09

bien que le contenu de node_modules n'ait pas été inclus dans le contrôle de version ni dans le fichier *.csproj supprimer le dossier node_modules fait l'affaire pour moi.

0
répondu matcheek 2018-03-12 12:20:28

vous pouvez essayer la solution choisie pour corriger le problème de long chemin de fichier.

Encore, si pas en mesure de publier en raison d'un autre problème, Vous pouvez essayer la méthode ci-dessous.

= > si le ' solution Configuration 'est en ' Debug 'mode, s'il vous plaît changer la même chose en ' Release ' mode et publier les fichiers.

= > si la Configuration de la Solution est en Libération mode, et si le problème persiste, s'il vous plaît essayer de supprimer la dll générée précédemment dans le ' Libération ' dossier de notre projet et de Publier le projet de nouveau.

L'une des méthodes ci-dessus résoudra le problème.

0
répondu Jineesh Uvantavida 2018-04-21 10:33:05