Чтобы выполнить отладку этого проекта добавьте проект исполняемого файла в это решение

Обновлено: 07.07.2024

Одним из способов отладки проекта библиотеки DLL является указание вызывающего приложения в свойствах проекта библиотеки DLL. Затем можно запускать отладку из самого проекта DLL. Чтобы этот метод работал, приложение должно вызвать одну и ту же библиотеку DLL в том расположении, которое вы настроили. Если приложение находит и загружает другую версию библиотеки DLL, эта версия не будет содержать точки останова. Другие методы отладки библиотек DLL см. в разделе Отладка проектов DLL.

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

Собственные и управляемые DLL-проекты имеют разные параметры для указания вызывающих приложений.

Указание вызывающего приложения в собственном проекте DLL

Выберите проект C++ DLL в обозревателе решений. Щелкните значок Свойства, нажмите сочетание клавиш ALT+ВВОД или щелкните проект правой кнопкой мыши и выберите элемент Свойства.

Выберите Свойства конфигурации > Отладка.

В списке Запускаемый отладчик выберите Локальный отладчик Windows или Удаленный отладчик Windows.

В поле Команда или Удаленная команда добавьте полный путь и имя файла вызывающего приложения, например EXE-файл.

Окно свойств отладки

Добавьте необходимые аргументы программы в поле Аргументы команды.

Указание вызывающего приложения в управляемом проекте DLL

Убедитесь, что в поле Настройка в верхней части окна задано значение Отладка.

В разделе Запустить действие

Добавьте необходимые аргументы командной строки в поле Аргументы командной строки или Аргументы приложения.

Используйте Файл > Сохранить выбранные элементы или CTRL+S, чтобы сохранить изменения.

Отладка из проекта DLL

Задайте точки останова в проекте DLL.

Щелкните проект DLL правой кнопкой мыши и выберите Назначить запускаемым проектом.

Убедитесь, что в поле Конфигурация решений установлено значение Отладка. Нажмите клавишу F5, щелкните зеленую стрелку Запуск или выберите Отладка > Начать отладку.

Если отладка не достигает точек останова, убедитесь, что выходные данные библиотеки DLL (по умолчанию — папка <project>\Debug) — это расположение, которое вызывает вызывающее приложение.

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

В некоторых сценариях может потребоваться сообщить отладчику, где найти исходный код. Дополнительные сведения см. в разделе Использование страниц "Символы не загружены" или "Нет исходного кода".

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

Пожалуйста, дайте мне решение.

Текущий выбранный стартовый проект - библиотека классов.

Вам нужна точка входа для вашего приложения. Содержит ли ваше решение несколько проектов?

Вы уверены, что хотите запустить библиотеку классов?

введите описание изображения здесь

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

Обновление В ответ на ваш комментарий вы можете запустить библиотеку классов:

  • Создайте консольное приложение и создайте ссылку на библиотеку классов. Затем «используйте» его содержимое
  • Отладка проекта модульного теста
  • запустить существующий клиентский проект

Если у вас есть проект с исполняемым файлом, щелкните по нему правой кнопкой мыши и выберите «Установить как стартовый проект» - если нет, вам придется написать один для отладки кода (или использовать модульные тесты).

Параметры отладки вашей среды разработки Visual Studio можно оставить пустыми. Проверьте, не пропущены ли следующие выделенные поля, если они отсутствуют, заполните их конкретным исполняемым файлом.

Настройки отладки

Эти поля обязательны для того, чтобы VS мог запустить программу для отладки. На рисунке выше я разрабатываю пакет VSPackage, поэтому:

  1. Внешняя программа - devenv.exe
  2. Аргумент командной строки - /rootsuffix Exp (для запуска экспериментального экземпляра).

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

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

Если в решении более одного проекта, щелкните правой кнопкой мыши тот проект, который должен быть запущен при компиляции, и выберите «Установить как стартовый проект»


Проект находится в папке, внутри этой папки есть -

Проект с типом вывода библиотеки классов не может быть запущен напрямую. Чтобы отладить этот проект, добавьте в это решение исполняемый проект, который ссылается на проект библиотеки. Установите исполняемый проект как запускаемый.

Странно то, что я нигде не вижу основной функции.

Что мне делать, чтобы обойти эту икоту?

Скачанный вами проект компилируется в сборку dll и предоставляет набор классов с реализованной функциональностью.

Вы должны добавить в свое решение новый проект с типом вывода консольного приложения или приложения Windows (мастер VS Add Project предложит вам разные шаблоны проектов).

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

Тип вывода проекта вы можете найти и изменить, выполнив следующие действия:

Щелкните правой кнопкой мыши проект в обозревателе решений -> Свойства.

В открывшейся вкладке со свойствами выберите Приложение, и там появится ComboBox с меткой Тип вывода.

  • 9 И не забудьте установить вновь созданный проект как запускаемый (щелкните правой кнопкой мыши новый проект ↦ Установить как запускаемый проект)
  • @bugybunny вы комментируете, чего не хватает в ответе выше!

Просто щелкните правой кнопкой мыши на Project Solution. Появится окно. Разверните общие свойства. Выберите Start Up Project

Там, с правой стороны, выберите переключатель с одним запускаемым проектом. Выберите там свой проект и примените.

Вот и все. Теперь сохраните и соберите свой проект. Запустите проект, чтобы увидеть результат.

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

Перейдите в Project и в контекстном меню Установить как запускаемый проект.


См. Также: проект с типом вывода библиотеки классов нельзя запустить напрямую

  • Это работало для меня также в VS 2015. Мне пришлось создать новый файл web.config, а затем он снова заработал.
  • У меня тоже работал в Visual Studio 2019.
  • Спасибо за миллион, он сэкономил часы на поиске в Google :)

Просто нужно пойти:

Обозреватель решений -> Перейдите в Свойства ---> измените (проект с одним запуском) с.dll на .web

Потом попробуй отладить.

Наверняка ваша проблема будет решена.

Странно то, что я нигде не вижу основной функции.

Это как раз ваша проблема. Проект просто создает DLL. У него нет исполняемого файла для запуска.

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

Вам понадобится какое-то приложение (мои любимые консольные приложения для отладки, но подойдет WinForm), которое использует вашу библиотеку классов. Просто добавьте новый проект (в том же решении) консольного приложения или приложения Windows Forms и добавьте ссылку на свой текущий проект. Как только вы это сделаете, сделайте все, что вам нужно, установите точки останова и отправляйтесь в город.

У меня возникла аналогичная проблема при попытке использовать экспериментальный экземпляр Visual Studio 2013. Это было для проекта vsix (создание фрагментов).

Щелкните правой кнопкой мыши проект в обозревателе решений > Свойства > Отлаживать

Установите для действия запуска значение и используйте следующий путь:

C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe

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

Примечание: ваш может отличаться в зависимости от того, как вы установили VS.

Если все еще не работает после вышеуказанных шагов попробуйте это.

Затем сохраните (ctrl + S)

Попробуйте отладку (F5)

Предположим, у вас есть несколько проектов в растворе. Выберите проект который вы хотите просмотреть в браузере и выберите "Установить как запускаемый проект". В вашем многократном проекте, который был основным, визуальная студия не смогла идентифицировать.это была главная проблема.

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

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

Запуск exe1 работает нормально. Он делает некоторые вещи и в конечном итоге запускает exe2 . exe2 в итоге выдает ошибки. Он пишет в мой лог-файл:

BaseException: System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.

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

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

Я должен добавить exe2 НУЖНО exe1 для запуска. exe1 делает кучу вещей, а без него exe2 просто сразу вылетает.

3 ответа

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

Есть два способа решить эту проблему.

1 . Используя Debugger.Launch() , как Джон дал ответ выше.

Это позволит вам присоединиться к вашей работающей визуальной студии или запустить новый экземпляр.

2. Если предыдущий не работает, другой способ - поставить цикл в начале кода, чтобы проверить, подключен ли отладчик, это дает вам достаточно времени, чтобы выполнить «Присоединить к процессу». метод

Поскольку у вас есть код для exe2 , вы можете добавить Debugger.Launch() к коду, и это остановит программу и позволит вам присоединить отладчик к этой строке кода.

Вы можете добавить это в качестве первой строки метода main , чтобы убедиться, что вы ловите его прямо при запуске.

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