В экземпляре объекта не задана ссылка на объект visual studio

Обновлено: 05.07.2024

Эта служба была установлена ​​из приложения Windows, которое закрывается сразу после запуска Сервиса.

Внутри службы у меня есть процедура "Защищенный переопределяет Sub OnCustomCommand", эта процедура работает нормально, пока указатель не придет к инструкции, которую я вам даю ниже:

Я сделал некоторые изменения в соответствии с уведомлениями, которые я прочитал, и теперь GetKeyValue не возвратил мне никаких ошибок. Но ни один из них не дал мне никакой ценности.

Функция Get выглядит следующим образом:

спросил(а) 2011-03-20T16:23:00+03:00 10 лет, 8 месяцев назад

Ваш код, очевидно, не сбой внутри оператора try-catch внутри GetKeyValue(), потому что тогда из журнала вы увидите, что ошибка исходила из самой этой функции.

Таким образом, ваш код должен быть либо неисправен в случае "False", либо сформировать вызов StartLogFile() в блоке catch "True".

Ложный случай

Обратите внимание, что в вашем операторе журнала есть RegKey.Name , а RegKey - это, очевидно, null , потому что вы его никогда не устанавливали (он установлен только в случае True). Я думаю, что это ваша ошибка.

True Catch Block

Блок catch в вашем "истинном" случае не имеет доступа к какому-либо свойству любой переменной, которая может быть нулевой. Тем не менее, StartLogFile может сам себя терпеть при таком выполнении внутри.

Сжатые операторы

У меня такое чувство, что вы заменили два вызова StartLogFile() (False-case должен быть в блоке catch True файла, а тот, который находится в блоке catch True файла, должен быть в False-случае).

Избегайте регистрации ошибок, которые сами могут терпеть неудачу

Кроме того, даже в блоке True case вы не можете предположить, что RegKey не является нулевым, потому что Registry.CurrentUser.OpenSubKey может завершиться неудачно, и вы не поймете, где ошибка, потому что ваш блок try catch поймал ошибку, и это вместо этого выполняется ошибка в вашей инструкции регистрации ошибок! Этот тип ошибок может быть очень расстроен, особенно в больших системах. Мораль: никогда не делайте код регистрации ошибок слишком сложным - если они терпят неудачу, они затрудняют выяснение произошедшего.

Всегда включать трассировку стека в журнал ошибок

Кроме того, есть ли причина, по которой вы не включаете трассировку стека в журнал ошибок? После того, как трассировка стека сразу же укажет на строку кода проблемы.

Пожалуйста, помогите, а также объясните, что происходит. Спасибо.

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

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

В этом случае, где вы инициализируете временную шкалу? Если ваш код выглядит примерно так:

Хорошо, я смотрел документацию twiteroo, которая немного скудна, и я думаю, что вам определенно нужно создать экземпляр Timeline для передачи в GetTimeline (который возвращает коллекции пользователей, не очень хорошо названных IMHO). Я не могу понять, как запустить экземпляр Timeline.

Хорошо, это не Timeline, который имеет значение null (это Enum!), Поэтому, как говорит bthb, это может быть только ядро, возможно, имя пользователя или пароль неправильные, или он не может подключиться к твиттеру?

Это может быть ядро, имя пользователя, пароль или Timeline.Friends, невозможно узнать, какие из них, по информации, которую вы нам предоставили.

Если бы я был на вашем месте, я бы поставил точку останова в строке с ошибкой, затем пристегнул бы часы к Timeline.Friends и проверил бы, что он не равен нулю, если нет, то поставьте часы на core.GetTimeline (Timeline.Friends) и посмотрите, если это так. возвращает null.

Это должно дать вам толчок в правильном направлении, вам, вероятно, придется прочитать документацию по твиттеру API, который вы используете, чтобы узнать, почему любой из них возвращает null.

Как насчет проверки вашего кода, например:

Если это выполняется без исключений, один из объектов, вероятно, был нулевым.

Во-первых, ссылку на объект можно рассматривать как переменную в функции или классе. Этот термин может также относиться к параметрам функции, которые ожидают конкретной ссылки на объект. Первоначально значение переменной равно NULL, пока не будет установлено значение с помощью оператора '='. Часто у вас будет объявление переменной и операция '=' в одном и том же операторе.

Термин экземпляр объекта относится к объекту, который был создан с использованием синтаксиса new . Когда вы вызываете new для инициализации объекта, неиспользуемая область памяти выделяется для хранения копии объекта до завершения программы или до тех пор, пока объект не выйдет из области видимости и не будет освобожден сборщиком мусора. Во время создания свойства объекта определяются методом конструктора, вызываемым для создания объекта.

Рассмотрим этот код:

В этом примере my_int - это ссылка на объект на создаваемый экземпляр объекта Integer .

Если вы декомпилируете dll, вы увидите, что GetTimeline (Enum) принимает аргумент Enumeration.

Окно ошибки ссылки на объект

Что означает «Ссылка на объект не указывает на экземпляр объекта»?

Как мы уже поясняли выше, возникновение данной ошибки связано с так называемой «нулевой ссылкой». Когда значений какого-либо из объектов кода не задано, и программа вместо данного значения видит нуль.

Ошибка «нулевой ссылки» составляют значимую часть в числе всех ошибок приложений. Обычно это простая проблема, вызванная отсутствием дополнительной логики в программе, предполагающей наличие допустимых значений для всех имеющихся в ней объектов.

Вы также можете столкнуться с исключением нулевой ссылки в ситуации, когда любой из типов объектов является нулём. Например, в приведенном ниже коде объект SqlCommand никогда не инициализируется. Отсутствие SQL-запроса может стать серьезной проблемой для вашего приложения. Иногда нулевую строку можно просто проигнорировать, и двигаться дальше. В других же случаях, как и в случае с SqlCommand, это может стать фатальной ошибкой, игнорировать которую не представляется возможным.

Объект SqlCommand

Использование условного оператора Null для избежания NullReferenceExceptions

Пример кода

Объединение нулей во избежание NullReferenceExceptions

Пример исключения

Простые примеры нулевых значений, вызывающих проблемы

Наиболее распространёнными причинами рассматриваемой ошибки являются неверные настройки, вызовы базы данных, а также вызовы типа API, не возвращающие ожидаемые значения.

Рассматриваемая проблема может быть решена добавлением логики и кода, позволяющих гарантировать, что объекты не являются нулями. Советы, позволяющие избавиться от ошибки сводятся примерно к следующему:

  • Инициализируйте переменные с допустимыми значениями;
  • Если переменная может быть нулевой, то проверьте код на нули, и обработайте его соответствующим образом;
  • Используйте оператор ? с методами, когда возможно. stringvar?.ToUpper();
  • Применяйте инструменты уровня «Resharper» для выявления потенциальных нулевых ссылок.

Заключение

ссылка на объект не указывает на экземпляр объекта

Enter image description here

может это поможет:

  1. удалить содержимое следующих папок:
    1. C:\Users\\AppData\Local\Microsoft\VisualStudio
    2. C:\Users\\AppData\Local\Microsoft\VSCommon
    1. [x64] C:\Program файлы (x86)\Microsoft Visual Studio 14.0\Common7\IDE
    2. [x86] C:\Program файлы\Microsoft Visual Studio 14.0\Common7\IDE

    и работать devenv /resetuserdata .

    ожидайте, что все ваши пользовательские параметры, такие как макет Visual Studio, связанная учетная запись Microsoft или начальная страница, исчезнут.

    1. Я закончил процесс в Диспетчере задач Windows: VsHub.exe .
    2. Перезапустить Visual Studio.

    после этого все работает снова!

    я решил это делать

    Я предполагаю, что в x86 он работает по этому пути:

    в надежде, что это может сузить круг/помочь кому-то, я сделал исследовательский подход. Для меня я изначально переместил папку в C:\Users\\AppData\Local\Microsoft\VisualStudio в Мои Документы и разрешил Visual Studio повторно создать его, повторно запустив его. При этом ошибки. Поэтому я перемещал все назад, один за другим, и перезапускал Visual Studio каждый раз, пока не обнаружил виновных. Эти папки были в порядке, чтобы вернуться в:

    • 1033 (перезаписал автоматически сгенерированная копия со старой)
    • Designer (был в моей старой копии, не был изначально воссоздан, когда я повторно запустил VS, скопировал его обратно)
    • расширения (перезаписать автоматически сгенерированную копию со старым)
    • ImageLibrary (перезаписать автоматически сгенерированную копию со старым)
    • уведомления (перезаписать автоматически сгенерированную копию со старым)
    • STemplate (был в моей старой копии, не был изначально создан, когда я повторно запустил VS, скопировал его обратно)
    • VTC (был в моей старой копии, изначально не воссозданной при повторном запуске VS, скопировал ее обратно)

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

    • ApplicationPrivateSettings (был в моей старой копии, не был первоначально создан при повторном запуске VS)
    • ApplicationPrivateSettings.lock (перезаписать автоматически сгенерированную копию со старой)
    • vspdmc.lock (перезаписать автоматически сгенерированную копию старый)

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

    Это вызвало проблемы-удалите эти файлы и повторно запустите VS, чтобы позволить ему воссоздайте их:

    Это ошибки из последних .Файлы NETFramework (которые я не получаю, если не добавляю их обратно):

    рекомендуется попробовать любое или все из следующих действий:

    Перезапустите Visual Studio

    попробовать Запуск От Имени Администратора (щелкните правой кнопкой мыши Visual Studio и выберите "Запуск от имени администратора")

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

    попробуйте открыть другое решение / проект

    Если проблемы сохраняются, вы можете попробовать следующие варианты:

    перезагрузить локальный компьютер

    попытка сброса Visual Studio в По Умолчанию (это можно сделать из параметров в Visual Studio)

    попытка восстановить установку Visual Studio

    1. удалено из панели управления "Microsoft ASP.NET 5 rc1 Update1". После этого вы больше не будете открывать ASP.NET проекты MVC
    2. затем я изменил установку "Microsoft Visual Studio Professional 2015", нажал" изменить "и выбрал"Microsoft Web Developer Tools"

    больше не следуйте уведомлению об обновлении в Visual Studio 2015.

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

    мое решение было:

    меню инструментырасширения и обновления

    это исправило это для меня.

    в моем случае (не обязательно быть решением для вас, но это может быть полезно для кого-то), решение было:

    меню инструментырасширения и обновления

    выберите Online вкладка с правой панели

    в моем случае это отсутствовало на моем компьютере из-за множество операций восстановления для Visual Studio.

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

    мое решение было:

    это исправило это для меня.

    к сожалению, я побежал еще одно исключение:

    "исключение было брошено целью вызова"

    Я инвалид FIPS настройки DWORD значение равно нулю.

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

    Я боролся с этим в течение всех выходных. Но это довольно легко сделать. То, что я сделал, это нажать на ремонт, а не удалить. После ремонта, я нажал на перезагрузку сразу. После этого, все работает отлично. Вы должны попробовать это, может быть, это может сработать и для вас.

    перезапуск Visual Studio сделал это за меня. При следующем запуске он отобразил " сканирование новых и обновленных компонентов MEF . - а потом все прошло нормально.

    похоже, это как-то связано с Windows update, хотя у меня нет доказательств.

    удалить папки bin и obj во всех проектах этого решения.

    Похоже, что в этих папках были старые файлы, созданные какой-то старой версией visual studio, которые несовместимы с новой версией visual studio.

    проблема: Мой VS 2015 выбрасывал ошибку после установки SSDT. Всякий раз, когда я нажимал на Tools >> Extensions и Update, он выдавал ошибку "ССЫЛКА на объект не установлена на экземпляр объекта". Когда я попытался открыть решение, он бросил какой-то поставщик неправильно установлен.

    вошел в %LOCALAPPDATA% / Local\Microsoft\VisualStudio\14.0\devenv.исполняемый.config и искал " систему.Коллекции.Неизменяемый " и изменить newVersion с 1.1.36.0 на 1.1.37.0

    У меня есть проект внутри решения VS, который корректно загружается в VS2015, но кажется, что он поврежден в VS2017 (RC2).

    enter image description here

    Я думал, что это может быть из-за того, что VS2017 как-то автоматически изменил файл .csproj для своих нужд, но после сравнения его с версией решения VS2015 я обнаружил, что они ничем не отличаются.

    Для меня на Visual Studio 2017 ни одно из предложений не работало. То, что работало, закрыло все экземпляры Visual Studio и уничтожило папку .vs в корне решения.

    Я удалил строку из неудавшегося проекта .csproj после десятков случайных тестов.

    Теперь он правильно загружается и, кажется, работает хорошо.

    Btw, честно говоря, я понятия не имею, что означает эта строка, и по достоинству оценят того, кто может объяснить, почему избавление от этой строки устраняет проблему, и в основном, почему эта строка необходима.

    Запуск Visual Studio в качестве администратора исправил проблему для меня.

    Ссылка на объект не установлена ​​в экземпляр объекта

    В моем случае исправление заключалось в установке ожидаемой версии SDK Windows 10, как указано TargetPlatformVersion в файле .csproj .

    В моем случае это произошло потому, что я использовал IIS (не IIS Express) и не запускал Visual Studio 2017 в качестве администратора.

    Я получил ту же ошибку при работе с c++. Я сделал VS удалить, а затем установить. Тогда все прошло хорошо. С уважением.

    Это сработало для меня.

    1. Аутентифицировать пул приложений, используя данные вашей учетной записи
    2. Recycle App pool
    3. Остановись и начни
    4. Запустите команду CMD iisreset от имени администратора.

    Я начал получать эту проблему после обновления до Windows 10. Я справился с ней, просто восстановив Visual Studio. Кажется, эта проблема появляется снова после установки обновлений Windows от моей компании.

    Читайте также: