Свойство Update order недоступно в целевой платформе и 4.x вызывает ошибку генерации кода

Когда я создавал Controller и View от MVC Controller with views, using Entity Framework, я получил ошибку.

Ошибка:

Произошла ошибка при запуске выбранного генератора кода: «Не удалось загрузить файл или сборку Microsoft.EntityFrameworkCore, версия = 2.0.1.0, Culture = нейтральный, PublicKeyToken = adb9793829ddae60 ‘определение манифеста обнаруженной сборки не соответствует ссылке на сборку

Создание MVC Controller с представлениями с использованием Entity Framework:

Как я могу решить эту проблему?

Я использую Visual Studio Version 15.5.2, а версия Microsoft.AspNetCore.All – 2.0.0

Формулировка задачи:

Доброго времени суток!
Помогите, кто может!!!
Выходит ошибка которую не пойму как исправить (см. вложение)!
Выдаётся сообщение даже не при запуске или компиляции проекта, а
вообще, при попытке сохранить форму или код формы.
Дальше только перезапуск Студии. Но опять при попытке сохранить изменения в форме
приводят к этой ошибке.
Ситуация следующая:
1. Есть класс CPointXX;
2. Есть класс CFigureXX, который содержит private List m_Points;
3. Есть контрол, в котором private CFigure m_Figure = new CFigure();
Всё компилиться без ошибой и предупреждений. Вроде вопросов нет. НО!!!
Когда я этот контрол ставлю на форму, начинается “ворфоломеевская ночь”.
Выходит такое сообщение и компиляция не проходит.

Кто-нибудь!!! Помогите, пожалста!!!

Код к задаче: «. NET 4. x Ошибка при генерации кода для свойства»

<data name="cFigureXX1._Points" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD///тут всякая лабуда бинарная//DJEAgAAAAs=
</value>
  </data>

Полезно ли:

13   голосов , оценка 3.846 из 5

Я слежу за видеоуроком, где мне нужно создать пустое приложение ASP.NET Web с MVC, используя Visual Studio 2015, будучи новичком в мире ASP.NET, я следую шагу шаг.

Я успешно создал свой проект, на следующем шаге добавив представление из существующего Controller, я получил сообщение об ошибке в окне сообщения:

Ошибка:
Произошла ошибка при запуске выбранного генератора кода:
‘Неверный указатель (исключение из HRESULT: 0x80004003 (E_POINTER))’

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

Чтобы прояснить, что я испытал, вот что я сделал шаг за шагом:

Выбрано веб-приложение ASP.NET:

enter image description here

Выбран пустой шаблон с установленным флажком MVC:

enter image description here

Пытался Add View с контроллера:

enter image description here

Некоторые настройки …

enter image description here

Ошибка:

enter image description here

Что вызывает эту проблему и как ее решить?

Обновление:

Оказывается, даже пытаясь добавить представление вручную, я получаю ту же ошибку, добавить представление невозможно!

  1. Jul 30th, 2013, 02:49 PM

    #1

    charles_dawes is offline


    <!–

    Thread Starter

    –>

    Code Generation for property ‘UpdateOrder’ failed’

    Hello,

    “‘Code Generation for property ‘UpdateOrder’ failed. Error Was: ‘Type’Action.Action2DataSet TableAdapters.TableAdapterManager +UpdateOrderOption’ is not available in the target framework.'”

    Can anyone please shed some light on how to resolve this issue?

    Thanks in advance,
    Charles


  2. Jul 30th, 2013, 07:30 PM

    #2

    Re: Code Generation for property ‘UpdateOrder’ failed’

    Have you, by any chance, changed the version of the Framework that you’re targeting since you generated the Data Source? The Data Source Wizard generates various classes to provide access to your data. One of those is the TableAdapterManager, which allows you to save data to multiple tables in one go. Within that, there is an UpdateOrderOption enumeration and an UpdateOrder property, which specify what order to perform insert, update and delete operations. From the looks of that error message, those are only supported on later versions of the Framework and you have changed your target version since they were generated.

    As for solving the issue, you probably have two options:

    1. Change your target Framework version to a later one that does support UpdateOrderOption.
    2. Delete your typed DataSet and re-run the Data Source Wizard to generate a new one. If you use the same names then any existing code that uses the typed DataSet and its associated types should just work.


Во-первых, мне хотелось бы дать вам больше информации, но я немного озадачен этой ошибкой из Microsoft Visual Studio 2015:

При генерации кода произошла ошибка. Изменения, внесенные вами в дизайнере, не были зафиксированы в исходном коде. Рекомендуется закрыть и снова открыть исходный файл. Далее следует сообщение об ошибке: Значение не попадает в ожидаемый диапазон.

Немного дополнительной информации, надеюсь, будет полезной… Впервые столкнулся с этой надоедливой и упорной ошибкой. Сразу после основной работы я сел за свой компьютер и начал счастливо работать над своим небольшим проектом по программированию. Все было хорошо, сообщество VS2015 запустилось как обычно, но КАК ТОЛЬКО Я ПОМЕСТИЛ ОДНУ КНОПКУ (буквально, одну кнопку… перетащил… больше ничего не изменил…) из панели инструментов на мою winform, эта агитирующая ошибка выскакивает кричащая чепуха. Вчера я часами работал над своим маленьким проектом, все отлаживал и тестировал перед тем, как лечь спать, и все работало отлично. Я был счастлив.

Я провел некоторые онлайн-исследования и попробовал все, от ремонта/переустановки до VS2015, а также другие вещи, например, убедиться, что все мои столбцы в моей базе данных SQLSERVER Express установлены Visible = True. Они были. Я попытался закрыть и снова открыть свой проект, VS 2015 и даже перезапустить свой рабочий стол. Эта ужасная ошибка постоянно преследует меня из-за того, что я перетаскиваю кнопку на моей winform, и я надеюсь, что не потеряю свой проект. Резервное сохранение, которое я пытался загрузить, делает то же самое. Я также читал, что это должно было быть исправлено в SP1 для VS? На всякий случай я дважды убедился, что в настоящее время у меня есть последние исправления и загрузки от Microsoft для VS.

Кто-нибудь сталкивался с этой ошибкой?! Если это так, пожалуйста, посоветуйте, как исправить и сохранить мой калькулятор поведенческой статистики! Спасибо Overflowers!

При добавлении/изменении большого количества записей (10³ и выше), производительность Entity Framework оставляет желать лучшего. Причиной этому являются как архитектурные особенности самого фреймворка, так и неоптимальный генерируемый SQL. Забегая вперед — сохранение данных в обход контекста сокращает время выполнения на порядки.

Содержание статьи: 1. Insert/Update стандартными средствами Entity Framework 2. Поиск решения проблемы 3. Интеграция Entity Framework и SqlBulkCopy 4. Продвинутая вставка с использованием MERGE 5. Сравнение производительности 6. Выводы

Insert/Update стандартными средствами Entity Framework

Начнем с Insert. Стандартным способом добавления новых записей в БД является добавление в контекст с последующим сохранением:

Каждый вызов метода Add приводит к дорогостоящему в плане выполнения вызову внутреннего алгоритма DetectChanges. Данный алгоритм сканирует все сущности в контексте и сравнивает текущее значение каждого свойства с исходным значением, хранимым в контексте, обновляет связи между сущностями и т. п. Известным способом поднятия производительности, актуальным до выхода EF 6, является отключение DetectChanges на время добавления сущностей в контекст:

Также рекомендуется не держать в контексте десятки тысяч объектов и сохранять данные блоками, сохраняя контекст и создавая новый каждые N объектов, например, как тут. Наконец, в EF 6 появился оптимизированный метод AddRange, поднимающий производительность до уровня связки Add+AutoDetectChangesEnabled:

К сожалению, перечисленные подходы не решают основной проблемы, а именно: при сохранении данных в БД, на каждую новую запись генерируется отдельный INSERT запрос!

С Update ситуация аналогичная. Следующий код:

приведет к выполнению отдельного SQL-запроса на каждый измененный объект:

В простейших случаях, может помочь EntityFramework. Extended:

Данный код выполнится в обход контекста и сгенерирует 1 SQL-запрос. Более подробно о скорости EF и работе с этой библиотекой в статье за авторством tp7. Очевидно, что решение не универсальное и годится только для записи во все целевые строки одного и того же значения.

Поиск решения проблемы

Испытывая стойкое отвращение к написанию «велосипедов», я в первую очередь поискал best-practices для множественной вставки с помощью EF. Казалось бы, типовая задача — но подходящего решения «из коробки» найти не удалось. В то же время, SQL Server предлагает ряд техник быстрой вставки данных, таких как утилита bcp и класс SqlBulkCopy. О последнем и пойдет речь ниже.

EntityFramework. BulkInsert
На поверку оказавшийся нерабочим. При изучении Issues я наткнулся на дискуссию с участием… небезызвестной Julie Lerman, описывающую проблему, аналогичную моей и оставшуюся без ответа авторов проекта.

EntityFramework. Utilities Живой проект, активное сообщество. Нет поддержки Database First, но обещают добавить.

Интеграция Entity Framework и SqlBulkCopy

Попробуем сделать всё сами. В простейшем случае, вставка данных из коллекции объектов с помощью SqlBulkCopy выглядит следующим образом:

Сама по себе задача реализовать IDataReader на основе коллекции объектов тривиальна, поэтому я ограничусь ссылкой и перейду к описанию способов обработки ошибок при вставке с использованием SqlBulkCopy. По умолчанию, вставка данных производится в своей собственной транзакции. При возникновении исключения выбрасывается SqlException и происходит rollback, т. е. данные в БД не будут записаны вообще. А «родные» сообщения об ошибках данного класса иначе как неинформативными не назовешь. Например, что может содержать SqlException. AdditionalInformation:

К сожалению, SqlBulkCopy зачастую не предоставляет информацию, позволяющую однозначно определить строку/сущность, вызвавшие ошибку. Еще одна неприятная особенность — при попытке вставить дубликат записи по первичному ключу, SqlBulkCopy выбросит исключение и завершит работу, не предоставляя возможности обработать ситуацию и продолжить выполнение.

Маппинг В случае корректно сгенерированных сущностей и БД становятся неактуальными проверки на соответствие типов, или длину поля в таблице, как тут. Полезней разобраться с маппингом колонок, выполняемым через свойство SqlBulkCopy. ColumnMappings:

Что дает возможность вручную провести маппинг между классом-источником и целевой таблицей.

Использование свойства SqlBulkCopy. BatchSize и класса SqlBulkCopyOptions

SqlBulkCopy. BatchSize:

BatchSize Количество строк в каждом пакете. В конце каждого пакета серверу отправляется количество содержащихся в нем строк.

SqlBulkCopyOptions — перечисление:

Имя члена Описание
CheckConstraints Проверять ограничения при вставке данных. По умолчанию ограничения не проверяются.
Default Использовать значения по умолчанию для всех параметров.
FireTriggers Когда задана эта установка, сервер вызывает триггеры вставки для строк, вставляемых в базу данных.
KeepIdentity Сохранять идентификационные значения источника. Когда эта установка не задана, идентификационные значения присваиваются таблицей назначения.
KeepNulls Сохранять значения NULL в таблице назначения независимо от параметров значений по умолчанию. Когда эта установка не задана, значения null, где возможно, заменяются значениями по умолчанию.
TableLock Получать блокировку массового обновления на все время выполнения операции массового копирования данных. Когда эта установка не задана, используется блокировка строк.
UseInternalTransaction Когда эта установка задана, каждая операция массового копирования данных выполняется в транзакции. Если задать эту установку и предоставить конструктору объект SqlTransaction, будет выброшено исключение ArgumentException.

Мы можем опционально включить проверку триггеров и ограничений на стороне БД (по умолчанию выключена). При указании BatchSize и UseInternalTransaction, данные будут отправляться на сервер блоками в отдельных транзакциях. Таким образом, все успешные блоки до первого ошибочного, будут сохранены в БД.

Продвинутая вставка с использованием MERGE

Временная таблица Необходимо создать таблицу в БД, полностью повторяющую схему таблицы для вставки данных. Создавать копии вручную — худший вариант из возможных, так как вся дальнейшая работа по сравнению и синхронизации схем таблиц также ляжет на ваши плечи. Надежнее копировать схему программно и непосредственно перед вставкой. Например, с использованием SQL Server Management Objects (SMO):

Стоит обратить внимание на класс ScriptingOptions, содержащий несколько десятков параметров для тонкой настройки генерируемого SQL. Полученный StringCollection развернем в String. К сожалению, лучшего решения, чем заменить в скрипте имя исходной таблицы на имя временной а-ля String. Replace(«Order», «Order_TEMP»), я не нашел. Буду благодарен за подсказку красивого решения по созданию копии таблицы в пределах одной БД. Выполним готовый скрипт любым удобным способом. Копия таблицы создана!

Другой вариант — использовать Database. ExecuteWithResults.

Копирование данных из временной таблицы в целевую
Осталось выполнить на стороне SQL Server инструкцию MERGE, сравнивающую содержимое временной и целевой таблиц и выполняющую апдейт или вставку (если необходимо). К примеру, для таблицы [Order] код может выглядеть следующим образом:
схема таблицы

Данный SQL-запрос сравнивает записи из временной таблицы [Order_TEMP] с записями из целевой таблицы [Order], и выполняет Update, если найдена запись с аналогичным значением в поле Id, либо Insert, если такой записи не найдено. Выполним код любым удобным способом, и готово! Не забываем очистить/удалить временную таблицу по вкусу.

Сравнение производительности

Среда выполнения: Visual Studio 2013, Entity Framework 6.1.1 (Database First), SQL Server 2012. Для тестирования использовалась таблица [Order] (схема таблицы приведена выше). Были проведены измерения времени выполнения для рассматриваемых в статье подходов к сохранению данных в БД, результаты представлены в ниже (время указано в секундах):

Insert

Способ фиксации изменений в базе данных Количество записей
1000 10000 100000
Add + SaveChanges 7,3 101 6344
Add + (AutoDetectChangesEnabled=false) + SaveChanges 6,5 64 801
Add + отдельный контекст + SaveChanges 8,4 77 953
AddRange + SaveChanges 7,2 64 711
SqlBulkCopy 0,01 0,07 0,42

Ого! Если использовать метод Add для добавления в контекст и SaveChanges для сохранения, сохранение 100000 записей в БД займет почти 2 часа! В то время, как SqlBulkCopy на эту же задачу тратит менее секунды!

Update

Способ фиксации изменений в базе данных Количество записей
1000 10000 100000
SaveChanges 6,2 60 590
SqlBulkCopy + MERGE 0,04 0,2 1,5

Вновь SqlBulkCopy вне конкуренции. Исходный код тестового приложения доступен на GitHub.

Выводы

В случае работы с контекстом, содержащим большое количество объектов (10³ и выше), отказ от инфраструктуры Entity Framework (добавление в контекст + сохранение контекста) и переход на SqlBulkCopy для записи в БД может обеспечить прирост производительности в десятки, а то и сотни раз. Однако, по моему мнению, использовать связку EF+SqlBulkCopy повсеместно — явный признак того, что с архитектурой вашего приложения что-то не так. Рассмотренный в статье подход следует рассматривать как простое средство для ускорения производительности в узких местах уже написанной системы, если менять архитектуру/технологию по каким-либо причинам затруднительно. Любой разработчик, использующий Entity Framework, должен знать сильные и слабые стороны этого инструмента. Успехов!

Предприятие и PostgreSQL на платформе Linux.

Связка сервера 1С:Предприятие и PostgreSQL вторая по популярности среди установок 1С и самое используемое решение на платформе Linux. В отличии внедрений на базе Windows и MSSQL, где трудно сделать так, чтобы не заработало, внедрения на базе Linux таят множество подводных камней для неопытного администратора. Часто бывает так, что вроде бы все сделано правильно, но ошибка следует за ошибкой. Сегодня мы рассмотрим самые типовые из них.

Общая информация

Перед тем, как начинать искать ошибки установки и, вообще, приступать к внедрению серверной версии 1С:Предприятия было бы неплохо освежить представление как это работает:

В небольших внедрениях сервер 1С и сервер СУБД обычно совмещают на одном физическом сервере, что немного сужает круг возможных ошибок. В нашем случае будет рассматриваться ситуация, когда сервера разнесены по разным машинам. В нашей тестовой лаборатории мы развернули следующую схему:

1cv8-pgsql-error-002.jpg

В нашем распоряжении имеются два сервера под управлением Ubuntu 12.04 x64, на одном из них установлен сервер 1С:Предприятие версии 8.3, на другом PostgreSQL 9.04 от Ethersoft, а также клиент под управлением Windows. Напоминаем, что клиент работает только с сервером 1С, который, в свою очередь, формирует необходимые запросы к серверу СУБД. Никаких запросов от клиента к серверу управления базами данных не происходит.

Сервер баз данных не обнаруженВАЖНО: пользователь «postgres» не прошёл проверку подлинности (Ident)

1cv8-pgsql-error-003.jpg

Данная ошибка возникает при разнесении серверов по разным ПК из-за неправильно настроеной проверки подлинности в локальной сети. Для устранения откройте /var/lib/pgsql/data/pg_hba. conf, найдите строку:

и приведите ее к виду:

Сервер баз данных не обнаруженcould not translate host name «NAME» to address: Temporary failure in name resolution

1cv8-pgsql-error-004.jpg

На первый взгляд ошибка понятна: клиент не может разрешить имя сервера СУБД, типичная ошибка для небольших сетей, где отсутствует локальный DNS-сервер. В качестве решения добавляют запись в файл hosts на клиенте, что не дает никакого результата.

А теперь вспоминаем, о чем было сказано несколько раньше. Клиентом сервера СУБД является сервер 1С, но никак не клиентский ПК, следовательно запись нужно добавлять на сервере 1С:Предприятие в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows.

1cv8-pgsql-error-005.jpg

Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.

Ошибка при выполнении операции с информационной базойserver_addr=NAME descr=11001(0x00002AF9): Этот хост неизвестен.

1cv8-pgsql-error-006.jpg

Как и прошлая, эта ошибка связана с неправильным разрешением клиентом имени сервера. На этот раз именно клиентским ПК. В качестве решения добавляем в файл /etc/hosts на платформе Linux или в C:\Windows\System32\drivers\etc\hosts на платформе Windows запись вида:

где указываете адрес и имя вашего сервера 1С:Предприятия. В случае использования локального DNS следует добавить A-запись для сервера 1С.

Ошибка СУБД: DATABASE не пригоден для использования

1cv8-pgsql-error-007.jpg

Гораздо более серьезная ошибка, которая говорит о том, что вы установили несовместимую с 1С:Предприятие версию PostgreSQL или допустили грубые ошибки при установке, например не установили все необходимые зависимости, в частности библиотеку libICU.

Если вы имеете достаточный опыт администрирования Linux систем, то можете попробовать доустановить необходимые библиотеки и заново инициализировать кластер СУБД. В противном случае PostgreSQL лучше переустановить, не забыв удалить содержимое папки /var/lib/pgsql.

Также данная ошибка может возникать при использовании сборок 9.1.x и 9.2.x Postgre@Etersoft, подробности смотрите ниже.

Ошибка СУБД:
ERROR: could not load library «/usr/lib/x86_64-linux-gnu/postgresql/fasttrun. so»

Ошибка СУБД
ERROR: type «mvarchar» does not exist at character 31

1cv8-pgsql-error-009.jpg

Возникает если база данных была создана без помощи системы 1С:Предприятия. Помните, для работы с 1С базы данных следует создавать только с использованием инструментов платформы 1С: через консоль Администрирование серверов 1С Предприятия

1cv8-pgsql-error-010.jpg

или через средство запуска 1С.

1cv8-pgsql-error-011.jpg

Сервер баз данных не обнаруженВАЖНО: пользователь «postgres» не прошёл проверку подлинности (по паролю)

1cv8-pgsql-error-012.jpg

Очень простая ошибка. Неправильно указан пароль суперпользователя СУБД postgres. Вариантов решения два: вспомнить пароль или изменить его. Во втором случае вам нужно будет изменить пароль в свойствах всех существующих информационных баз через оснастку Администрирование серверов 1С Предприятия.

Сервер баз данных не обнаруженFATAL: database «NAME» does not exist

Как исправить ошибку при генерации RSA ключа для ЕГАИС?

Эльба

При генерации RSA ключа (транспортного ключа) в личном кабинете ЕГАИС алкоголь могут возникать ошибки. Разобраться в этих ошибках непросто специалисту, не говоря уже о рядовом пользователе.

Попробуем разобрать типовые ошибки, которые возникают при генерации транспортных RSA ключей ЕГАИС.

Почему возникает ошибка при генерации ключа ЕГАИС?

В основном ошибки при генерации связаны с некорректными настройками компьютера.

Общие рекомендации для успешной генерации транспортного RSA ключа ЕГАИС

Для успешной генерации транспортных ключей на сайте ЕГАИС необходимо соблюсти некоторые требования и рекомендации:

Ошибка при генерации RSA ключа «Выберете устройство чтения смарт карт

Если при генерации ключа ЕГАИС вместо окна запроса пин-кода Вы увидели окно «Выберете устройство чтения смарт карт» или «Обнаружена смарт-карта, но она не может использоваться для текущей операции. » или «Смарт-карта не может выполнить запрошенную операцию либо операция требует другой смарт-карты», значит нужно скорректировать настройки компьютера.

ошибка при генерации rsa ключа егаис вставьте смарт-карту

Такая ошибка возникает из-за того, что настройки вашего компьютера не позволяют сформировать ключи, необходимые для работы УТМ ЕГАИС.

Если Вы используете носитель Рутокен ЭЦП, то вам необходимо сделать следующее:

настройка криптопровайдера рутокен эцп
настройка криптопровайдера рутокен эцп

Пробуйте сгенерировать транспортный ключ ЕГАИС еще раз.

В крайне редких случаях, если генерация ключа не проходит, помогает утилита восстановления работоспособности Рутокен (позволяет правильно определить драйвера носителя в системе).

Все должно получиться!

Ошибка в методе createCertificateRequest Error: CKR_PNI_INCORRECT

В этой ошибке прямым текстом, правда по иностранному, написано, что неверно введен пин-код.

ошибка пин кода

Проверьте правильность ввода пин-кодов. Если на вашем носителе установлен пин-код по умолчанию. и Вы его не помните, то напоминаем:

Если не подходят стандартные пин-коды и пин-код, который установили Вы, то скорее всего носитель заблокировался. Для разблокировки носителя обратитесь к тому, у кого получали ключи, должны помочь.

Ошибка в методе createCertificateRequest Error: CKR_ATTRIBUTE_TYPE_INVALID

Такая ошибка была нами зафиксирована при использовании ключа JaCarta SE.

ошибка при получении RSA ключа

Для исправления ошибки необходимо инициализировать раздел PKI на носителе. Для этого откройте Единый клиент JaCarta желательно включить интерфейс Администратора (снизу слева кнопка «Переключиться в режим администрирования»). Перейдите вверху во вкладку PKI и нажмите «Инициализировать». При запросе пин-кода введите пин-код Администратора 00000000, пин-код Пользователя 11111111.

После успешной инициализации попробуйте снова сгенерировать транспортный ключ.

Также не забывайте о том, что для нормальной работы вашего защищенного носителя для ЕГАИС должен быть установлен свежий драйвер ключа!

Решения самых популярных проблем с ЕГАИС Вы можете найти в нашем Telegram канале «ЕГАИС простыми словами» (@egais_is_easy ).

Источники:

https://habr. com/ru/post/251397/

https://interface31.ru/tech_it/2014/05/tipovye-oshibki-ustanovki-servera-1s-i-postgresql-na-platforme-linux. html

https://avitek. ru/info/articles/kak-ispravit-oshibku-pri-generatsii-rsa-klyucha-dlya-egais/

6 ответов

Я получил это сообщение после создания TableLayoutPanel и перемещения в него некоторых элементов управления. В тот момент я не мог сохранить исходный файл, файл конструктора, наш либо из представления [Дизайн].

Я смог отменить последние изменения, выбрав все в файле Designer.vb, вырезав его в буфер обмена и сохранив. Нет сообщения об ошибке. Затем я вставил все обратно, снова сохранил, и сообщения об ошибке не было. Я проверил [Дизайн], и TableLayoutPanel исчез, но мои элементы управления были там, где они были до их добавления.

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


1

djv
14 Янв 2019 в 21:53

Это может не быть ответом, но может привести к решению для вас или кого-то еще.

Я пришел к этому вопросу, потому что у меня такое же сообщение

В моем случае я создал UserControl с булевым свойством Vertical. Я добавил этот UserControl в Form. Все работало, я мог видеть запрограммированное поведение в дизайнере Form, переключающее свойство Vertical с True на False и наоборот.

Несколько дней спустя я решил, что будет разумнее переименовать свойство Vertical в Show_Vertically. И через несколько минут сообщение было там.

Оказывается, всякий раз, когда я добавляю UserControl в Form, дизайнер автоматически генерирует код внутри своей подпрограммы InitializeComponent() с начальным UserControl1.Vertical = True

Решение состоит в том, чтобы либо изменить инструкцию внутри скрытой подпрограммы InitializeComponent(), либо удалить и снова добавить UserControl в Form.

Из ваших комментариев выше я предполагаю, что ваша ошибка была в вашем SearchInventButton. Я заходил внутрь подпрограммы InitilizeComponent() и искал любое свойство, присвоенное SearchInventButton. Если проблема не в кнопке, это может быть любой нестандартный элемент управления, который был обновлен, как я сделал со своим. (Вы говорили о некоторых столбцах SQL, вы удалили некоторые столбцы или изменили их имя? Возможно, дизайнер присвоил им какой-то формат, и теперь дизайнер не может найти столбец) Но без дальнейших подробностей, это мои 2 цента сообществу.



Dr Yunke
10 Янв 2018 в 12:56

Выполните следующие действия:

1.Создайте новый проект.

2. Скопируйте свой код и весь контроллер в новый проект (шаг 1).

3.Выйти из старого проекта(не будет сохранен) без сохранения.

4. Повторно откройте старый проект (шаг 3).

5. скопируйте весь исходный код и весь контроллер (из шага 2) в свой проект.

6.Сохраните проект.



Mohammad Reza Nadernia
27 Июл 2018 в 13:12

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

Надеюсь, это поможет.



Dean
31 Июл 2018 в 23:10

Откройте страницу с исходным кодом, вырежьте все, затем запустите проект, вы получите сообщение об ошибке, отредактируйте, а затем снова пропустите свой код.

И начните свой проект, у меня сработало



codeman
4 Июн 2019 в 06:13

20 ответов

Лучший ответ

Попробуйте очистить ComponentModelCache, кеш будет восстановлен при следующем запуске VS.

  1. Закройте Visual Studio
  2. Удалите все в этой папке C: \ Users \ [your users name] \ AppData \ Local \ Microsoft \ VisualStudio \ 14.0 \ ComponentModelCache
  3. Перезапустите Visual Studio

14.0 предназначена для Visual Studio 2015. Это будет работать и для других версий.


75

VSB
4 Мар 2020 в 08:45

Я знаю, что это действительно старая тема, но я наткнулся на нее, работая над своей проблемой. Моя была вызвана тем, что я переименовал один из моих классов модели. Несмотря на то, что приложение было создано и работало нормально, когда я попытался добавить новый контроллер, я получил ту же ошибку. Что касается меня, я просто удалил класс, который я переименовал, добавил его обратно, и все было в порядке.



SkinnyPete63
27 Июл 2020 в 10:27

Моя проблема заключалась в типах, используемых в классе модели.

Используя такие типы:

    [NotMapped]
    [Display(Name = "Image")]
    public HttpPostedFileBase ImageUpload { get; set; }


    [NotMapped]
    [Display(Name = "Valid from")]
    public Nullable<DateTime> Valid { get; set; }


    [NotMapped]
    [Display(Name = "Expires")]
    public Nullable<DateTime> Expires { get; set; }

Больше не работает в Генераторе кода. Мне пришлось удалить эти типы и строительные леса без них, а затем добавить их позже.

Глупо, [NotMapped] раньше работал при возведении лесов.

Используйте базовые типы: int, string, byte и т. Д. Без таких типов, как DateTime, List, HttpPostedFileBase и т. Д.



Rusty Nail
19 Мар 2019 в 20:55

Предположим, вы используете datacontext в DLL, ну, это был мой случай, и я не знаю, почему у меня такая же ошибка, как вы описываете, я решаю ее, создав datacontextLocal в бэкэнд-проекте. затем я передаю Dbset в правильный текст данных и удаляю локальный (вы можете оставить его там, если хотите, может быть полезно в будущем

Если вы готовы использовать его в локальном тексте данных, создайте новый, а затем передайте Dbset правильному


1

sGermosen
29 Сен 2017 в 11:59

Я работаю над приложением Core 3, и эта проблема всплывала при добавлении контроллера. Я выяснил, что пакет Microsoft.VisualStudio.Web.CodeGeneration.Design был обновлен с помощью библиотеки DLL framework .net 4.x. Обновление проекта до Core 3.1 устранило проблему.



Hoodlum
18 Дек 2019 в 20:11

В настоящее время я пытаюсь ознакомиться с MVC 4. Некоторое время я занимался разработкой MVC 5, но мне нужно знать MVC 4, чтобы подготовиться к сертификации MCSD. Я следую руководству через Pluralsight, ориентированному на гораздо более старые версии Entity Framework и MVC (видео было выпущено в 2013 году!)

Я столкнулся с той же самой ошибкой 2 часа назад и рвал волосы, пытаясь понять, что не так. К счастью, поскольку проект в этом руководстве не имеет смысла, я смог отступить на протяжении всего процесса, чтобы выяснить, что было причиной ошибки объекта ref not set, и исправить ее.

Я обнаружил ошибку в структуре моего фактического решения.

У меня был настроен веб-проект MVC (‘ Веб-приложение ASP.NET ( .NET Framework ) ‘), но у меня также было 2 библиотеки классов, одна из которых содержит мой доступ к данным. Layer, и один, содержащий настройку домена для моделей, подключенных к моей базе данных.

Оба они принадлежали к типу « Библиотека классов ( .NET Standard ) ».

Проекту MVC это не понравилось.

Как только я создал новые проекты типа « Class Library ( .NET Framework )» , скопировал все файлы из старых библиотек в новые и исправил ссылку для Веб-проект MVC, перестройка и повторная попытка позволили мне правильно сформировать представление.

Это может показаться очевидным исправлением, не помещайте проект .NET Standard вместе с проектом .NET Framework и ожидайте, что он будет работать нормально, но это может помочь другим решить эту проблему!



IfElseTryCatch
31 Авг 2018 в 13:58

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



Leonid
15 Июн 2017 в 14:51

Удаление папки .vs внутри каталога решения сработало для меня.



Adam Hey
16 Дек 2019 в 16:54

Проблема была решена после установки EntityFramework из диспетчера пакетов nuget в мой проект. Пожалуйста, взгляните на свои ссылки на проекты, которые уже были добавлены EntityFramework. Наконец, я могу добавить представление с шаблоном после добавления EntityFramework в ссылку на проект.



Ei Ei Phyu
23 Окт 2019 в 07:38

Ни одно из этих решений не помогло мне. Я только что обновил Visual Studio (обновления были доступны), и вдруг все заработало.



Exel Gamboa
16 Окт 2019 в 02:58

У меня сработал простой перезапуск VS. Я просто закрыл VS и перезапустил.



Sajithd
19 Сен 2019 в 04:12

C:\Users\{WindowsUser}\AppData\Local\Microsoft\VisualStudio\16.0_8183e7d1\ComponentModelCache

Удалите из этой папки VS 2019 ….



Farzad Sepehr
30 Авг 2019 в 17:01

Я столкнулся с аналогичной проблемой, из-за которой генерация кода не работала. Очевидно, у моих метаданных были неизвестные свойства или значения. Я должен признать, что не пробовал здесь все ответы, но кто действительно хочет переустановить vs или загрузить любой из многочисленных используемых пакетов Nuget.

У меня сработала очистка проекта (Build-&gt; Clean Solution) Генератор использовал устаревшие двоичные файлы для создания контроллера и представлений. Очистка решения удалила устаревшие двоичные файлы и вуаля.



user3416682
28 Авг 2018 в 21:56

В ASP.NET Core проверьте, есть ли у вас пакет nuget Microsoft.VisualStudio.Web.CodeGeneration.Tools и соответствует ли он версии вашего проекта.



Oleksandr Kyselov
21 Авг 2018 в 08:45

Попробуйте очистить ComponentModelCache,

1.Закройте Visual Studio

2. удалите все в этой папке C: \ Users \ AppData \ Local \ Microsoft \ VisualStudio \ 14.0 \ ComponentModelCache

3. перезапустите Visual Studio

4. проверьте еще раз

Это также использовало VS2017 для получения решения



Deepak Savani
28 Май 2018 в 20:04

У меня такая же ошибка, но в VS 2017, когда я создаю контроллер. Сделал так же, как написал @ sh.alawneh. Также я пытался делать то, что написал @longday. Но это не сработало. Потом попробовал по-другому:

  • Щелкните правой кнопкой мыши целевую папку.

Там я выбираю новый контроллер и он работает нормально.

Может я кому помогу.


5

Maksym Labutin
23 Дек 2019 в 08:18

У меня была эта проблема с другим сообщением об ошибке «-1 выходит за пределы ..»

Единственное, что у меня сработало, – это удалить проект из решения, щелкнув проект правой кнопкой мыши и выбрав «Удалить». Затем щелкните решение правой кнопкой мыши, «Добавить существующий проект» и выберите проект, чтобы перезагрузить его в решение.

После перезагрузки проекта я снова могу добавлять представления.


13

lucky.expert
29 Авг 2019 в 16:20

Я только что перезапустил свою визуальную студию, и это сработало.



Kurkula
21 Мар 2018 в 18:00

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



Icementhols
18 Май 2019 в 17:04

Щелкните правой кнопкой мыши проект под решением и выберите выгрузить проект,

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

Затем попробуйте добавить свой контроллер


2

MOHAMMAD OMAR
19 Ноя 2019 в 12:36

7 ответов

Лучший ответ

Я обновил Microsoft.AspNetCore.All до version 2.0.3, и теперь он работает правильно.


6

Said Roohullah Allem
3 Янв 2018 в 16:25

Я получил эту же ошибку:

error running selected code generator

Запуск предварительного просмотра 2019 и .NET Core 3 .

Я переместил источники пакетов Nuget в свой список.

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

Я также заметил, что по какой-то причине я решил не устанавливать SSL, но у меня была настройка в моем launchSettings.json .

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



raddevus
1 Май 2019 в 17:29

Имея ту же ошибку, после загрузки VS2019« ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР », а затем открытия проекта ядра 3.0, я смог подготовить содержимое без ошибок вообще ..


-1

Gabor Nagy
7 Авг 2019 в 12:59

Обновите ваши пакеты, или это может произойти, если у вас более старый SDK. Загрузите новый .NET Core SDK и среду выполнения с веб-сайта www.microsoft.com/net.



juFo
16 Янв 2019 в 09:15

Для меня ни одно из вышеперечисленных решений не сработало. Мне пришлось добавить пакеты Microsoft.EntityFrameworkCore и Microsoft.EntityFrameworkCore.Design, хотя в мой проект был добавлен пакет Microsoft.AspNetCore.All.

Отредактируйте проект в VS 2007 и добавьте эти строки

<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.3" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.3" />


2

Crennotech
29 Июл 2019 в 05:12

У меня была похожая проблема, но моя была связана с версией Visual Studio.

Я пошел в установщик Visual Studio, и он уведомил меня о необходимости перезагрузить компьютер



Neil Busse
5 Янв 2019 в 03:14

Перейдите в диспетчер NugetPackage и обновите пакет Microsoft.AspNetCore.All.


5

Sajithd
28 Мар 2018 в 12:21

Читайте также:  - General Groupware/Mail server discussion

Добавить комментарий

Ваш адрес email не будет опубликован.