Fokus verskeie weergawes van NET Framework
-
09-06-2019 - |
Vra
As ek 'n paar kode wat sou, in teorie, saam te stel teen enige weergawe van die NET Framework. Dink "Hello World", as jy wil.
As ek eintlik die kode saam te stel, al is, ek sal 'n uitvoerbare wat loop teen een veral weergawe kry.
Is daar enige manier om dinge te reël sodat die saamgestel exe net sal loop teen alles weergawe dit vind? Ek vermoed sterk dat die antwoord is nee, maar ek wil gelukkig wees om verkeerd te bewys ...
Edit: Goed, ek sal gaan na die voet van ons trap. Ek het geen idee gehad wat later raamwerke gelukkig sou hardloop exe se saamgestel onder vorige weergawes. Dankie vir al die antwoorde!
Oplossing
Ek is nie seker of dit korrek is, maar ek wil probeer om dit op te stel vir die laagste weergawe, moet die hoër weergawes in staat wees om die laer weergawes exe se loop.
Ander wenke
Lees ScuttGu se post oor VS 2008 Multi-rig Support
Een van die groot veranderinge wat ons maak begin met die VS 2008 release is ter ondersteuning van wat ons noem "Multi-rig" - wat beteken dat Visual Studio sal nou ondersteun fokus verskeie weergawes van die NET Framework, en ontwikkelaars sal wees in staat is om te begin met behulp van die nuwe funksies Visual Studio bied sonder om altyd op te gradeer hulle bestaande projekte en ontplooi aansoeke om 'n nuwe weergawe van gebruik NET Framework biblioteek.
Nou wanneer jy 'n bestaande projek oopmaak of 'n nuwe een met VS 2008, jy kan watter weergawe van die NET kies Raamwerk om te werk met - en die IDE sal sy opstellers werk en -Funksie stel om hierdie te pas. onder andere beteken dit dat funksies, beheer, projekte, item-templates, en die gemeente verwysings wat nie werk met wat weergawe van die raamwerk sal wees verborge, en wanneer jy bou jou aansoek sal jy in staat wees om die neem saamgestel uitset en kopieer dit na 'n masjien wat net 'n ouer weergawe van die NET Framework geïnstalleer, en Jy weet dat die aansoek sal werk.
Op dié manier kan jy VS2008 gebruik om te ontwikkel NET 2.0 projekte wat sal werk op beide NET 2.0, 3.0 en 3.5
Langs multi fokus, die raamwerke is backwards compatible, so iets saamgestel om 1.0 sal loop op 1,1 en 2. somthing saamgestel op 1.1 sal loop op 2 ... ens.
Ek weet @John water werk Boker korrek is wanneer dit kom by NET klas biblioteke. Jy kan 'n klas biblioteek saam te stel teen Net 1.1 en dan gebruik dit in 'n NET 2.0 of hoër projek.
Ek vermoed dieselfde geld ook vir executables.
met 2005 & 2008, ja (op CLR 2.0)
Met 2003, geen .. want dit stel af na CLR 1.1
Jy kan theorectically skryf 'n paar kode behulp #if (DOTNET35) en so sodat jy nie funksies te gebruik buite die opstellers kennis en dan hardloop die gewenste samesteller op die jeug ... Ek bevraagteken die nut van hierdie though.
Wel, AFAIK, alle NET weergawes (behalwe weergawe 1.x) saam te stel om dieselfde bytecode. In die geval van C #, al die nuwe funksies is eenvoudig sintaktiese suiker, wat kry omskep in C # 2,0 konstrukte by die opstel van. Die belangrike punt waar dinge verkeerd kan gaan is wanneer jy gebruik C # 3,0 of 3,5 spesifieke DLLs. Hulle het nie goed werk met die NET 2.0 raamwerk, sodat jy kan nie gebruik daardie.
Ek kan nie regtig dink aan 'n oplossing vir hierdie, jammer: (
Op die onderwerp van wat NET raamwerk van die gebruiker het geïnstalleer, daar is ook 'n nuwe opsie met die kliëntprofiel wat beskikbaar is met NET 3.5 SP1. Dit laat basies dat jy 'n klein (277k) bootstrap program wat afgelaai skip en installeer die nodige lêers (A subset od die volle NET raamwerk).
Vir meer inligting, en algemene wenke oor die skep van 'n klein NET installasie, kyk na hierdie groot blog inskrywing deur Scott Hans Elman .