Ошибка EntityDeploySplit-Microsoft.Данные.Сущность.Строить.Задачи.dll отсутствует

после чистого переформатирования Windows и установки Visual Studio 2013 при попытке создать проект с файлами edmx базы данных first Entity Framework возникает следующая ошибка:

не удалось загрузить задачу "EntityDeploySplit" из сборки C:Program Файлы (x86)MSBuild12.0binMicrosoft.Данные.Сущность.Строить.Задачи.файл DLL. Мог не удалось загрузить файл или файл сборки:///C: программафайлы (x86)MSBuild12.0binMicrosoft.Данные.Сущность.Строить.Задачи.dll или один его зависимости. Система не может найти указанный файл. Подтвердите, что декларация верна, что ассамблея и все его зависимости, и что задача содержит открытый класс, реализующий Microsoft.Строить.Рамки.ITask.

есть ли способ установить это отдельно? С чем эта сборка включена по умолчанию?

обновление: это также проявляется при поиске задачи EntityClean. Я склоняюсь думать, что он сначала проверяет bin, так как другой разработчик, который его запускал, попытался очистить / перестроить, а затем это начало появляться.

4 ответов


я столкнулся с этой проблемой и смог ее исправить, как я описал ниже. Ваши пути и переменные могут быть разными.

я обнаружил, что когда мой проект строит он указывает на этот файл:

C:\Program Files (x86)\MSBuild.0\Bin\Microsoft.Data.Entity.targets

этот целевой файл кажется просто заполнителем. В этом файле есть элемент Import, который указывает на $(MSBuildFrameworkToolsPath)\Microsoft.Data.Entity.targets, который работает целевой файл, расположенный по этому пути. Я искал реестр и нашел, что MSBuildFrameworkToolsPath является записью реестра со значением C:\Windows\Microsoft.NET\Framework\v4.0.30319\

я пошел в целевой файл, на который была ссылка, и поиск UsingTask элемент, указанный в моем исключении. Внутри UsingTask элемента AssemblyFile атрибут был указан на $(MSBuildBinPath)\Microsoft.Data.Entity.Build.Tasks.dll. Я искал в реестре и обнаружил, что запись реестра MSBuildBinPath была указана в c:\Windows\Microsoft.NET\Framework\v3.5\

я не уверен, почему это было указано на это, возможно, платформа или установка Visual Studio не очистили его. Наконец,я изменил все мои UsingTask элементы' AssemblyFile атрибуты:

$(MSBuildFrameworkToolsPath)\Microsoft.Data.Entity.Build.Tasks.dll

я использовал ту же переменную, что и в целевом файле MSBuild Bin.

надеюсь, что это помогает.


Я нашел принятый ответ немного запутанным, ниже приведены шаги, которые сработали для меня.

открыть C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Data.Entity.targets в блокноте.

измените элементы UsingTask на:

  <UsingTask TaskName="EntityDeploySplit"
             AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />

  <UsingTask TaskName="EntityDeploy"
             AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />

  <UsingTask TaskName="EntityDeploySetLogicalNames"
             AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />

  <UsingTask TaskName="EntityClean"
             AssemblyFile="Microsoft.Data.Entity.Build.Tasks.dll" />


в моем случае, я случайно создал две копии одного из моих .файлы edmx, один в подпапке, где я этого не заметил. Как только я удалил лишнюю, все было в порядке.