07. december 2006 - 12:36Der er
13 kommentarer og 1 løsning
Hvilken version C# kører min Visual Studio med?
Hej med jer...
Det er muligt at det her er mere et Visual Studio spørgsmål når det kommer til stykket, men der er ingen IDE kategori under Programmer :-(
Jeg er igang med mit første C# projekt i Visual Studio (2005), og jeg har fundet et par API'er på msdn.dk, men er i tvivl om hvilken version C# compiler min Visual Studio bruger.
Jeg har ledt en del både i VS og i Kontrolpanelet, men kan ikke finde nogen steder hvor det bare står helt entydigt.
(Det ser i øvrigt ud til at jeg har (midst) tre versioner af .NET installeret?)
Er der nogen der kan fortælle mig hvordan jeg finder ud af det?
ok ... men er det altid sådan? Jeg mener i f.eks. IDEA kan man selv vælge hvilken af ens installerede jdk'er der skal bruges til det enkelte projekt, så man f.eks. kan kode specifikt mod en ældre jre?
(smid et svar hvis der ikke er uenighed om dit svar!) :-)
Ja det er altid sådan... og desvære kan man sige...
Der er endnu ingen mulighed for at kode op imod en gammel version af frameworket i VS2005, forstået på den måde at det altid vil blive compilet til at kører på runtime v. 2.0...
Dog er det naturligvis muligt at benytte ældre dll'er men man kan ikke compile sine projekter ned til en ældre version af CLR'eren...
Skyldes angiveligvis at .NET er i sig selv en stor del af VS2005, og vs er derfor bundet meget fast sammen med den CLR den kører på selv... (VS2003 -> CLR 1.1, VS2005 -> CLR 2.0)... og deri begrænsningen...
Man kan håbe at MSBuild bliver en del af den næste VS, og så kan vi måske igen vælge target CLR... som man kunne med java... (Hvis man da overhovedet skulle ønske at udvikle til en gammel CLR... o_O )...
Man kan nu også kode op i mod c# 3.0 fra 2005. Og du kan kalde 1.1 c# dll'er fra 2005. Du kan jo se i din reference liste hvilke versioner af dll'er du kører i mod. Så man kan ikke sige at en given version nødvendigvis hænger sammen med hvilke c# versionre du kører i mod.
segato >> ""Så man kan ikke sige at en given version nødvendigvis hænger sammen med hvilke c# versionre du kører i mod.""
Det er desvære bare forkert, for VS2005 hænger netop på CRL 2.0 og det kommer man ikke uden om... Selv om du godt kan referere en .NET 1.1 dll i dit projekt, bliver den Exe eller dll du får compilet ikke lige pluselig en .NET 1.1 Assembly...
Du kan med VS2005 ikke compile til andre CLR versioner end 2.0... 3.0 ja... det er mest en 2.0 i Vista klæder... ja der er da nogle nye klasse biblioteker, men som jeg har hørt det er selve CLR'en ikke ændret meget... derfor vil du formentlig også kunne afvikle en .NET 2.0 Assembly på en 3.0 CLR...
Husk på at det vi snakker her er dit Compile resultat...
I Jave kan du i mange IDE'er vælge at nu vil du compile dit projekt til en JVM v. 1.4... og vupti... så kører det... så kan du med det samme lige hoppe end... og ud fra en select bos nu vælge at det skal kører på en JVM 1.5 istedet... og Vums... nu compiler du med den JVM som target...
Dette kan man ikke endnu med .NET... eller... jeg skal ikke kunne sige hvad andre IDE'er kan... men så vend det om... det kan du ikke med Visual Studio... der hænger du på den version som din VS nu lige ligger sig op af...
Det altså ikke helt sandt. Jeg sidder lige nu og udvikler i 2005, hvor jeg udvikler WCF services som er en del af c# 3.0. man vælger i visual studio om du vil kode 3.0 eller 2.0 fra sin projekt liste.
Jeg prøver igen... spørgsmålet bygger ikke på hvor vidt du udvikler op imod et 1.1, 2.0 eller 3.0 klasse bibliotet... det er så irellevant som noget kan være...
Det der herimod er interassant er om du compiler til noget der kører på en CLR 1.1, CLR 2.0 eller en CLR 3.0 (Som faktisk så ved jeg er informeret bare er en CLR2.0 mere eller mindre, derfor kan du det du siger...)
"Developers can continue developing using Visual Studio 2005, and even install special extensions to Visual Studio 2005 that support CLR 3.0. That said, Visual Studio 2007 will include dedicated high-end design tools for .NET 3.0, so it is likely once those are available that developers will adopt the new tools" Som sagt har du ret i standard udgave, men man kan installere de nye tools som gør man selv vælger.
Sagen er at man fra CLR v1.1 til CLR v2.0 kom med nogle markante ændringer i selve runtimen... Generics er en af dem...
Her snakker vi ikke udvidelse af .NET Frameworket, men et indgræp i selve CLR'en... men som jeg har forstået overgangen fra CLR v3.0, så er det mere et spørgsmål om at få den til at kører på Vista og 64 bits cpu'er...
Dette er uinterassante ændringer op ad til... og for programmørens synsvinkel så ser CLR'en egentlig ens ud...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.