Ошибка MSB4018: Непредвиденный сбой задачи «CreateRiaClientFilesTask» — попытка доступа к незагруженному домену приложения

Этот вопрос отличается от вопросов, размещенных здесь и здесь , хотя названия одинаковы.

Проблема возникает периодически. Ошибка всегда возникает, если проект был очищен или собирается из свежей кассы. Немедленное повторное нажатие сборки обычно приводит к успешной сборке. Трассировка стека, которую я получаю:

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.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-разрядную версию завершается неудачей с невозможностью Hydrate модели Entity Framework. Я также не использую переключатель /m для параллельной сборки.

Первоначально проект представлял собой веб-проект (который содержит сайт, на котором находится элемент управления Silverlight, сервисы RIA и содержит бизнес-логику) и проект Silverlight. Изменение этого на 3 проекта (с библиотекой классов, содержащей логику) не имеет никакого значения.

Следующее, что я планирую попробовать, — это отделить проект, в котором размещается служба RIA, от проекта, в котором размещено приложение Silverlight, но это не идеально для нас (и я даже не уверен, что это сработает).

5
задан Community 23 May 2017 в 11:57
поделиться