2014-04-04 8 views
6

Questo errore viene visualizzato nell'elenco degli errori di Visual Studio 2012 quando si utilizza Azure SDK versione 2.2.In Azure, come si risolve l'errore "l'attività ValidateServiceFiles non è riuscita in modo imprevisto"?

fa riferimento anche un file:

 Error 5 The "ValidateServiceFiles" task failed unexpectedly. 
System.IO.FileNotFoundException: Could not find file 'C:\Project\Data.Contracts\ServiceConfiguration.Local.cscfg'. 
File name: 'C:\Project\Data.Contracts\ServiceConfiguration.Local.cscfg' 
    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, Boolean checkHost) 
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 
    at Microsoft.ServiceHosting.Tools.Internal.Translations.Translate.ServiceConfigurationFromFile(Boolean useInternalSchema, String serviceConfigurationFile, ValidationHandler validationHandler) 
    at Microsoft.ServiceHosting.Tools.MSBuildTasks.ValidateServiceFiles.Execute() 
    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 
    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext() C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.2\Microsoft.WindowsAzure.targets 669 5 Azure. 

il file esiste e ha sicuramente gli attributi corretti. La cosa strana è che il file non è nel percorso dato, è in un altro percorso. È come se il processo ValidateServiceFiles fosse confuso e cercasse il file nella cartella sbagliata.

Il riavvio del progetto ruolo di lavoro di Azure e dei progetti cloud non è di aiuto, né il riavvio del computer. A volte possono essere fatti progressi costruendo manualmente ogni progetto cloud nella soluzione. Ma l'errore ritorna sempre, a volte dopo aver ottenuto l'ultimo dal controllo del codice sorgente anche se è essenzialmente casuale.

Un dettagliato log di compilazione rivela questo:

58>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.2\Microsoft.WindowsAzure.targets(3259,5): warning MSB3026: Could not copy "ServiceConfiguration.Local.cscfg" to "bin\Debug\ServiceConfiguration.cscfg". Beginning retry 2 in 1000ms. Could not find file 'ServiceConfiguration.Local.cscfg'. 

Ma questo non aiuta. Il file esiste nella posizione corretta nel progetto (non il percorso indicato nel messaggio di errore)

C'è poco aiuto su Internet su come eseguire il debug del processo ValidateServiceFiles.

risposta

1

Dopo molte ricerche, ho trovato la risposta. Avevo 3 riferimenti per pubblicare file di profilo che non esistevano fisicamente su disco come mostrato dal punto interrogativo blu.

enter image description here

+1

se non si hanno profili di pubblicazione, si potrebbe anche essere necessario fare clic destro il progetto nuvola, fare clic su Pubblica, accedere per Azure, selezionare una sottoscrizione Azure che ha costante cloud storage e account di archiviazione. Quindi ANNULLA la pubblicazione, quindi ricostruisci il progetto cloud. –

+0

E se si esegue questa operazione, potrebbe apparire magicamente un riferimento a un file di pubblicazione mancante. –

+0

Quando questo sembra fallire solo per te, modifica il file .ccproj.user del progetto. Qui puoi vedere un tag ActivePublishProfile che fa riferimento a un file mancante. –

3

La natura arbitraria di questo problema è perché se qualcuno cancella un servizio di cloud sul portale Azure, la build sul computer locale non funziona. Ciò è dovuto al fatto che la funzione ValidateServiceFiles verifica che i file del profilo di pubblicazione contengano riferimenti ai servizi cloud esistenti sul portale di Azure.

Ma il messaggio di errore non indica quale progetto ha il problema, semplicemente elencandoli tutti.

Quindi, fare clic con il tasto destro del mouse su ciascun progetto cloud, quindi fare clic su Pubblica e verificare di non ricevere croci rosse.

enter image description here

Problemi correlati