2

マネージドc#コードからアンマネージドdllを呼び出しており、正しいバージョンを呼び出していることを確認したいと思います。

アセンブリをロードしようとしているコード(リソースファイルを取得してからバージョンを取得するため)は次のとおりです。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)

誰かがこれを回避する方法を知っていますか、またはマネージドc#コードからアンマネージドdllのバージョンをチェックするためのより良い方法がありますか?

よろしくお願いします、リチャード

4

2 に答える 2

7

logicnpで述べられているように; Assembly.Loadは、管理対象アセンブリ専用です。バージョン管理されたファイルのバージョンを確認するには、System.Diagnostics.FileVersionInfo.GetVersionInfo(filename)を使用し、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

幸運を...

于 2010-03-17T06:01:41.073 に答える
4

失敗する理由は、Assembly.Loadを使用してアンマネージdllをロードできないためです。DavidBrownによって提案されたリンクを参照してください。

于 2010-03-17T05:10:37.193 に答える