C# получение версии неуправляемой DLL

Я звоню неуправляемой 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 из управляемого кода C#?

Заранее спасибо Ричард

2 ответа

Решение

Как говорится в logicnp; Assembly.Load предназначен только для управляемых сборок. Чтобы определить версию любого файла с измененной версией, вы можете использовать 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/Dynamically-calling-an-unmanaged-dll-from-.NET-_2800_C_23002900_.aspx

Удачи...

Причиной сбоя является то, что вы не можете использовать Assembly.Load для загрузки неуправляемых библиотек. Смотрите ссылку, предложенную Дэвидом Брауном.

Другие вопросы по тегам