web-dev-qa-db-fra.com

Erreur de chemin trop long lors de la création d'un service Windows Azure

J'ai essayé de publier mon service sur Windows Azure. Le service consiste en un seul rôle Web. Cependant, j’ai ajouté une fonctionnalité de connexion à distance, je l’ai publié et construit plusieurs fois, et tout à coup, il ne sera pas créé. La raison en est que 

Détails ci-dessous:
"Erreur 56 Le chemin, le nom de fichier ou les deux spécifiés sont trop longs. Le nom de fichier complet doit comporter moins de 260 caractères et le nom de répertoire moins de 248 caractères. C:\Program Files (x86)\MSBuild\Microsoft\Cloud Service\1.0\Visual Studio 10.0\Microsoft.CloudService.targets 202 5 FileSystemCreator "

Je suis allé sur tous les forums, j'ai utilisé la ligne de commande CSPack pour emballer le service, ce qui est correct, mais j'ai beaucoup de difficulté à configurer le certificat pour la connexion au bureau à distance et j'aimerais profiter de cette fonctionnalité car je suis. créer des sites Web dans l’événement onStart et j’aimerais jeter un coup d’œil sur IIS. Certains employés de Microsoft conviennent qu'il s'agit d'un bogue et qu'ils ont promis de résoudre ce problème, reportez-vous à post . J'utilise VS2010 et je ne sais pas comment résoudre ce problème.

Quelqu'un peut-il s'il vous plaît aider ou me diriger vers un endroit où je peux obtenir de l'aide.

40
smoothe

J'ai rencontré le même problème avec une nouvelle solution.

Notez que, contrairement à la réponse d'Eugenio Pace, l'erreur se produit uniquement lors du déploiement sur Azure (et non lors de l'exécution du projet dans Azure Compute Emulator).

Essayez d’ajouter la ligne suivante au premier groupe de propriétés de votre fichier de projet Windows Azure Visual Studio (* .ccproj):

<ServiceOutputDirectory>C:\Azure\</ServiceOutputDirectory>

La barre oblique finale (quel que soit le chemin choisi) semble être requise. Ce dossier sera supprimé chaque fois que vous créez un package s'il existe.

Ce paramètre semble rediriger le dossier de travail du package vers un chemin de base plus court, évitant ainsi une erreur de chemin trop long.

Le crédit va à: http://govada.blogspot.com/2011/12/windows-Azure-package-build-error.html

65
Michael Petito

Le dossier local utilisé pour stocker la structure de développement temporaire est peut-être trop long. Voir Windows Azure - Résolution "Le chemin est trop long après avoir été pleinement qualifié" Message d'erreur .

8
Eugenio Pace

Je rencontrais également ce problème lors du déploiement d'un projet Node.js sur Azure. 

Pour résoudre ce problème, je devais modifier mes variables d'environnement utilisateur "TEMP" et "TMP" afin qu'elles soient plus courtes que leurs valeurs par défaut.

Dans mon cas, ils pointaient par défaut sur% USERPROFILE%\AppData\Local\Temp, en les changeant en C:\Temp le résolvait.

Assurez-vous de redémarrer Windows après.

4
user885232

La meilleure solution peut être de créer un lien symbolique vers votre dossier de projet. Cela ne nécessite pas de déplacer des fichiers ou de modifier les variables système. Ouvrez l'invite de commande en tant qu'administrateur et lancez ceci:

mklink /D C:\Dev C:\Users\danzo\Source\Workspaces

Évidemment, vous pouvez remplacer "C:\Dev" par ce que vous voulez et vous devrez changer le chemin plus long situé au-dessus du répertoire racine de votre dossier solutions/projets.

2
Dan

Lorsque vous exécutez un service cloud sur la structure de développement, celle-ci utilise un dossier temporaire pour stocker un certain nombre de fichiers, notamment les emplacements de stockage locaux, les fichiers binaires mis en cache, la configuration, les informations de diagnostic et le contenu du site Web compilé mis en cache.

Par défaut, cet emplacement est: C:\Users \\ AppData\Local\dftmp

Le mérite en revient à Jim Nakashima de Microsoft: https://blogs.msdn.Microsoft.com/jnak/2010/01/14/windows-Azure-resoudre-le-path-is-too-long -après-être-pleinement-qualifié-message-d'erreur/

Pour changer le dossier temporaire, il faut créer une variable user environmen t:

Il s'appelle _CSRUN_STATE_DIRECTORY

Donnez-lui une valeur de répertoire nommé court comme: 

c:\AzureTemp

N'oubliez pas de redémarrer Visual Studio pour pouvoir relire les variables de l'environnement.

Il a corrigé de nombreux problèmes de compilation!

0
Emmanuel DURIN

Le même problème m'est arrivé lorsque j'ai essayé d'empaqueter un projet Umbraco pour Azure (https://github.com/WindowsAzure-Accelerators/wa-accelerator-umbraco/wiki/Deployment), j'ai trouvé la solution qui consiste à: copier et renommer le long -nom chemin et dossier "C:\someshortname".

(la solution a été suggérée par ceci: link

0
LincolnV

J'ai essayé toutes les 2 approches ci-dessus:

des variables d'environnement TEMP et TMP

-<ServiceOutputDirectory> chemin

et n'a pas fonctionné. Dans mon cas, j'ai dû déplacer l'ensemble du projet vers un chemin plus court, C: \, et j'ai travaillé. J'utilise W7 et VS12.

0
vicgilbcn