Вопрос

Я вызываю неуправляемый 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. Смотрите ссылку, предложенную Дэвидом Брауном.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top