Errore “The specified path, file name, or both are too long” durante la compilazione in Visual Studio

Recentemente mi sono imbattuto in questo tipo di errore durante la compilazione di un progetto web in Visual Studio 2017 (ma è un errore noto anche in Visual Studio 2019):

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

oppure, in italiano:

“Il percorso, il nome o entrambi i nomi di file specificati sono troppo lunghi. Il nome del file completo deve essere inferiore a 260 caratteri, e il nome della directory deve essere inferiore a 240 caratteri.”

In sostanza il compilatore di Visual Studio non riesce a generare il codice compilato in quanto scrive i file temporanei in una directory che è più lunga di 260 caratteri (e questo è un limite di Windows). Questo capita quando il nostro progetto si chiama con identificativo troppo lungo. Inoltre c’è da sapere che durante la compilazione Visual Studio copia dei files nella directory “C:\Users\[nomeutente]\AppData\Local\Temp\WebsitePublish” che di per sè è già lunga abbastanza.

La soluzione a questo problema è in realtà semplice, si tratta di dire al compilatore di generare i files temporanei altrove.
Per farlo basta editare il file .pubxml (presente nella cartella del progetto \App_Data\PublishProfiles ) aggiungendo come prima riga al primo gruppo <PropertyGroup> presente nel file (dove [nomesolution] è da sostituire con un nome a piacimento:

<IntermediateOutputPath>..\Temp\[nomesolution]\</IntermediateOutputPath>

ATTENZIONE: non modificare il file website.publishproj nella root della solution il quale sembra del tutto simile al precedente ma non va modificato.

A questo punto la compilazione dovrebbe andare liscia generando i files temporanei in una cartella chiamata \Temp nella wwwroot.

NOTA: Potrebbero sorgere dei problemi in fase di compilazione dove nella cartella generata vengano inclusi dei files di una compilazione fallita precedentemente (ad esempio files rimossi, modificati, etc). Se notate stranezze simili il mio consiglio è quello di chiudere Visual Studio, accedere alla cartella C:\Users\[nomeutente]\AppData\Local\Temp e cancellarne tutto il contenuto. Alcune cartelle e/o files chiederanno conferma, altre non si potranno cancellare. Bypassate andando oltre. Questa procedura cancellerà tuti i files temporanei di Visual Studio resettando di fatto la compilazione.

https://www.desdinova.it
Aiuto aziende e professionisti che hanno bisogno di sviluppare in modo creativo, alternativo ed efficace la loro identità digitale e che desiderano ottenere visibilità e risultati concreti attraverso lo sviluppo di strumenti online dall'elevata innovazione e personalizzazione (3D, Realtà Virtuale, Realtà Aumentata, Advergame, etc)
Daniele Ferla
Aiuto aziende e professionisti che hanno bisogno di sviluppare in modo creativo, alternativo ed efficace la loro identità digitale e che desiderano ottenere visibilità e risultati concreti attraverso lo sviluppo di strumenti online dall'elevata innovazione e personalizzazione (3D, Realtà Virtuale, Realtà Aumentata, Advergame, etc)

Must Read