我正在从我的托管C#代码中调用一个不受管理的DLL,并想检查我正在调用正确的版本。

我正在尝试加载汇编的代码(然后获取资源文件,然后获取版本)为:cur_version = assembly.loadfile(“ x:x: workspace yreceipts_pos yrprintprocessor debug debug yrprintprocessor.dll”);由于这个错误而失败:The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)

有谁知道如何解决这个问题,或者有更好的方法来检查托管C#代码的非管理DLL的版本?

预先感谢理查德

有帮助吗?

解决方案

如Logicnp所述;汇编。负载仅适用于托管组件。要确定任何版本-ED文件的版本,您可以使用system.diarostics.fileversioninfo.getVersionInfo(fileName)(文件名),并在DLL中加载和调用未管理的过程,您可以参考这些文章:

http://blogs.msdn.com/jonathanswift/archive/2006/10/02/780637.aspx http://blogs.msdn.com/jonathanswift/archive/2006/10/03/dynamacy-calling-an-managed-dll-from-.net-_net-_2800_c_23002900_.aspx

祝你好运...

其他提示

失败的原因是因为您不能使用汇编。负载加载未托管的DLL。请参阅大卫·布朗(David Brown)建议的链接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top