C # получение версии неуправляемой DLL - PullRequest
2 голосов
/ 17 марта 2010

Я звоню неуправляемой 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 ]

7 голосов
/ 17 марта 2010

Как указано в 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

Удачи ...

4 голосов
/ 17 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...