Подтвердить что ты не робот

Как я могу разрешить эту ошибку: Загрузка файла include "EF.Utility.CS.ttinclude" возвращает пустую или пустую строку

Как я могу устранить эти ошибки:

  • Загрузка файла include 'EF.Utility.CS.ttinclude' возвращает пустую или пустую строку.
  • Значение не входит в ожидаемый диапазон.

Используемые инструменты: VS 2012, Entity Framework 5.0.0, T4MVCExtensions 3.5.0,.NET Framework 4.5

Я использую шаблоны EF и T4 в проекте в рамках большого MVC-решения без инцидентов. Теперь, когда я нажимаю правой кнопкой мыши на диаграмме edmx, EF отвечает сообщением: Значение не попадает в ожидаемый диапазон. Когда я компилирую проект EF, он отвечает на эти сообщения:

  • Загрузка включенного файла 'EF.Utility.CS.ttinclude' возвращает пустую или пустую строку. Преобразование не будет выполнено. C:\Projects\NSAForms\NSAForms\NSAFormsEDM\NSAFormsEntities.tt
  • Не удалось разрешить включить текст для файла: C:\Projects\NSAForms\NSAForms\NSAFormsEDM\EF.Utility.CS.ttinclude C:\Projects\NSAForms\NSAForms\NSAFormsEDM\NSAFormsEntities.tt

Каждая таблица в базе данных имеет первичный ключ. Меня поразило, как внезапно появилась эта проблема. У кого-нибудь есть предложения по устранению этой проблемы?

Спасибо заранее,

Арнольд

4b9b3361

Ответ 1

В VS 2012 файл EF.Utility.CS.ttinclude будет установлен только в том случае, если выбран компонент Microsoft Web Developer Tools или Microsoft SQL Server Data Tools.

Ответ 2

У меня была очень похожая проблема, и я пробовал VS2012 и VS2013.

После переустановки инструментов Entity Framework 6 для Visual Studio 2012 http://www.microsoft.com/en-us/download/confirmation.aspx?id=40762 все вернулось к нормальной жизни.

Ответ 4

Для VS2017 я добавил EF6.Utility.CS.ttinclude в папку модели. Это решило мою проблему с MySql и EF.

Файл может быть найден: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Инструменты Entity Framework\Templates\Includes\EF6.Utility.CS.ttinclude

ОБНОВЛЕНИЕ Чтобы избежать вышеуказанного, полностью удалите сущности, а затем добавьте обратно в исправленную проблему.

Ответ 5

Visual Studio 2017

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

  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
  <connectionStrings>

Ответ 6

Возникла эта проблема с недавней установкой VS2017 Enterprise после того, как эта функция работала в Professional.
Решением для меня было:

  1. Откройте программу установки Visual Studio и "Изменить" мою установку Enterprise.
  2. Выберите "ASP.NET и веб-разработка" в разделе "Web & Cloud".
  3. Нажмите "Изменить" в правом нижнем углу enter image description here

Вероятно, стоит отметить, что у меня уже был установлен EF6, и мне не нужно было переустанавливать его, чтобы заставить его работать.

После выполнения этих шагов и запуска Visual Studio ошибка исчезла, и я смог успешно сгенерировать свои классы. Надеюсь это поможет!

Ответ 7

Все вышеперечисленные решения не спомогли мне, поэтому я создал новый проект, чтобы проверить, сохраняется ли проблема, но ошибка не возникла во вновь созданном проекте. Затем я сравнил проект со старой резервной копией, чтобы проверить последние внесенные изменения и обнаружил проблему. Недавно я обновил пакет Clarius.TransformOnBuild до более новой версии, после понижения пакета ошибка исчезла.

Ответ 8

Эта проблема, кажется, вызвана странным именем папки (с %20 вместо пробелов). Я только что сделал соединение каталога с той же папкой с пробелами вместо %20 и это решило проблему.

Вот команда PowerShell, которую я использовал для соединения:

cd "c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\"
mklink /j "Entity Framework Tools" "Entity%20Framework%20Tools"
Junction created for Entity Framework Tools <<===>> Entity%20Framework%20Tools

Затем вы можете использовать ls look для содержимого каталога, и вы должны увидеть эти две строки (отредактированные для краткости):

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
...
d----l        2/27/2019   9:57 AM                Entity Framework Tools
d-----        2/26/2019  12:24 PM                Entity%20Framework%20Tools
...

В режиме " l указывает, что это "ссылка" (aka junction), а " d указывает на каталог. Сделав соединение вместо переименования папки, вы можете быть уверены, что оба имени каталога будут работать всегда.