2016-03-02 9 views
6

Quando provo a MSBuild un progetto Multi-Sede in Jenkins, la compilazione fallisce perché msbuild sostituire la fuga "% 2F" con "\"Come creare un progetto multi-ramo in jenkins?

errore Esempio:

"C: \ Program Files (x86) \ Jenkins \ jobs \ ProjectBranches \ branches \ branches% 2FBranch-229 \ workspace \ project \ project \ project.csproj "(destinazione predefinita) (1) -> C: \ Programmi (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.CSharp.CurrentVersion.targets (321,5): errore MSB4019: il progetto importato "C: \ Programmi (x86) \ Jenkins \ jobs \ ProjectBranches \ branches \ branches \ Branch-229 \ workspace \ project \ packages \ Microsoft .Net.Compilers.1.0.0 \ tools \ Microsoft.CSharp.Core.targets "non è stato trovato. Confermare che il percorso nella dichiarazione è corretto e che il file esiste sul disco. [C: \ Programmi (x86) \ Jenkins \ jobs \ ProjectBranches \ branches \ branches% 2FBranch-229 \ workspace \ project \ project \ project.csproj]

risposta

0

Ho appena riscontrato questo problema oggi. Ho finito per risolvere eseguendo l'override della cartella build e workspace nella configurazione del server

Ho impostato "Directory radice area di lavoro" su "c:/ws/$ {ITEM_FULL_NAME}/lavoro" e su "Crea directory directory record" su " c:/ws/$ {ITEM_FULL_NAME}/build "

ITEM_FULL_NAME è il nome del lavoro e poiché il nome del processo ha un"/"anziché il% 2F finirà per rendere la cartella simile a c: \ ws \ project \ branch \ name \ work. Questo dovrebbe risolvere il tuo problema.

1

C'è un'intera discussione sulla codifica del nome di ramo in Jira #34564.

A, proposto work-around che funziona per me è quello di change workspace dir in Jenkinsfile:

node(agent) { 

    def workspace_orig = pwd() 
    def workspace_sane = workspace_orig.replaceAll("%", "_") 

    ws(workspace_sane) { 
     // ... 
    } 

} 
Problemi correlati