Ошибка: пространство имен не может напрямую содержать элементы, такие как поля EntityFramework.dll', не может быть найден
введите описание изображения здесь я хочу создать модель: add > class > ado.net entity
, для моего первого проекта базы данных, а также хочу создать операцию CRUD с помощью asp.netscaffolding, но не удалось создать модель с необходимым кодом. и, таким образом, мне не удалось создать каркас. в моем файле модели AllahHelp.Context.cs
, нет кода, только текст "ErrorGeneratingOutput".
Ошибка 1:
Пространство имен не может напрямую содержать элементы, такие как поля или методы F:\project\WebApplication8\WebApplication8\Models\AllahHelp.Context.cs 1 1 WebApplication8
Ошибка 2:
Преобразование компиляции: файл метаданных 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools..\IDE\EntityFramework.dll' не найден F:\project\WebApplication8\WebApplication8\Models\AllahHelp.tt 1 1 WebApplication8
2 ответа
Если при преобразовании файлов.tt в файлы классов возникает ошибка, в файлах классов будет просто "ErrorGeneratingOutput" в исходном файле, что приводит к ошибке "Пространство имен не может напрямую содержать элементы, такие как поля", но на самом деле ничего не имеет делать с этим.
Ваша настоящая ошибка звучит так, как будто вы пропустили ссылку на EntityFramework.dll
, Щелкните правой кнопкой мыши по проекту, выберите "Управление пакетами NuGet..." и найдите и установите EntityFramework в свой проект.
В некоторых ситуациях я также сталкивался с проблемой, когда преобразование происходит до того, как файлы скопированы, dll-файлы, на которые ссылаются, никогда не копируются, поскольку возникает ошибка, и процесс останавливается. В этом случае вам потребуется временно удалить модель из проекта, успешно скомпилировать проект, а затем добавить модель обратно.
В соответствии с этим похожим вопросом это также может быть связано с вашим путем установки. Если это ваша проблема, попробуйте найти, где находится dll, и исправьте переменную среды VS120COMNTOOLS
(Панель управления -> Система -> Расширенные настройки системы -> Переменные среды -> Системные переменные)
(Будьте осторожны при изменении системных переменных.)
Я получал эту ошибку при попытке создать проект с использованием шаблонов .tt. Я исправил проблему, проверив везде, где я использовал внедрение кода C#, и убедившись, что я закрыл каждый раздел кода C#, включив
#>
.
Пример:
Проблемный код:
{
"find": "__LOCATION__",
"replaceWith": "<#= deployment.Location"
},
Фиксированный код:
{
"find": "__LOCATION__",
"replaceWith": "<#= deployment.Location #>"
},