Vra

As ek wil 'n NET aansoek in 'n masjien waar die NET raamwerk is nie beskikbaar hardloop; Is daar enige manier om die aansoek om inheemse kode op te stel?

Was dit nuttig?

Oplossing

Microsoft het 'n artikel beskryf hoe jy kan Stel MSIL om moedertaal Kode

Jy kan gebruik Ngen .

  

Die Native Image Generator (Ngen.exe)   is 'n instrument wat die verhoog   prestasie van bestuur aansoeke.   Ngen.exe skep moedertaal beelde, wat   is lêers wat saamgestel   verwerker-spesifieke masjien kode, en   installeer dit in die moedertaal beeld   kas op die plaaslike rekenaar. Die   runtime kan gebruik moedertaal beelde van die   kas plaas met behulp van die net-betyds   (JIT) samesteller om die oorspronklike te stel   vergadering.

Ongelukkig het jy nog nodig het die biblioteke van die raamwerk ten einde jou program uit te voer. Daar is geen funksie wat ek weet van die MS NET Framework SDK wat jou toelaat om al die nodige lêers op te stel in 'n enkele uitvoerbare

Ander wenke

RemoteSoft maak 'n instrument wat 'n NET aansoek in 'n pakket wat sonder NET geïnstalleer kan uitgevoer stel. Ek het geen ondervinding met dit:

RemoteSoft Salamander

Ek het 'n paar van hulle en op hierdie oomblik die enigste een wat ondersteun NET 3.5 en het ook 'n groot skynwerklikmaking stapel is Xenocode Postbuild

Met ngen jy nog steeds nodig om die NET raamwerk geïnstalleer, maar met behulp van 'n instrument as sulks al jou bestuurde kode is saamgestel in inheemse kode, sodat jy dit kan ontplooi om masjiene sonder die raamwerk teenwoordigheid.

Microsoft het aangekondig dat sy NET Native Voorskou wat jou sal toelaat om NET programme te hardloop sonder om die raamwerk geïnstalleer.

Neem 'n blik: http: // blogs .msdn.com / b / dotnet / argief / 2014/04/02 / aankondiging-net-moedertaal-preview.aspx

Vrae: http://msdn.microsoft.com/en-US/vstudio/dn642499.aspx

Jy kan dit aflaai Microsoft NET Native vir VS2013 van hier af: http://msdn.microsoft.com/en -US / vstudio / dotnetnative

As 'n paar van die ander antwoorde hier genoem het, kan jy die NET gebruik moedertaal hulpmiddel om jou inligting te moedertaal masjien kode op te stel. In teenstelling met die antwoorde, maar ek sal verduidelik hoe om dit te doen.

Stappe:

  1. Die installering van die instrument dotnet CLI (command line interface), wat deel van die nuwe NET Core tool chain. Ons sal dit gebruik om ons app op te stel; jy kan 'n goeie artikel te vind oor dit hier.

  2. Maak 'n dop vinnige en cd na die gids van jou jeug.

  3. Tik hierdie:

    dotnet compile --native
    

Dit is dit! Wanneer jy klaar is, sal jou program af saamgestel om 'n enkele binêre, soos volg:

Native saamgestel. NET Core EXE

Dit sal 'n selfstandige uitvoerbare wees; geen PDBs, gemeentes, of konfigurasielêers ingesluit (hoera!).


Alternatiewelik, indien u 'n nog vinniger program wil, jy kan dit uit te voer:

dotnet compile --native --cpp

Dit sal jou program met behulp van die C ++ kode kragopwekker (in teenstelling met RyuJIT) te optimaliseer, sodat jou jeug is selfs meer geskik vir AOT scenario's.

Jy kan meer inligting oor hierdie op die dotnet vind CLI GitHub repo .

Ja, met behulp van Ngen , die Native Image Generator. Daar is egter 'n paar dinge wat jy nodig het om bewus te wees van:

  • Jy moet nog steeds die CLR om jou uitvoerbare loop.
  • Die CLR sal nie dinamies jou gemeentes te optimaliseer gebaseer op die omgewing dit uit te voer in (bv 486 teen 586 teen 686, ens.)

Alles in ag genome, is dit net die moeite werd om die gebruik van Ngen as jy nodig het om die startup tyd van jou aansoek te verminder.

Jy kan! Maar jy beperk is tot NET 1.1 (geen generiese vir jou): Mono Voor-Van-Time samestelling (AOT)

Dit beteken egter opstel is regtig moedertaal, sodat jy nie meer in staat sal wees om 'n enkele bytecode vergadering sit, sal jy een per platform nodig.

Dit is oorspronklik ontwerp, want daar is geen NET of Mono vir iPhone, so dit is hoe hulle MonoTouch gemaak.

Jy kan dit doen met behulp van die nuwe precompilation tegnologie genoem NET Native. Check dit uit hier: http://msdn.microsoft.com/en-US/vstudio/dotnetnative

Op die oomblik is dit net beskikbaar vir Windows Store Apps. Dit voer enkele komponent skakel. So NET Framework biblioteke staties gekoppel in jou app. Alles is saamgestel om inheemse en IL gemeentes is nie meer ontplooi. Programme nie hardloop teen CLR maar 'n gestroopte, new runtime genoem Bestuurde Runtime (Mrt.dll)

Soos hierbo genoem, NGEN gebruik 'n mengsel samestelling model en het staatgemaak op IL en JIT vir dinamiese scenario's. NET Native nie benut JIT maar dit ondersteun verskeie dinamiese scenario's. -Kode skrywers nodig sou wees om Runtime die riglyne om wenke te gee aan te wend NET Native samesteller op die dinamiese scenario's wat hulle wil ondersteun.

Jy kan ngen.exe gebruik om 'n boorling beeld genereer maar jy moet nog die oorspronklike nie-inheemse kode sowel versprei, en dit moet nog die raamwerk geïnstalleer op die teiken masjien.

Wat nie jou probleem op te los, regtig.

Die aard van NET is om in staat wees om programme wat reeds saamgestel om MSIL, dan óf deur JIT of Ngen installeer, is MSIL saamgestel om inheemse kode en plaaslik gestoor in 'n kas. Dit was nooit bedoel op die opwekking van 'n ware inheemse exe wat onafhanklik kan uitgevoer word van die NET raamwerk.

Miskien is daar 'n paar hack wat dit doen nie, maar dit beteken nie veilig klink vir my. Daar is te veel dinamika wat die raamwerk vereis, soos:. Dinamiese gemeente laai, MSIL kodegenerasie, ens

2019 Antwoord: Gebruik dotnet / corert . Dit kan saamstel NET Core projekte in selfstandige .exe lêers. Geen afhanklikes (behalwe vir stelsel biblioteke soos kernel32.dll). Ek is seker dit is presies wat die OP behoefte.

Van sy GitHub tuisblad:

  

Die CoreRT samesteller kan 'n bestuurde NET Core aansoek in 'n moedertaal (argitektuur spesifiek) enkel-lêer uitvoerbare dit is maklik om te gebruik saam te stel. Dit kan ook produseer selfstandige dinamiese of statiese biblioteke wat deur programme wat geskryf is in ander programmeertale kan verteer.

Ek dink dit is nie moontlik nie. Jy sal nodig hê om NET FW versprei sowel. As jy wil NET app stel om moedertaal-kode, gebruik NGen instrument

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top