查看一个托管dll文件是64位、32位还是AnyCPU,和将托管32位dll与AnyCPU互相转换的方法

用ILDasm工具打开托管dll文件,然后打开该dll文件的自描述文件:

查看一个托管dll文件是64位、32位还是AnyCPU,和将托管32位dll与AnyCPU互相转换的方法_第1张图片

查看一个托管dll文件是64位、32位还是AnyCPU,和将托管32位dll与AnyCPU互相转换的方法_第2张图片

查看一个托管dll文件是64位、32位还是AnyCPU,和将托管32位dll与AnyCPU互相转换的方法_第3张图片

或者使用VS命令CorFlags,注意,必须将文件与该命令工具放在同一盘符下:

查看一个托管dll文件是64位、32位还是AnyCPU,和将托管32位dll与AnyCPU互相转换的方法_第4张图片

查看一个托管dll文件是64位、32位还是AnyCPU,和将托管32位dll与AnyCPU互相转换的方法_第5张图片

查看一个托管dll文件是64位、32位还是AnyCPU,和将托管32位dll与AnyCPU互相转换的方法_第6张图片

 

如果需要将32位的托管dll文件改为AnyCPU,或者将AnyCPU限定为只允许32位调用 ,也可以使用CorFlags进行处理。

将32位托管程序转为AnyCPU命令:CorFlags /32BIT- C:\****\****.dll

将AnyCPU托管程序转为32位命令:CorFlags /32BIT+ C:\****\****.dll

至于纯x64目标平台的程序由于PE不同(为PE32+,与Any CPU, x86不同),故无法直接使用CorFlags切换,必须重新编译。

 

你可能感兴趣的:(.net)