To pytanie różni się od pytań opublikowanych pod here i here, mimo że tytuły są takie same.Błąd MSB4018: Zadanie "CreateRiaClientFilesTask" nieoczekiwanie zakończyło się niepowodzeniem - próba uzyskania dostępu do rozładowanego AppDomain
Problem pojawia się sporadycznie. Błąd zawsze występuje, jeśli projekt został oczyszczony lub jest budowany ze świeżego kasy. Ponowne przesuwanie kompilacji natychmiast powoduje zazwyczaj powodzenie kompilacji. StackTrace pojawia się:
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()
Problem występuje także sporadycznie podczas regularnych cyklach edit-build-wykonać, a czasami restart z Visual Studio jest wymagane, aby pracować przy takich okazjach.
Problem występuje zarówno w programie MSBuild, jak i Visual Studio 2010. Mam zainstalowane wszystkie najnowsze aktualizacje (WCF RIA Services SP2). Wystąpił on podczas korzystania z narzędzi Silverlight 4, a uaktualnienie do Silverlight 5 nie rozwiązało problemu. Problem nadal występuje także w wersji beta VS 11.
Nie byłem w stanie zmienić kolejność kompilacji jak opisano here (odwołanie od here) jako MSBuild skarży się na okrągłym uzależnienia i Visual Studio mówi, że nie może odwoływać się do projektu innego niż Silverlight z projektu Silverlight. Z tej strony próbowałem również podążać za this link i zmienić domyślną wersję ToolsVersion z wersji 2.0 na 4.0 w rejestrze.
Zdecydowanie używam 32-bitowej wersji MSBuild, ponieważ próba użycia wersji 64-bitowej kończy się niepowodzeniem i nie działa Hydratacja modelu struktury encji. Nie używam przełącznika/m do budowania go równolegle.
Projekt był początkowo projektem internetowym (który obsługuje witrynę, na której kontroler Silverlight wciąż działa, usługi RIA i zawiera logikę biznesową) oraz projektem Silverlight. Zmiana tego na 3 projekty (z biblioteką klas zawierającą logikę) nie robi żadnej różnicy.
Następną rzeczą, którą planuję spróbować, jest to, że projekt hostujący usługę RIA jest oddzielny od tego, który obsługuje aplikację Silverlight, ale to nie jest dla nas idealne (i nie jestem nawet pewien, czy to zadziała).
Dla przypomnienia: ściśle powiązane pytanie to http://stackoverflow.com/q/4450340/223837. –