Этот вопрос отличается от вопросов, размещенных здесь и здесь , хотя названия совпадают.
Проблема возникает периодически. Ошибка всегда возникает, если проект был очищен или строится из новой проверки. Немедленное нажатие на сборку обычно приводит к успешной сборке. Полученная трассировка:
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()
Эта проблема также возникает периодически во время обычных циклов редактирования-сборки-выполнения, и иногда для ее работы в некоторых случаях требуется перезапуск из Visual Studio.
Проблема возникает как в MSBuild, так и в Visual Studio 2010. У меня установлены все последние обновления (WCF RIA Services SP2). Это произошло при использовании инструментов Silverlight 4, и обновление до Silverlight 5 не решило проблему. Проблема также все еще возникает в бета-версии VS 11.
Мне не удалось изменить порядок сборки, как описано здесь (ссылка здесь ), поскольку MSBuild жалуется на циклическую зависимость, а Visual Studio говорит, что я могу не ссылаться на проект не Silverlight из проекта Silverlight. На этой странице я также попытался перейти по этой ссылке и изменил значение по умолчанию ToolsVersion с 2.0 на 4.0 в реестре.
Я определенно использую 32-битную версию MSBuild, так как попытка использовать 64-битную версию завершается неудачно с невозможностью гидратировать модель структуры сущностей. Я не использую ключ / m для параллельного построения.
Первоначально проект представлял собой веб-проект (на котором размещается сайт, на котором находится элемент управления Silverlight, службы RIA и содержит бизнес-логику), и проект Silverlight. Изменение этого на 3 проекта (с библиотекой классов, содержащей логику) не имеет никакого значения.
Следующее, что я планирую попробовать, это выделить проект, в котором размещается служба RIA, отдельно от проекта, в котором размещено приложение Silverlight, но это не идеально для нас (и я даже не уверен, что это будет работать).