質問

私は管理された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が提案したリンクを参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top