Hi,

I've done a lot of research when creating my unmanaged resource
infrastructure.

I am 100% sure that there are only two temporary files used by csc.exe:

First one is a .res format file in the directory of the assembly that
contains the default resources (version info and optionally icon). (Only
when no /win32res is specified because it overrides default resource.)

The second one in %TEMP% is an .obj format file as Zac said but it is
created by cvtres.exe (I don't know why they use cvtres.exe instead of
integrating it to their PE generator) that isn't linked at all, it is
however interpreted by the PE generator and is written to the PE file
directly without using a linker or advanced object file interpretation as
the PE file generator assumes that it is the output of cvtres.exe.

Kornél

----- Original Message -----
From: "Zac Bowling" <[EMAIL PROTECTED]>
To: "Miguel de Icaza" <[EMAIL PROTECTED]>
Cc: <[email protected]>; "Jonathan Pryor" <[EMAIL PROTECTED]>;
<[email protected]>
Sent: Tuesday, March 07, 2006 12:29 AM
Subject: [Mono-dev] Re: [Mono-list] Silly question (for documentation)


I know that CSC creates a temp directory in where ever %TEMP% is
pointed to, to create the object files and deletes them when its all
done building but the compiler inlined in Visual Studio creates a local
directory to store the object files (the lovely 'obj' dir you find
lerking around).

I doubt very much that CSC generates anything resembling an "object
file".   You are confused.

"Object file" was the wrong term to use. I was thinking of
incrimentally compiling some IL backends and storing it off in some
files somewhere so it could be brought back together in the end.
However, I've gone back and observed it and examined the files a bit
more closely, and it looks more like its just garbage for the debuggers
and designers more then anything. I did catch thoigh what I'm pretty
sure is just the PE header of the assembly it was generating before it
deleted it but a few bits are missing. Oh well.. not really all that
exciting or important.

Not sure how credible this is but it says on the DotGNU wiki about how
their compiler works compared to ours: "..CSCC is a 3 step compile,
assemble and link compiler, while MCS is a direct codegeneration in
memory with Reflection.Emit." They might be doing something completely
different system then anyone else out there

They generate a text file with the il assembly, which later they pass on
to an IL assembler to assemble.  Thats all there is to it.

oh really?.. uhh.. wow... hmm... that's kind of interesting, but I
think I'm going to just leave that one alone then...

Thanks everybody...

_______________________________________________
Mono-devel-list mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-devel-list


_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to