Добрый день, возникла такая проблема: Я использую dll в проекте C#. Но когда я пытаюсь запустить exe, он не запускается ( участок кода, который использует dll в самом низу ). Я помню, что в cli c++ программа запускалась без dll и выдавало ошибку только тогда, когда программа отрабатывала код, который шел до функций из dll. Вопрос такой, как сделать отработку кода который находится до вызова функций из dll.
Поскольку вы не описываете проблему в точности, приходится только догадываться.
Предположим, что у вас весь код находится в методе Main.
Дело в том, что текущая версия .NET производит подгрузку зависимостей в момент, когда JIT-компилятор компилирует метод. В текущей версии единицей JIT-компиляции является один метод. Это значит, что перед началом первого выполнения метода, ссылающегося на недоступные функции, будет продетектировано отсутствие DLL и выброшено исключение. Если вы никогда не будете вызывать этот метод (например, проверите наличие DLL перед вызовом), исключение выброшено не будет.
Заметьте, что полагаться на это поведение не стоит. Оно не гарантировано документацией, и может измениться в будущем без предупреждения. Например, JIT-компилятор может вполне заинлайнить «опасный» метод в точку вызова, имеет полное право.
Поэтому правильным решением является либо правильно инсталлировать ваше приложение так, чтобы нужные сборки были всегда доступны, либо грузить сборку динамически через Assembly.Load и заводить подобие плагинной системы.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости