» »

[.NET] Kaj se zgodi ce pozenes exe brez frameworka?

[.NET] Kaj se zgodi ce pozenes exe brez frameworka?

fiction ::

OK, stekam da mora .NET program laufati znotraj navideznega stroja.
Ampak glede na to, da je assembly, ki ga dobis, ce recimo
skompajlas nek "Hello world" program cisto navaden PE program, ki
ima kolikor sem bral se nek dodaten CLR header. Zanima me kaj
se zgodi, ce tak program skopiras na racunalnik, ki nima namescenega
.NET frameworka in ga tam pozenes?

Se bo zadeva sesula, izpisala warning v stilu tistega starega
"This programme cannot be run in DOS mode" ali se samo takoj nehala izvajati?
Kako sploh tak executable izgleda - mislim v .text sectionu potem ni nic
strojne kode, ampak je vsa CIL koda v CLR delu ali je kar lepo namesto
x86 ukazev tam ta vmesna koda?

Nimam nikjer racunalnika brez frameworka, da bi poizkusil.

fiction ::

Sem ze nasel odgovor:
Vsak .NET program ima kot import mscoree.dll (ki se nahaja v %windir%/system32).
Ko se mapirajo funkcije v naslovni prostor procesa, se poklice _CorExeMain,
ki dejansko vzpostavi CLR in potem poskrbi za ves magic.

Po malo Googlanja sem nasel tudi: http://support.microsoft.com/kb/316091

Torej .exe program na masini brez .NET frameworka, bo v principu rekel
samo da ne najde mscoree.dll, nima pa vkljucenega nobenega stuba, ki bi izpisal
da ni .NET frameworka (in kako naj si ga clovek namesti).
Dobro pa je, da se program kljub temu ne bo nekontrolirano sesul.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Crashanje programov

Oddelek: Pomoč in nasveti
14986 (779) kratos
»

VS 2005 C++ pa ne dela brez NET frameworka

Oddelek: Programiranje
121237 (1085) BlueRunner
»

[c++] prenosljivost

Oddelek: Programiranje
101720 (1535) Celeborn
»

ATI

Oddelek: Pomoč in nasveti
5965 (852) Toomy
»

Delovanje aplikacije napisane v C# na drugih računalnikih

Oddelek: Programiranje
9989 (769) darkolord

Več podobnih tem