Questa domanda è diversa dalle domande pubblicate here e here anche se i titoli sono gli stessi.Errore MSB4018: l'attività "CreateRiaClientFilesTask" non è riuscita in modo imprevisto - Si è tentato di accedere a un AppDomain scaricato
Il problema si presenta a intermittenza. L'errore si verifica sempre se il progetto è stato pulito o è in fase di costruzione da una nuova verifica. Spingendo di nuovo immediatamente la build, di solito si ottiene la generazione successiva. Lo stacktrace che ottengo è:
error MSB4018: The "CreateRiaClientFilesTask" task failed unexpectedly.
System.AppDomainUnloadedException: Attempted to access an unloaded AppDomain.
at System.IDisposable.Dispose()
at Microsoft.ServiceModel.DomainServices.Tools.CreateRiaClientFilesTask.GenerateClientProxies()
at Microsoft.ServiceModel.DomainServices.Tools.CreateRiaClientFilesTask.ExecuteInternal()
at Microsoft.ServiceModel.DomainServices.Tools.RiaClientFilesTask.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__1c.MoveNext()
Il problema si verifica anche in modo intermittente durante il normale ciclo di modifica-build-esecuzione, e, a volte è necessario un riavvio da Visual Studio per farlo funzionare in queste occasioni.
Il problema si verifica sia in MSBuild e Visual Studio 2010. Ho tutti gli ultimi aggiornamenti installati (WCF RIA Services SP2). Si è verificato durante l'utilizzo degli strumenti di Silverlight 4 e l'aggiornamento a Silverlight 5 non ha risolto il problema. Il problema si verifica anche ancora in beta di VS 11.
non sono stato in grado di modificare l'ordine del costruire come descritto here (riferimento da here) come MSBuild si lamenta di una dipendenza circolare e Visual Studio dice che io non può fare riferimento a un progetto non Silverlight da uno Silverlight. Da quella pagina ho anche provato a seguire this link e ho cambiato la versione ToolsVersion predefinita da 2.0 a 4.0 nel registro.
Sto sicuramente utilizzando la versione a 32 bit di MSBuild, come cercando di utilizzare la versione a 64 bit non riesce di non aver per idratare il modello Entity Framework. Non sto usando l'opzione/m per costruirlo in parallelo.
Il progetto è stato inizialmente un progetto web (che ospita il sito che il controllo di Silverlight vive, servizi RIA, e contiene la logica di business) e un progetto di Silverlight. La modifica di questo in 3 progetti (con una libreria di classi contenente la logica) non fa alcuna differenza.
La prossima cosa che sto pensando di provare è avere il progetto che ospita il servizio RIA separato da quello che ospita l'app Silverlight, ma non è l'ideale per noi (e non sono nemmeno sicuro che funzionerà).
Per la cronaca: una domanda strettamente correlata è http://stackoverflow.com/q/4450340/223837. –