C # решение, ссылающееся на предварительно созданный .exe - PullRequest
1 голос
/ 17 сентября 2010

У меня есть проект, который является ядром нашего приложения.Мы создаем несколько библиотек DLL и EXE.

Затем у нас есть собственные проекты, в которых используются предварительно собранные основные библиотеки DLL и EXE, и при необходимости добавляем настройки / дополнительные биты.Эти настройки всегда DLL, ядро ​​EXE всегда используется.Основное DLL / EXE ссылается на пользовательское решение.

У меня возникла небольшая проблема при отладке при загрузке пользовательских библиотек DLL.Поскольку EXE-файл предварительно собран, мы используем один из проектов в качестве стартового проекта, который указывает на местоположение EXE-файла и остальных DLL-файлов.Однако в этом случае загрузка библиотек запускаемого проекта не представляется возможной.

Как настроить настраиваемое решение / проекты, когда уже создан EXE-файл?

(ПРИМЕЧАНИЕ.DLL предоставляют компоненты, которые отражаются из метаданных, если вам интересно)

ОБНОВЛЕНИЕ: Текущий подход состоит в том, чтобы иметь событие после сборки в проекте верхнего уровня пользовательского решения, которое копирует все ядроDLL и EXE в каталог bin / Debug.Затем установите этот проект верхнего уровня в качестве запускаемого проекта и укажите на скопированный EXE в bin / Debug.Затем он находит DLL, потому что находится в том же каталоге, что и EXE (вместе со всеми остальными).

Ответы [ 2 ]

1 голос
/ 17 сентября 2010

Выбор DLL в качестве запускаемого проекта не никоим образом не гарантирует его загрузку. Используемый вами EXE-файл должен использовать Assembly.Load / From () для загрузки DLL. В этот момент отладчик входит и активирует установленные вами точки останова.

Легко узнать из окна Debug + Windows + Modules. Если вы не видите, что ваша DLL загружена в это окно, то ничего не произойдет. Вам нужно выяснить, какие именно правила конфигурации существуют для этого EXE-файла, чтобы он загружал DLL, которую вы хотите отладить.

0 голосов
/ 17 сентября 2010

Вы можете запустить .exe, затем присоединить отладчик Visual Studio к процессу. Убедитесь, что файл .pdb для вашего .dll находится в каталоге выполнения.

...