Any CPU assemblies, Framework64, and Process Explorer

  • Thread starter Thread starter Mark
  • Start date Start date
M

Mark

Hi...

We're building our assemblies Any CPU and just now trying to throw them up
on an x64 box. I was using Process Explorer to look at something else, and I
noticed something peculiar. All of our assemblies were in the Framework64
temporary assembly cache for the running process but Process Explorer had
flagged them all as being 32-bit code.

Is this a quirk of Process Explorer not having a mind-meld of the .Net
framework and understanding how the code is being executed, or is Process
Explorer right and it's running in 32-bit mode, despite where it's running
from?

Thanks
Mark
 
Mark said:
Hi...

We're building our assemblies Any CPU and just now trying to throw them up
on an x64 box. I was using Process Explorer to look at something else, and I
noticed something peculiar. All of our assemblies were in the Framework64
temporary assembly cache for the running process but Process Explorer had
flagged them all as being 32-bit code.

Is this a quirk of Process Explorer not having a mind-meld of the .Net
framework and understanding how the code is being executed, or is Process
Explorer right and it's running in 32-bit mode, despite where it's running
from?

Thanks
Mark

If the process calling a dll is 32 bit, the entire process will be 32 bit.
We have just gone with building all dlls as x86 unless we 1) need the 64 bit
architecture and b) know we control the launching process. Fortunately our
customers aren't clammoring for 64 bit versions.
 
Hi Mark,

Do you mean the bitness of your dll in the Process Explorer DLL panel? Have
you tried to use dumpbin to examine your .Net assembly bitness? Please
follow the steps below:
1. Open "Visual Studio 2005 Command Prompt "(or 2008 version) under Visual
Studio 2005 Tools in Start Menu
2. Type "dumpbin /headers c:\windows\notepad.exe"(replace the notepad file
path with your assembly path).

It will emit the bitness of the assembly under "FILE HEADER VALUES", like
this:
FILE HEADER VALUES
14C machine (x86)
.....

As I know, MSIL by default has no "bitness". And the .Net compiler will
generate a 32bit assembly for compatibility reaso in the "Any CPU" case
(default) . Although you would have a 32 PE header, the x64 CLR will host
the code. So I assume this is not a problem of Process Explorer.

Hope this helps.

Best regards,
Jeffrey Tan
Microsoft Online Community Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
Back
Top