C#管理されていないDLLのバージョンを取得します
-
20-09-2019 - |
質問
私は管理された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のバージョンをチェックするより良い方法がありますか?
よろしくお願いします、リチャード
解決
logicnpが述べたように。 Assembly.loadは、管理されたアセンブリ専用です。任意のバージョンEDファイルのバージョンを決定するには、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-from-.net-_2800_c_23002900_.aspx
幸運を...
他のヒント
それが失敗する理由は、assembly.loadを使用して管理されていないDLLをロードできないことです。 David Brownが提案したリンクを参照してください。