Ошибка 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, один в подпапке, где я этого не заметил. Как только я удалил лишнюю, все было в порядке.