c # — Ошибка внедрения EEFileLoadException * __ptr64

следующий проект:
AssemblyA.dll (содержит основные элементы)
AssemblyB.dll (стала внедрённой)
app.exe (графический интерфейс для запуска инъекции)

Я запускаю свое приложение для поиска конкретного работающего процесса (для тестирования простого wpf-приложения). После запуска этих приложений я бы начал свою инъекцию DLL. Для этого я зацикливаюсь на каждом процессе. Найдя искомый, я начинаю вводить свою сборку. До этого момента все в порядке.
Когда он вводится, я отправляю сообщение через

::SendMessage((HWND)handle.ToPointer(), MESSAGE, (WPARAM)assemblyPath, 0);

Параметр path содержит информацию о моем AssemblyB (имя сборки, имя типа, имя метода), параметр сообщения содержит только «invoke», чтобы проверить, какая программа действий должна делать.

Наконец, я бы начал конкретный метод через

methodInfo->Invoke(nullptr, nullptr);

Но этот вызов не работает, потому что моя целевая сборка ссылается на assemblyA.dll, и я получаю следующее исключение:

  EEFileLoadException * __ptr64 at position 0x00309940..
[...]  [rethrow] at position 0x00000000..

Обнаружен помощник для неуправляемой отладки «BindingFailure» в «path \ WpfApplication1.exe».
Сборка с именем: «AssemblyA» не может быть загружена в «Anonymous» -связывающий контекст
Домен приложения с идентификатором 1. ошибка:
System.IO.FileNotFoundException: файл или сборка «AssemblyA,
Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null «или зависимость не найдена.

Поэтому я думаю, что WpfApplication нужна ссылка на мой AssemblyA, потому что, если я помещаю копию в путь выполнения Applications, он работает нормально.
Есть ли возможность «сохранить» сборку A в сборке B при ее сборке? Или это другая ошибка? что я должен изменить?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]