标签: corflags

如何解释CorFlags标志?

我如何解释CorFlags标志以及如何使用它来确定.NET程序集是为x86还是x64构建的?

可能是以下情况?

corflags MyAssembly.dll
Run Code Online (Sandbox Code Playgroud)

corflags

52
推荐指数
4
解决办法
3万
查看次数

PE32 +和PE32有什么区别?

在某些DLL文件上运行CorFlags时,有些显示为PE32,有些显示为PE32 +.有什么不同?

.net c# corflags

37
推荐指数
3
解决办法
2万
查看次数

CorFlags.exe在哪里?(.NET Framework工具)

我在哪里可以找到CorFlags.exe工具?我完全搜索了我的硬盘驱动器,但没有找到.

我有:.NET Framework 4.0,Visual C#2010 Express,Visual C++ 2010 Express.操作系统是Windows 7旗舰版32位.

.net-4.0 corflags visual-studio-2010

24
推荐指数
1
解决办法
3万
查看次数

我应该从哪里下载CorFlags.exe?

我正在运行Windows Server 2008 64位"工作站",并希望获得corflags.exe.我需要下载哪个SDK?

我知道.NET Framework 2.0软件开发工具包(SDK)(x64)Windows SDK for Windows Server 2008和.NET Framework 3.5但我希望找到更小的东西,因为这些是非常大的下载.

关于2.0 SDK的说明似乎建议下载3.5一个,我应该遵循吗?

.net sdk corflags

21
推荐指数
3
解决办法
7万
查看次数

CorFlags.exe/32BIT +如何工作?

我想我的问题是关于CLR Loader.我想了解CorFlags.exe /32BIT+功能背后的机制.

我们知道当一个人开始使用在64位Windows上设置的Any CPU标志编译的程序集时,它将以64位进程启动.如果CorFlags /32BIT+在该程序集上运行,它将以32位进程启动.我认为这是一个引人入胜的特征.

我有很多问题:

  1. 它是如何实现的?
  2. 操作系统加载器是否涉及?
  3. 是否可以构建一个自定义应用程序(我想是一个非托管的应用程序),可以根据需要加载32位或64位CLR?

是否有文章,书籍,博客等解释了此功能的内部工作原理?

clr loader corflags

11
推荐指数
1
解决办法
6754
查看次数

我在哪里可以找到CorFlags值的每一位含义的参考?

我正在搞乱一些相当低级别的东西,并试图确定为什么我使用CorFlags.exe实用程序得到不同的输出.作为参考,输出如下:

$ corflags test2.exe
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.17929
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x1
ILONLY    : 1
32BITREQ  : 0
32BITPREF : 0
Signed    : 0

$ corflags test.exe
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.17929
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x20003
ILONLY    : 1
32BITREQ  : …

.net corflags low-level portable-executable bit-fields

11
推荐指数
1
解决办法
2500
查看次数

如何强制.NET应用程序以32位模式运行

我试图在Win7 x64上运行我的.NET 3.5 WinForms应用程序.该应用程序使用NHibernate和System.Data.OracleClient来访问Oracle数据库.Oracle客户端是32位.

启动应用程序时,我收到以下错误消息

尝试加载Oracle客户端库会引发BadImageFormatException.在安装了32位Oracle客户端组件的64位模式下运行时,将发生此问题.

为此,我将构建目标定位到x86平台:

Build设置的屏幕截图

令我惊讶的是,尝试在Win7平台上执行新版本时出现了相同的错误消息.

NHibernate程序集在运行时加载Assembly.Load("...");.

可能是NHibernate DLL仍然以64位模式运行,而主机exe以32位模式运行.这听起来很奇怪.或者可能是因为某种原因,我的应用程序运行在64位模式,即使它的目标是x86?


更新:

我使用CorFlags检查了我的二进制文件,它标记为32位:

Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 3
ILONLY    : 1
32BIT     : 1
Signed    : 0
Run Code Online (Sandbox Code Playgroud)

我也在任务管理器中检查了它,它有一个*32后缀.

我还尝试并使用CorFlags将32位标志添加到我的应用程序附带的所有程序集.它仍会产生相同的错误消息.

我很困惑......困惑......困惑......

64-bit x86 corflags .net-3.5

10
推荐指数
2
解决办法
2万
查看次数

x64 .NET编译/ Process Explorer奇怪

如果我要说的任何内容毫无意义或忽视了一些显而易见的东西,那么道歉 - 我对CLR内部的了解是不稳定的.

如果我理解正确,那么如果我只是在VS2K5中为'AnyCPU'构建一个解决方案(或者使用这些设置指向那个.sln文件的MSBuild),那么二进制文件只能编译到MSIL.然后,如果在32位平台上执行,它们会被JIT打成32位,如果在x64上执行,它们会被64位代码...对吧?

这些DLL用于Web应用程序并托管在W3WP.exe进程中.Process Explorer告诉我W3WP是一个64位进程.

但是当我使用Process Explorer在DLL视图中检查其中一个DLL的属性时,它会显示:'Image:32-bit'.是什么赋予了?

如果我对有问题的DLL运行corflags它会告诉我:ILONLY 1,32BIT 0但是PE PE32.我的理解是,这意味着它只是编译到IL,不是它不限于32位或64位,但我不完全清楚.PE32标志是否与它上面显示的32位有关?

.net clr 64-bit corflags process-explorer

5
推荐指数
1
解决办法
1163
查看次数

为什么我的64位服务以32位运行?

我有一个遇到此问题的Windows服务。

  • 在Visual Studio中,我已将其平台目标设置为64位
  • 我已经运行CorFlags来验证它的设置正确,我得到了:
Version   : v4.0.30319
CLR Header: 2.5  
PE        : PE32+
CorFlags  : 0x1    
ILONLY    : 1       
32BITREQ  : 0        
32BITPREF : 0        
Signed    : 0
Run Code Online (Sandbox Code Playgroud)

我什至尝试使用32BITREQ-32BITPREF-标志运行Corflags以确保将其设置为应该的值,但没有骰子。在taskManager中,它显示为:

MyServiceName(32位)

该服务与Topshelf 3.0一起安装,并且在Windows Server 2012 R2 Standard上运行。这里发生了什么?

c# windows service 64-bit corflags

5
推荐指数
1
解决办法
2002
查看次数

CorfFlags警告CF011即使在/ force之后签名强名

我试图使用Corflags让PartCover在x64下运行.我用的时候:

CorFlags.exe PartCover.exe/32BIT +/Force

我得到:corflags:警告CF011:指定的文件是强名称签名.使用/ Force将使此图像的签名无效,并且需要对程序集进行重新签名.

没有/强迫我得到:

corflags:错误CF012:指定的文件是强名称签名.使用/强制强制更新.

在网上看来,其他人在没有问题的情况下通过corflag运行partcover ...

.net c# corflags partcover

2
推荐指数
1
解决办法
3920
查看次数

如何确定(通过代码)程序集corgags?

我需要编写类似CorFlags的应用程序.如果我有一个汇编文件的路径,如何读取它的CorFlags?

我特别需要知道程序集是Any-CPU还是x86

我想避免使用反射加载程序集,因为我需要扫描许多文件.

.net assemblies corflags 32bit-64bit

2
推荐指数
1
解决办法
2423
查看次数