2

CorFlags のようなアプリケーションを作成する必要があります。アセンブリ ファイルへのパスがある場合、その CorFlags を読み取るにはどうすればよいですか?

特に、アセンブリが Any-CPU か x86 のみかを知る必要があります

多くのファイルをスキャンする必要があるため、リフレクションを使用してアセンブリをロードすることは避けたいと考えています。

4

3 に答える 3

10

このリンクを見てください。クエリと同様の状況が説明されています。受け入れられた回答は、リフレクションとModule.GetPEKindの使用方法を説明しています。これはあなたを助けるかもしれません。

編集:少し遅れましたが、例を次に示します。

namespace ConsoleApplication1
{
    using System.Reflection;

    public class Program
    {
        public static void Main()
        {
            Assembly a = Assembly.GetExecutingAssembly();

            PortableExecutableKinds peKind;
            ImageFileMachine machine;

            a.ManifestModule.GetPEKind(out peKind, out machine);
        }
    }
}
于 2009-10-14T21:20:11.853 に答える
4

System.Reflection.Assembly には、これに役立つものがたくさんあります。

var asmbly = Assembly.ReflectionOnlyLoad("filename");
var PeFlags = asmbly.ManifestModule.GetPEKind();
//PeFlags is effectively CorFlags.
于 2009-10-14T21:22:26.233 に答える
3

リフレクションを使用したくない場合は、チェックアウトしてください

CCI http://ccimetadata.codeplex.com/Wiki/View.aspx?title=API%20概要または

Mono.Cecil http://www.mono-project.com/Cecil

于 2009-10-15T07:12:33.500 に答える