Я пишу приложение для API Peachtree и ему нужно работать с любой версией API. К сожалению, dll от Peachtree 2011 не может взаимодействовать с Peachtree 2010 и наоборот, хотя две библиотеки DLL хранятся в одном месте и работают с точно таким же кодом.Загрузите COM-dll во время выполнения?
Я думал, что должен иметь возможность обратиться к DLL по пути к файлу, оставить конкретную версию в false, встроить типы interop в false и скопировать локальную на false, и она просто будет использовать любую версию, которая была у машины, но я получить ошибку, когда я это сделаю - «Исключение было выбрано целью вызова».
Есть ли способ связать dll с поздним связыванием, даже если это COM?
Я могу предоставить образцы кода из того, что вы считаете полезным, но это скорее проблема с настройкой проекта, чем что-либо.
EDIT: Большое вам спасибо за помощь. Я нашел свое решение по другому вопросу и разместил его здесь.
Обычно вы связываете DLL между собой во время компиляции, и если она присутствует в системе, она будет загружать DLL COM во время выполнения. Есть ли больше информации об ошибке или внутреннем исключении? Есть ли код ошибки (0xZZZZZZZZ)? Можете ли вы связать трассировку стека, или это слишком много информации о вашем приложении? API Peachtree, это COM, или это DLL, которая ссылается на COM? –