У меня есть приложение Windows, которое должно запускаться с USB и не разрешено устанавливать какое-либо программное обеспечение на локальный ПК. Приложение использует MSXML версии 4 и, следовательно, требует msxml4.dll.Для портативного приложения требуется не переносная dll
В коде используется приложение Windows COM для создания экземпляра (CreateInstance/CoCreateInstance) объектов документа XML/элемента, а COM (как-то волшебным образом) загружает требуемую DLL для меня во время выполнения. Насколько я понимаю, COM требует, чтобы DLL регистрировалась с помощью инструмента regsvr32, чтобы найти его и успешно загрузить. Проблема в том, что мне не разрешено запускать инструмент regsvr32, и я также не хочу этого делать, поскольку он изменит системный реестр (я думаю).
Но что делать, если мне не разрешено регистрировать DLL в системе, есть ли способ сообщить COM, что есть dll, который он должен использовать только временно? Я знаю о DLL redirection, но это работает только в том случае, если dll была зарегистрирована ранее.
MSXML 4 еще не установлен в целевой системе? – Niall
Нет, MSXML 6 есть. Это хорошо и всегда нужно использовать для выполнения работы. Нет необходимости в бесплатном манифесте. –