C# Получение версии неуправляемого DLL
-
20-09-2019 - |
Вопрос
Я вызываю неуправляемый DLL из моего управляемого кода C# и хотел проверить, что я вызываю правильную версию.
Код, который я пытаюсь загрузить сборку (чтобы затем получить файл ресурса, а затем получить версию): cur_version = Assembly.loadfile ("x: workspace yreceipts_pos yrprintprocessor debug yrprintprocessor.dll"); Это терпит неудачу из -за этой ошибки:The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)
Кто -нибудь знает, как обойти это или иметь лучший способ проверить версию неуправляемого DLL из Managed C# Code?
Заранее спасибо Ричард
Решение
Как указано в логике; Сборка. Нагрузка только для управляемых сборок. Чтобы определить версию любого файла-версии, вы можете использовать System.diagnostics.fileversioninfo.getversioninfo (имя файла) и для загрузки и вызвать неуправляемые процедуры в DLL, вы можете ссылаться на эти статьи:
http://blogs.msdn.com/jonathanswift/archive/2006/10/02/780637.aspx http://blogs.msdn.com/jonathanswift/archive/2006/10/03/dynamicaly-calling-an-unmanaged-dll-from-.net-_2800_c_23002900_.aspx
Удачи...
Другие советы
Причина, по которой он не удается, - потому что вы не можете использовать сборку. Загрузите для загрузки неуправляемых DLL. Смотрите ссылку, предложенную Дэвидом Брауном.