5

Possiedo un server del controllo automatico della velocità che esegue una build su una VM. Tutto ciò che ho fatto è stato cambiare il controllo del codice sorgente da Perforce a Git, e la compilazione ora sta fallendo.Cruise Control. Nessuna eccezione di scrittura msbuild-results.xml

CCNet Config

<tasks> 
    <msbuild> 
     <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> 
     <workingDirectory>c:\Build\Pcp_Main</workingDirectory> 
     <buildArgs>/v:d Pcp.proj /target:Clobber;Build /property:Configurations="Debug;Release" /property:NUnitRedirectConsoleOutput=1</buildArgs> 
     <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
     <timeout>2700</timeout> 
    </msbuild> 
</tasks> 

costruire Log

Done Building Project "c:\Build\Pcp_Main\Pcp.proj" (Clobber;Build target(s)). 

Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

Time Elapsed 00:01:32.39 
MSBUILD : error MSB4015: The build stopped unexpectedly because the "ReusableLogger" logger failed unexpectedly during shutdown. 
System.IO.DirectoryNotFoundException: Could not find a part of the path 'c:\Build\Pcp_Main\Artifacts\msbuild-results-2d082e8c-0e88-4c0b-9a6b-aa0e3094cab9.xml'. 
    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) 
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 
    at System.Xml.XmlDocument.Save(String filename) 
    at ThoughtWorks.CruiseControl.MSBuild.XmlLogger.Shutdown() 
    at Microsoft.Build.Evaluation.ProjectCollection.ReusableLogger.Shutdown() 
    at Microsoft.Build.BackEnd.Logging.LoggingService.ShutdownLogger(ILogger logger) 
</build> 

cartella C: \ costruire \ Pcp_Main \ Artefatti \ esiste e l'utente che esegue la build ha accesso in scrittura alla cartella .

Ho anche provato a modificare la dll di registrazione su Rodemeyer.MsBuildToCCnet.dll e ottengo la stessa eccezione.

Il progetto viene generato anche dalla riga di comando senza problemi.

risposta

6

Il problema riguardava la cartella delle risorse all'interno della cartella di creazione. Lo spostamento all'esterno della cartella di build ha risolto il problema.

+0

cercava tutto lo stackoverflow per questo errore ma non è riuscito a trovare una soluzione. Ora l'ho trovato anch'io e ho cercato qualcos'altro ... e ho trovato questo ... quando la vita ti dà limoni ..... – spankmaster79

+0

Felice di aver aiutato qualcuno! – James

+0

Stavamo ottenendo questo perché all'inizio della nostra build stavamo ripulendo una build precedente, che includeva il file di log di MSBuild in cui scrivevamo. Ops. –